From 4ebe08a9f117d7832fca6cb8f1e15175aca0ad0d Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 10 Feb 2026 12:51:03 +0000 Subject: [PATCH 01/18] feat(CRUK): add per-section model Introduce CRUK per-section modules and regenerate the 1.0.0 schema so it matches the model output. --- hdr_schemata/models/CRUK/1.0.0/schema.json | 3260 +++++++++++++++++ hdr_schemata/models/CRUK/__init__.py | 1 + .../models/CRUK/create_json_schema.py | 3 + hdr_schemata/models/CRUK/v1_0_0/DataTable.py | 39 + .../models/CRUK/v1_0_0/DatasetFilters.py | 22 + hdr_schemata/models/CRUK/v1_0_0/Image.py | 24 + .../models/CRUK/v1_0_0/LineSeparatedValues.py | 9 + hdr_schemata/models/CRUK/v1_0_0/Project.py | 81 + .../models/CRUK/v1_0_0/StructuralMetadata.py | 27 + hdr_schemata/models/CRUK/v1_0_0/Summary.py | 65 + hdr_schemata/models/CRUK/v1_0_0/__init__.py | 51 + hdr_schemata/models/__init__.py | 13 +- 12 files changed, 3588 insertions(+), 7 deletions(-) create mode 100644 hdr_schemata/models/CRUK/1.0.0/schema.json create mode 100644 hdr_schemata/models/CRUK/__init__.py create mode 100644 hdr_schemata/models/CRUK/create_json_schema.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/DataTable.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/Image.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/Project.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/Summary.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/__init__.py diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json new file mode 100644 index 00000000..e9264698 --- /dev/null +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -0,0 +1,3260 @@ +{ + "$defs": { + "AbstractText": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + }, + "Access": { + "additionalProperties": false, + "properties": { + "accessRights": { + "$ref": "#/$defs/LongDescription", + "description": "Please provide details for the data access rights.", + "examples": [ + "In Progress" + ], + "guidance": "- The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.\\n- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", + "title": "Access rights" + }, + "accessServiceCategory": { + "anyOf": [ + { + "$ref": "#/$defs/AccessService" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The method a Researcher will use to access the dataset, if approved.", + "examples": [ + "TRE/SDE" + ], + "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", + "title": "Access method category" + }, + "accessService": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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://re-docs.genomicsengland.co.uk/tutorials/", + "https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/" + ], + "guidance": "Please provide a brief description of the data access services that are available including:\\n- environment that is currently available to researchers\\n- additional consultancy and services\\n- any indication of costs associated\\n\\n If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers.\\n **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.", + "title": "Access service description" + }, + "accessRequestCost": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests.", + "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", + "title": "Access request cost" + }, + "deliveryLeadTime": { + "anyOf": [ + { + "$ref": "#/$defs/DeliveryLeadTimeV2" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "guidance": "- **Less than 1 week**: Access request process typically processed in less than a week.\\n- **1-2 weeks**: Access request process typically processed in one to two weeks.\\n- **2-4 weeks**: Access request process typically processed in two to four weeks.\\n- **1-2 months**: Access request process typically processed in one to two months.\\n- **2-6 months**: Access request process typically processed in two to six months.\\n- **More than 6 months**: Access request process typically processed in more than six months.\\n- **Variable**: Access request lead time is variable.\\n- **Not applicable**: Access request process duration is not applicable.\\n- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", + "title": "Time to dataset access" + }, + "jurisdiction": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Isocountrycode" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", + "title": "Jurisdiction" + }, + "dataController": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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": [ + "NHS England" + ], + "guidance": "- 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.\\n- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.\\n- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.\\n- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.\\n- Example: NHS England", + "title": "Data Controller" + }, + "dataProcessor": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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": [ + "Not Applicable", + "SAIL" + ], + "guidance": "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.\\n- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.\\n- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.\\n- Examples: Not Applicable, SAIL", + "title": "Data Processor" + } + }, + "required": [ + "accessRights" + ], + "title": "Access", + "type": "object" + }, + "AccessService": { + "enum": [ + "TRE/SDE", + "Direct access", + "Open access", + "Varies based on project" + ], + "title": "AccessService", + "type": "string" + }, + "Accessibility": { + "additionalProperties": false, + "properties": { + "usage": { + "anyOf": [ + { + "$ref": "#/$defs/Usage" + }, + { + "type": "null" + } + ], + "default": null, + "description": "This section includes information about how the data can be used and how it is currently being used.", + "title": "Usage" + }, + "access": { + "$ref": "#/$defs/Access", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "title": "Accessibility" + }, + "formatAndStandards": { + "anyOf": [ + { + "$ref": "#/$defs/FormatAndStandards" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "title": "Format and Standards" + } + }, + "required": [ + "access" + ], + "title": "Accessibility", + "type": "object" + }, + "Age": { + "properties": { + "bin": { + "$ref": "#/$defs/AgeEnum", + "examples": [ + "30-34 years" + ], + "title": "Age grouping" + }, + "count": { + "examples": [ + 1000 + ], + "title": "Age count", + "type": "integer" + } + }, + "required": [ + "bin", + "count" + ], + "title": "Age", + "type": "object" + }, + "AgeEnum": { + "enum": [ + "0-6 days", + "7-27 days", + "1-11 months", + "1-4 years", + "5-9 years", + "10-14 years", + "15-19 years", + "20-24 years", + "25-29 years", + "30-34 years", + "35-39 years", + "40-44 years", + "45-49 years", + "50-54 years", + "55-59 years", + "60-64 years", + "65-69 years", + "70-74 years", + "75-79 years", + "80-84 years", + "85-89 years", + "90-94 years", + "95-99 years", + "100+ years" + ], + "title": "AgeEnum", + "type": "string" + }, + "Assay": { + "enum": [ + "NMR spectroscopy", + "Mass-spectrometry", + "Whole genome sequencing", + "Exome sequencing", + "Genotyping by array", + "Transcriptome profiling by high-throughput sequencing", + "Transcriptome profiling by array", + "Amplicon sequencing", + "Methylation binding domain sequencing", + "Methylation profiling by high-throughput sequencing", + "Genomic variant calling", + "Chromatin accessibility profiling by high-throughput sequencing", + "Histone modification profiling by high-throughput sequencing", + "Chromatin immunoprecipitation sequencing", + "Whole genome shotgun sequencing", + "Whole transcriptome sequencing", + "Targeted mutation analysis" + ], + "title": "Assay", + "type": "string" + }, + "CommaSeparatedValues": { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + }, + "ControlledVocabularyEnum": { + "enum": [ + "LOCAL", + "OPCS4", + "READ", + "SNOMED CT", + "SNOMED RT", + "DM PLUS D", + "DM+D", + "NHS NATIONAL CODES", + "NHS SCOTLAND NATIONAL CODES", + "NHS WALES NATIONAL CODES", + "ODS", + "LOINC", + "ICD10", + "ICD10CM", + "ICD10PCS", + "ICD9CM", + "ICD9", + "ICDO3", + "AMT", + "APC", + "ATC", + "CIEL", + "HPO", + "CPT4", + "DPD", + "DRG", + "HEMONC", + "JMDC", + "KCD7", + "MULTUM", + "NAACCR", + "NDC", + "NDFRT", + "OXMIS", + "RXNORM", + "RXNORM EXTENSION", + "SPL", + "OTHER" + ], + "title": "ControlledVocabularyEnum", + "type": "string" + }, + "Coverage": { + "additionalProperties": false, + "properties": { + "spatial": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "items": { + "$ref": "#/$defs/Url" + }, + "type": "array" + } + ], + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:\\n- For locations in the UK: [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about)\\n- For locations in other countries: [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes)", + "examples": [ + "United Kingdom", + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "guidance": "- The geographical area covered by the dataset.\\n- Please provide a valid location.\\n- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).\\n- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes).", + "title": "Geographic coverage" + }, + "typicalAgeRangeMin": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the minimum age in years of participants in the dataset as a whole number (integer).", + "examples": [ + 18 + ], + "guidance": "- Please indicate the minimum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 0.", + "title": "Minimum age range" + }, + "typicalAgeRangeMax": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the maximum age in years of participants in the dataset as a whole number (integer).", + "examples": [ + 90 + ], + "guidance": "- Please indicate the maximum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 150.", + "title": "Maximum age range" + }, + "datasetCompleteness": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "examples": [ + "https://bhfdatasciencecentre.org/dashboard/" + ], + "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.\\n**Example**: https://bhfdatasciencecentre.org/dashboard/", + "title": "Dataset coverage/completeness/quality" + }, + "materialType": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/MaterialTypeCategoriesV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The type of biospecimen saved from a biological entity.", + "guidance": "Indicate the specimen type, can be several values from the list below:\\n- Availability of physical samples associated with the dataset.\\n- If samples are available, please indicate the types of samples that are available.\\n- More than one type may be provided.\\n- If samples are not yet available, please provide **\u201cAvailability to be confirmed\u201d**.\\n- If samples are not available, then please provide **\u201cNot available\u201d**.\\n- **Not available**: Samples associated with the dataset are not available.\\n- **Bone marrow**: Bone marrow samples associated with the data are available.\\n- **Cancer cell lines**: Cancer cell line samples associated with the data are available.\\n- **CDNA/MRNA**: CDNA/MRNA samples associated with the data are available.\\n- **Core biopsy**: Core biopsy samples associated with the data are available.\\n- **DNA**: DNA samples associated with the data are available.\\n- **Entire body organ**: Entire body organ associated with the data are available.\\n- **Faeces**: Faeces samples associated with the data are available.\\n- **Immortalized cell lines**: Immortalized cell line samples associated with the data are available.\\n- **Isolated pathogen**: Isolated pathogen associated with the data are available.\\n- **MicroRNA**: MicroRNA samples associated with the data are available.\\n- **Peripheral blood cells**: Peripheral blood cell samples associated with the data are available.\\n- **Plasma**: Plasma samples associated with the data are available.\\n- **PM Tissue**: PM Tissue samples associated with the data are available.\\n- **Primary cells**: Primary cell samples associated with the data are available.\\n- **RNA**: RNA samples associated with the data are available.\\n- **Saliva**: Saliva samples associated with the data are available.\\n- **Serum**: Serum samples associated with the data are available.\\n- **Swabs**: Swab samples associated with the data are available.\\n- **Tissue**: Tissue samples associated with the data are available.\\n- **Urine**: Urine samples associated with the data are available.\\n- **Whole blood**: Whole blood samples associated with the data are available.\\n- **Availability to be confirmed**: Availability of samples is currently being confirmed.\\n- **Other**: Other types of sample available.", + "title": "Biological sample availability" + }, + "followUp": { + "anyOf": [ + { + "$ref": "#/$defs/FollowupV2" + }, + { + "type": "null" + } + ], + "default": "Unknown", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed \u201clongitudinally\u201d i.e. new information is collected about them for a period of time afterward. This is known as the \u201cfollow up period\u201d. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period.", + "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).\\n-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.\\n-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.\\n-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.\\n-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.\\n-**CONTINUOUS**: Data for patients is being regularly added to and updated.\\n-**UNKNOWN**: Timespan is Unknown.\\n-**OTHER**: Data available for a patient over another time period.", + "title": "Follow-up" + }, + "pathway": { + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "guidance": "- Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage.\\n- 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.", + "title": "Patient pathway description" + } + }, + "required": [ + "spatial" + ], + "title": "Coverage", + "type": "object" + }, + "DataColumn": { + "properties": { + "name": { + "$ref": "#/$defs/Name", + "description": "The name of a column in a table.", + "title": "Column name" + }, + "dataType": { + "description": "The data type of values in the column.", + "title": "Data type", + "type": "string" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a column in a table.", + "title": "Column description" + }, + "sensitive": { + "description": "A True or False value, indicating if the field is sensitive or not.", + "title": "Sensitive", + "type": "boolean" + }, + "values": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataValue" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Values in a dataset.", + "title": "Values" + } + }, + "required": [ + "name", + "dataType", + "sensitive" + ], + "title": "DataColumn", + "type": "object" + }, + "DataTable": { + "additionalProperties": false, + "properties": { + "name": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The name of a table in a dataset.", + "title": "Table name" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a table in a dataset.", + "title": "Table description" + }, + "size": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Number of Complete Entries.", + "guidance": "Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete.", + "title": "Table size" + }, + "columns": { + "description": "A list of columns contained within a table in a dataset.", + "items": { + "$ref": "#/$defs/DataColumn" + }, + "title": "Data columns", + "type": "array" + } + }, + "required": [ + "columns" + ], + "title": "DataTable", + "type": "object" + }, + "DataUseLimitationV2": { + "enum": [ + "General research use", + "Commercial research use", + "Genetic studies only", + "No general methods research", + "No restriction", + "Geographical restrictions", + "Institution-specific restrictions", + "Not for profit use", + "Project-specific restrictions", + "Research-specific restrictions", + "User-specific restrictions", + "Research use only", + "No linkage" + ], + "title": "DataUseLimitationV2", + "type": "string" + }, + "DataUseRequirementsV2": { + "enum": [ + "Collaboration required", + "Project-specific restrictions", + "Ethics approval required", + "Institution-specific restrictions", + "Geographical restrictions", + "Publication moratorium", + "Publication required", + "Return to database or resource", + "Time limit on use", + "Disclosure control", + "Not for profit use", + "User-specific restriction" + ], + "title": "DataUseRequirementsV2", + "type": "string" + }, + "DataValue": { + "properties": { + "name": { + "$ref": "#/$defs/Name", + "description": "Unique value in a column.", + "title": "Value name" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a unique value in a column.", + "title": "Value description" + }, + "frequency": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The frequency of occurrance of a value in a column.", + "title": "Value frequency" + } + }, + "required": [ + "name" + ], + "title": "DataValue", + "type": "object" + }, + "DatasetDescriptor": { + "properties": { + "pid": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Persistent identifier of a dataset" + }, + "title": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Title of a dataset" + }, + "url": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Url of a dataset" + } + }, + "title": "DatasetDescriptor", + "type": "object" + }, + "DatasetFilters": { + "description": "A list of categorization tags (ids) for the dataset.", + "items": { + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "type": "string" + }, + "title": "Dataset Filters", + "type": "array" + }, + "DeliveryLeadTimeV2": { + "enum": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ], + "title": "DeliveryLeadTimeV2", + "type": "string" + }, + "DemographicFrequency": { + "additionalProperties": false, + "properties": { + "age": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Age" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of bins, based off the UK Office for National Statistics (ONS) groupings, and their corresponding counts as represented within the dataset.", + "title": "Age" + }, + "ethnicity": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Ethnicity" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of bins, based off the UK Office for National Statistics (ONS) census groupings, and their corresponding counts as represented within the dataset.", + "guidance": "Enter the count of population represented in the dataset within the ethnicity bins provided. Clearly indicate where ethnicity is not stated or not known. Ensure you apply low number suppression and rounding where appropriate.", + "title": "Ethnicity" + }, + "disease": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Disease" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of health conditions or diseases (based around ICD-10, SNOMED CT and MeSH disease vocabularies) and their corresponding counts as represented within the dataset.", + "guidance": "Create bins based on standard vocabulary (ICD-10, SNOMED CT or MeSH) and disease code. Then enter the count of population represented in the dataset within the disease bins created. Ensure you apply low number suppression and rounding where appropriate.", + "title": "Disease" + } + }, + "title": "DemographicFrequency", + "type": "object" + }, + "Description": { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, + "Disease": { + "properties": { + "diseaseCode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "examples": [ + "J45" + ], + "title": "Disease code" + }, + "diseaseCodeVocabulary": { + "$ref": "#/$defs/DiseaseCodeEnum", + "examples": [ + "ICD10" + ], + "title": "Disease code vocabulary" + }, + "count": { + "examples": [ + 1000 + ], + "title": "Disease count", + "type": "integer" + } + }, + "required": [ + "diseaseCode", + "diseaseCodeVocabulary", + "count" + ], + "title": "Disease", + "type": "object" + }, + "DiseaseCodeEnum": { + "enum": [ + "ICD10", + "SNOMED CT", + "MeSH" + ], + "title": "DiseaseCodeEnum", + "type": "string" + }, + "Documentation": { + "additionalProperties": false, + "properties": { + "description": { + "$ref": "#/$defs/Description", + "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", + "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." + ], + "guidance": "- An HTML account of the data that **provides context and scope** of the data, **limited to 10000 characters, and/or a resolvable URL** that describes the dataset.\\n- Additional information can be recorded and included using the Associated media field." + }, + "associatedMedia": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide any media associated with the Gateway Organisation using a valid URL 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 - https://link.to/document.pdf" + ], + "guidance": "- Please provide any media associated with the Gateway Organisation **using a valid URL** for the content.\\n- 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.\\n- Note: media assets should be hosted by the organisation.\n- **Example**: This could be a **link to a PDF Document** that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.\\n- If you are providing multiple links for associated media, we recommend that you separate these with a comma.", + "title": "Associated media" + }, + "inPipeline": { + "anyOf": [ + { + "$ref": "#/$defs/Pipeline" + }, + { + "type": "null" + } + ], + "default": "Not available", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "guidance": "If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'.", + "title": "Dataset pipeline status" + } + }, + "required": [ + "description" + ], + "title": "Documentation", + "type": "object" + }, + "Doi": { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "EmailAddress": { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "EmailAddress" + }, + "EndDateEnum": { + "enum": [ + "CONTINUOUS", + null + ], + "title": "EndDateEnum" + }, + "EnrichmentAndLinkage": { + "additionalProperties": false, + "properties": { + "derivedFrom": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "If applicable, please provide DOIs or links to datasets from which data in this dataset has been derived or calculated from.", + "title": "Derived from" + }, + "isPartOf": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "This relationship indicates that the dataset is a component or subset of a broader collection of related datasets. For example, clinical trial data for a specific drug may be part of a larger database of pharmaceutical research data. Complete only if the dataset is part of a group or family of datasets i.e. Hospital Episode Statistics has several constituents. If your dataset is not part of a group, please enter \u201cNOT APPLICABLE\u201d **Example**: Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS).", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)" + ], + "title": "Is part of" + }, + "linkableDatasets": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Linked datasets" + }, + "similarToDatasets": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Datasets that are similar to each other in some way, collect similar patients, regional equivalent etc.", + "title": "Similar to datasets" + }, + "investigations": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Url" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide link to any active projects that are using the dataset.", + "guidance": "- Please provide the website address(es) which document information related to active projects utilising the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each website and press enter to add it to the list.\\n- **Example**: ", + "title": "Investigations" + }, + "tools": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Url" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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/", + "guidance": "- Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use.\\n- Multiple tools may be provided.\\n- 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/", + "title": "Tools" + }, + "publicationAboutDataset": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Doi" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOIs for publications which describe the dataset.", + "examples": [ + "10.1093/ije/dyab028" + ], + "guidance": "- Please provide the DOIs for publications which describe the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1093/ije/dyab028>", + "title": "Publication about the dataset" + }, + "publicationUsingDataset": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Doi" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOIs for publications which use the dataset for analysis.", + "examples": [ + "10.1001/jamapediatrics.2016.3633" + ], + "guidance": "- Please provide the DOIs for publications which have used the dataset in their analysis.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1001/jamapediatrics.2016.3633>", + "title": "Publication using the dataset" + } + }, + "title": "EnrichmentAndLinkage", + "type": "object" + }, + "EnvironmentAndEnergy": { + "properties": { + "name": { + "Literal": true, + "default": "Environment and energy", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/NotApplicableSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "EnvironmentAndEnergy", + "type": "object" + }, + "Ethnicity": { + "properties": { + "bin": { + "$ref": "#/$defs/EthnicityEnum", + "examples": [ + "Black or Black British - Any other Black background" + ], + "title": "Ethnicity grouping" + }, + "count": { + "examples": [ + 1000 + ], + "title": "Ethnicity count", + "type": "integer" + } + }, + "required": [ + "bin", + "count" + ], + "title": "Ethnicity", + "type": "object" + }, + "EthnicityEnum": { + "enum": [ + "White - British", + "White - Irish", + "White - Any other White background", + "Mixed - White and Black Caribbean", + "Mixed - White and Black African", + "Mixed - White and Asian", + "Mixed - Any other mixed background", + "Asian or Asian British - Indian", + "Asian or Asian British - Pakistani", + "Asian or Asian British - Bangladeshi", + "Asian or Asian British - Any other Asian background", + "Black or Black British - Caribbean", + "Black or Black British - African", + "Black or Black British - Any other Black background", + "Other Ethnic Groups - Chinese", + "Other Ethnic Groups - Any other ethnic group", + "Not stated", + "Not known" + ], + "title": "EthnicityEnum", + "type": "string" + }, + "FollowupV2": { + "enum": [ + "0 - 6 Months", + "6 - 12 Months", + "1 - 10 Years", + "> 10 Years", + "Unknown", + "Continuous", + "Other", + null + ], + "title": "FollowupV2" + }, + "Format": { + "minLength": 1, + "title": "Format", + "type": "string" + }, + "FormatAndStandards": { + "additionalProperties": false, + "properties": { + "vocabularyEncodingScheme": { + "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": [ + "LOCAL", + "ICD10" + ], + "guidance": "- 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.\\n- 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.\\n- Notes: More than one vocabulary may be provided.\\n- **Local**: Local Coding Standard.\\n- [**OPCS4**](https://digital.nhs.uk/data-and-information/information-standards/governance/latest-activity/standards-and-collections/dapb0084-opcs-classification-of-interventions-and-procedures/)\\n- [**READ**](https://digital.nhs.uk/services/terminology-and-classifications/read-codes)\\n- [**SNOMED CT**](http://www.snomed.org/)\\n- [**SNOMED RT**](https://confluence.ihtsdotools.org/display/DOCGLOSS/SNOMED+RT)\\n- [**DM+D**](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/scci0052-dictionary-of-medicines-and-devices-dm-d)\\n- [**NHS National Codes**](https://www.datadictionary.nhs.uk/)\\n- [**ODS**](https://digital.nhs.uk/services/organisation-data-service)\\n- [**LOINC**](https://loinc.org/)\\n- [**ICD10**](https://www.who.int/classifications/icd/icdonlineversions/en/)\\n- [**ICD10CM**](https://www.cdc.gov/nchs/icd/icd10cm.htm)\\n- [**ICD10PCS**](https://ec.europa.eu/eip/ageing/standards/healthcare/e-health/icd-10-pcs_en)\\n- [**ICD9CM**](https://www.cdc.gov/nchs/icd/icd9cm.htm)\\n- [**ICD9**](https://www.cdc.gov/nchs/icd/icd9.htm)\\n- [**ICDO3**](https://www.who.int/standards/classifications/other-classifications/international-classification-of-diseases-for-oncology)\\n- [**AMT**](https://www.digitalhealth.gov.au/healthcare-providers/product-releases)\\n- [**APC**](https://www.acep.org/administration/reimbursement/reimbursement-faqs/apc-ambulatory-payment-classifications-faq/)\\n- [**ATC**](https://www.whocc.no/atc_ddd_index/)\\n- [**CIEL**](https://github.com/OpenConceptLab/ocl_web/wiki/CIEL)\\n- [**HPO**](https://hpo.jax.org/app/)\\n- [**CPT4**](https://www.ama-assn.org/practice-management/cpt)\\n- [**DPD**](https://health-products.canada.ca/dpd-bdpp/index-eng.jsp)\\n- [**DRG**](https://www.who.int/publications/i/item/WHO-UHC-HGF-Guidance-20.10)\\n- [**HEMONC**](https://hemonc.org/wiki/Main_Page)\\n- [**JMDC**](https://www.jmdc.co.jp/en/)\\n- [**KCD7**](https://forums.ohdsi.org/t/adding-kcd7-code-korean-icd-10-to-the-omop-vocabulary/7576)\\n- [**MULTUM**](https://www.cerner.com/solutions/drug-database)\\n- [**NAACCR**](https://www.naaccr.org/)\\n- [**NDC**](https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory)\\n- [**NDFRT**](https://bioportal.bioontology.org/ontologies/NDFRT)\\n- [**OXMIS**](https://oxrisk.com/oxmis/)\\n- [**RXNORM**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**RXNORM EXTENSION**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**SPL**](https://www.fda.gov/industry/fda-resources-data-standards/structured-product-labeling-resources)\\n- **Other**: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.\\n- [**NHS Scotland National Codes**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales National Codes**](http://www.datadictionary.wales.nhs.uk/)", + "items": { + "$ref": "#/$defs/ControlledVocabularyEnum" + }, + "title": "Controlled vocabulary", + "type": "array" + }, + "conformsTo": { + "description": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, 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.", + "examples": [ + "LOCAL", + "NHS DATA DICTIONARY" + ], + "guidance": "- List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.\\n- If the data is only available in a local format, 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.\\n- [**HL7 FHIR**](https://www.hl7.org/fhir/)\\n- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)\\n- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)\\n- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)\\n- [**DICOM**](https://www.dicomstandard.org/)\\n- [**I2B2**](https://www.i2b2.org/)\\n- [**IHE**](https://www.ihe.net/resources/profiles/)\\n- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)\\n- [**openEHR**](https://www.openehr.org/)\\n- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)\\n- [**PCORnet**](https://pcornet.org/data-driven-common-model/)\\n- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)\\n- **Local**: In-house developed data model.\\n- **Other**: Other standardised data model.\\n- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)\\n- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/)", + "items": { + "$ref": "#/$defs/StandardisedDataModelsEnum" + }, + "title": "Alignment with standardised data models", + "type": "array" + }, + "language": { + "description": "This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639.", + "examples": [ + "en" + ], + "guidance": "https://www.iso.org/iso-639-language-code\\n- **aa**: Afar\\n- **ab**: Abkhazian\\n- **af**: Afrikaans\\n- **ak**: Akan\\n- **sq**: Albanian\\n- **am**: Amharic\\n- **ar**: Arabic\\n- **an**: Aragonese\\n- **hy**: Armenian\\n- **as**: Assamese\\n- **av**: Avaric\\n- **ae**: Avestan\\n- **ay**: Aymara\\n- **az**: Azerbaijani\\n- **ba**: Bashkir\\n- **bm**: Bambara\\n- **eu**: Basque\\n- **be**: Belarusian\\n- **bn**: Bengali\\n- **bh**: Bihari languages\\n- **bi**: Bislama\\n- **bo**: Tibetan\\n- **bs**: Bosnian\\n- **br**: Breton\\n- **bg**: Bulgarian\\n- **my**: Burmese\\n- **ca**: Catalan; Valencian\\n- **cs**: Czech\\n- **ch**: Chamorro\\n- **ce**: Chechen\\n- **zh**: Chinese\\n- **cu**: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic\\n- **cv**: Chuvash\\n- **kw**: Cornish\\n- **co**: Corsican\\n- **cr**: Cree\\n- **cy**: Welsh\\n- **cs**: Czech\\n- **da**: Danish\\n- **de**: German\\n- **dv**: Divehi; Dhivehi; Maldivian\\n- **nl**: Dutch; Flemish\\n- **dz**: Dzongkha\\n- **el**: Greek, Modern (1453-)\\n- **en**: English\\n- **eo**: Esperanto\\n- **et**: Estonian\\n- **eu**: Basque\\n- **ee**: Ewe\\n- **fo**: Faroese\\n- **fa**: Persian\\n- **fj**: Fijian\\n- **fi**: Finnish\\n- **fr**: French\\n- **fy**: Western Frisian\\n- **ff**: Fulah\\n- **ka**: Georgian\\n- **de**: German\\n- **gd**: Gaelic; Scottish Gaelic\\n- **ga**: Irish\\n- **gl**: Galician\\n- **gv**: Manx\\n- **el**: Greek, Modern (1453-)\\n- **gn**: Guarani\\n- **gu**: Gujarati\\n- **ht**: Haitian; Haitian Creole\\n- **ha**: Hausa\\n- **ho**: Hiri Motu\\n- **hr**: Croatian\\n- **hu**: Hungarian\\n- **hy**: Armenian\\n- **ig**: Igbo\\n- **is**: Icelandic\\n- **io**: Ido\\n- **ii**: Sichuan Yi; Nuosu\\n- **iu**: Inuktitut\\n- **ie**: Interlingue; Occidental\\n- **ia**: Interlingua (International Auxiliary Language Association)\\n- **id**: Indonesian\\n- **ik**: Inupiaq\\n- **is**: Icelandic\\n- **it**: Italian\\n- **jv**: Javanese\\n- **ja**: Japanese\\n- **kl**: Kalaallisut; Greenlandic\\n- **kn**: Kannada\\n- **ks**: Kashmiri\\n- **ka**: Georgian\\n- **kr**: Kanuri\\n- **kk**: Kazakh\\n- **km**: Central Khmer\\n- **ki**: Kikuyu; Gikuyu\\n- **rw**: Kinyarwanda\\n- **ky**: Kirghiz; Kyrgyz\\n- **kv**: Komi\\n- **kg**: Kongo\\n- **ko**: Korean\\n- **kj**: Kuanyama; Kwanyama\\n- **ku**: Kurdish\\n- **lo**: Lao\\n- **la**: Latin\\n- **lv**: Latvian\\n- **li**: Limburgan; Limburger; limburgish\\n- **ln**: Lingala\\n- **lt**: Lithuanian\\n- **lb**: Luxembourgish; Letzeburgesch\\n- **lu**: Luba-Katanga\\n- **lg**: Ganda\\n- **mk**: Macedonian\\n- **mh**: Marshallese\\n- **ml**: Malayalam\\n- **mi**: Maori\\n- **mr**: Marathi\\n- **ms**: Malay\\n- **mk**: Macedonian\\n- **mg**: Malagasy\\n- **mt**: Maltese\\n- **mn**: Mongolian\\n- **mi**: Maori\\n- **ms**: Malay\\n- **my**: Burmese\\n- **na**: Nauru\\n- **nv**: Navajo; Navaho\\n- **nr**: Ndebele, South; South Ndebele\\n- **nd**: Ndebele, North; North Ndebele\\n- **ng**: Ndonga\\n- **ne**: Nepali\\n- **nl**: Dutch; Flemish\\n- **nn**: Norwegian Nynorsk; Nynorsk, Norwegian\\n- **nb**: Bokm\u00e5l, Norwegian; Norwegian Bokm\u00e5l\\n- **no**: Norwegian\\n- **ny**: Chichewa; Chewa; Nyanja\\n- **oc**: Occitan (post 1500)\\n- **oj**: Ojibwa\\n- **or**: Oriya\\n- **om**: Oromo\\n- **os**: Ossetian; Ossetic\\n- **pa**: Panjabi; Punjabi\\n- **fa**: Persian\\n- **pi**: Pali\\n- **pl**: Polish\\n- **pt**: Portuguese\\n- **ps**: Pushto; Pashto\\n- **qu**: Quechua\\n- **rm**: Romansh\\n- **ro**: Romanian; Moldavian; Moldovan\\n- **rn**: Rundi\\n- **ru**: Russian\\n- **sg**: Sango\\n- **sa**: Sanskrit\\n- **si**: Sinhala; Sinhalese\\n- **sk**: Slovak\\n- **sl**: Slovenian\\n- **se**: Northern Sami\\n- **sm**: Samoan\\n- **sn**: Shona\\n- **sd**: Sindhi\\n- **so**: Somali\\n- **st**: Sotho, Southern\\n- **es**: Spanish; Castilian\\n- **sq**: Albanian\\n- **sc**: Sardinian\\n- **sr**: Serbian\\n- **ss**: Swati\\n- **su**: Sundanese\\n- **sw**: Swahili\\n- **sv**: Swedish\\n- **ty**: Tahitian\\n- **ta**: Tamil\\n- **tt**: Tatar\\n- **te**: Telugu\\n- **tg**: Tajik\\n- **tl**: Tagalog\\n- **th**: Thai\\n- **bo**: Tibetan\\n- **ti**: Tigrinya\\n- **to**: Tonga (Tonga Islands)\\n- **tn**: Tswana\\n- **ts**: Tsonga\\n- **tk**: Turkmen\\n- **tr**: Turkish\\n- **tw**: Twi\\n- **ug**: Uighur; Uyghur\\n- **uk**: Ukrainian\\n- **ur**: Urdu\\n- **uz**: Uzbek\\n- **ve**: Venda\\n- **vi**: Vietnamese\\n- **vo**: Volap\u00fck\\n- **cy**: Welsh\\n- **wa**: Walloon\\n- **wo**: Wolof\\n- **xh**: Xhosa\\n- **yi**: Yiddish\\n- **yo**: Yoruba\\n- **za**: Zhuang; Chuang\\n- **zh**: Chinese\\n- **zu**: Zulu", + "items": { + "$ref": "#/$defs/LanguageEnum" + }, + "title": "Language", + "type": "array" + }, + "format": { + "description": "If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format.", + "examples": [ + "text/tab-separated-values", + "application/sql", + "text/csv", + "image/diacom-rle" + ], + "guidance": "- If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, .\\n- Please **enter one format type at a time** and click **Add New Field** to add further keywords.\\n- Note: If your file format is not included in the current list of formats, please indicate other.\\n- **Example**: text/tab-separated-values, application/sql, text/csv, image/diacom-rle", + "items": { + "$ref": "#/$defs/Format" + }, + "title": "Format", + "type": "array" + } + }, + "required": [ + "vocabularyEncodingScheme", + "conformsTo", + "language", + "format" + ], + "title": "FormatAndStandards", + "type": "object" + }, + "HealthAndDisease": { + "properties": { + "name": { + "Literal": true, + "default": "Health and disease", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/HealthAndDiseaseSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "HealthAndDisease", + "type": "object" + }, + "HealthAndDiseaseSubTypes": { + "enum": [ + "Mental health", + "Cardiovascular", + "Cancer", + "Rare diseases", + "Metabolic and endocrine", + "Neurological", + "Reproductive", + "Maternity and neonatology", + "Respiratory", + "Immunity", + "Musculoskeletal", + "Vision", + "Renal and urogenital", + "Oral and gastrointestinal", + "Cognitive function", + "Hearing", + "Others" + ], + "title": "HealthAndDiseaseSubTypes", + "type": "string" + }, + "Image": { + "additionalProperties": false, + "properties": { + "image": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "contentMediaType": "image/*", + "default": null, + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "title": "Image" + }, + "description": { + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "title": "Image", + "type": "object" + }, + "ImagingAreaOfTheBody": { + "properties": { + "name": { + "Literal": true, + "default": "Imaging Area Of The Body", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/ImagingAreaOfTheBodySubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "ImagingAreaOfTheBody", + "type": "object" + }, + "ImagingAreaOfTheBodySubTypes": { + "enum": [ + "Head", + "Chest", + "Arm", + "Abdomen", + "Leg", + "Others" + ], + "title": "ImagingAreaOfTheBodySubTypes", + "type": "string" + }, + "ImagingTypes": { + "properties": { + "name": { + "Literal": true, + "default": "Imaging types", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/ImagingTypesSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "ImagingTypes", + "type": "object" + }, + "ImagingTypesSubTypes": { + "enum": [ + "CT", + "MRI", + "PET", + "X-ray", + "Ultrasound", + "Pathology", + "Others" + ], + "title": "ImagingTypesSubTypes", + "type": "string" + }, + "InformationAndCommunication": { + "properties": { + "name": { + "Literal": true, + "default": "Information and communication", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/NotApplicableSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "InformationAndCommunication", + "type": "object" + }, + "Isocountrycode": { + "pattern": "^[A-Z]{2}(-[A-Z]{2,3})?$", + "title": "Isocountrycode", + "type": "string" + }, + "LanguageEnum": { + "enum": [ + "aa", + "ab", + "ae", + "af", + "ak", + "am", + "an", + "ar", + "as", + "av", + "ay", + "az", + "ba", + "be", + "bg", + "bh", + "bi", + "bm", + "bn", + "bo", + "br", + "bs", + "ca", + "ce", + "ch", + "co", + "cr", + "cs", + "cu", + "cv", + "cy", + "da", + "de", + "dv", + "dz", + "ee", + "el", + "en", + "eo", + "es", + "et", + "eu", + "fa", + "ff", + "fi", + "fj", + "fo", + "fr", + "fy", + "ga", + "gd", + "gl", + "gn", + "gu", + "gv", + "ha", + "he", + "hi", + "ho", + "hr", + "ht", + "hu", + "hy", + "hz", + "ia", + "id", + "ie", + "ig", + "ii", + "ik", + "io", + "is", + "it", + "iu", + "ja", + "jv", + "ka", + "kg", + "ki", + "kj", + "kk", + "kl", + "km", + "kn", + "ko", + "kr", + "ks", + "ku", + "kv", + "kw", + "ky", + "la", + "lb", + "lg", + "li", + "ln", + "lo", + "lt", + "lu", + "lv", + "mg", + "mh", + "mi", + "mk", + "ml", + "mn", + "mr", + "ms", + "mt", + "my", + "na", + "nb", + "nd", + "ne", + "ng", + "nl", + "nn", + "no", + "nr", + "nv", + "ny", + "oc", + "oj", + "om", + "or", + "os", + "pa", + "pi", + "pl", + "ps", + "pt", + "qu", + "rm", + "rn", + "ro", + "ru", + "rw", + "sa", + "sc", + "sd", + "se", + "sg", + "si", + "sk", + "sl", + "sm", + "sn", + "so", + "sq", + "sr", + "ss", + "st", + "su", + "sv", + "sw", + "ta", + "te", + "tg", + "th", + "ti", + "tk", + "tl", + "tn", + "to", + "tr", + "ts", + "tt", + "tw", + "ty", + "ug", + "uk", + "ur", + "uz", + "ve", + "vi", + "vo", + "wa", + "wo", + "xh", + "yi", + "yo", + "za", + "zh", + "zu" + ], + "title": "LanguageEnum", + "type": "string" + }, + "Lifestyle": { + "properties": { + "name": { + "Literal": true, + "default": "Lifestyle", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/LifestyleSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "Lifestyle", + "type": "object" + }, + "LifestyleSubTypes": { + "enum": [ + "Smoking", + "Physical activity", + "Dietary habits", + "Alcohol", + "Others" + ], + "title": "LifestyleSubTypes", + "type": "string" + }, + "LineSeparatedValues": { + "anyOf": [ + { + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LineSeparatedValues" + }, + "LongDescription": { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + }, + "MaterialTypeCategoriesV2": { + "enum": [ + "None/not available", + "Bone marrow", + "Cancer cell lines", + "CDNA/MRNA", + "Core biopsy", + "DNA", + "Entire body organ", + "Faeces", + "Immortalized cell lines", + "Isolated pathogen", + "MicroRNA", + "Peripheral blood cells", + "Plasma", + "PM Tissue", + "Primary cells", + "RNA", + "Saliva", + "Serum", + "Swabs", + "Tissue", + "Urine", + "Whole blood", + "Availability to be confirmed", + "Other" + ], + "title": "MaterialTypeCategoriesV2", + "type": "string" + }, + "MeasuredProperty": { + "title": "MeasuredProperty" + }, + "MeasurementsTests": { + "properties": { + "name": { + "Literal": true, + "default": "Measurements/Tests", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/MeasurementsTestsSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "MeasurementsTests", + "type": "object" + }, + "MeasurementsTestsSubTypes": { + "enum": [ + "Laboratory", + "Other diagnostics" + ], + "title": "MeasurementsTestsSubTypes", + "type": "string" + }, + "MemberOfV2": { + "enum": [ + "Hub", + "Alliance", + "Other", + "NCS" + ], + "title": "MemberOfV2", + "type": "string" + }, + "Name": { + "title": "Name" + }, + "NotApplicableSubTypes": { + "enum": [ + "Not applicable" + ], + "title": "NotApplicableSubTypes", + "type": "string" + }, + "Observation": { + "additionalProperties": false, + "properties": { + "observedNode": { + "$ref": "#/$defs/StatisticalPopulationConstrainedV2", + "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", + "examples": [ + "Persons" + ], + "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "title": "Dataset volume measure" + }, + "measuredValue": { + "description": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "examples": [ + 1000 + ], + "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "title": "Measured value", + "type": "integer" + }, + "disambiguatingDescription": { + "anyOf": [ + { + "$ref": "#/$defs/AbstractText" + }, + { + "type": "null" + } + ], + "default": null, + "description": "If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters.", + "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", + "title": "Disambiguating description" + }, + "observationDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ], + "description": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "examples": [ + "2024-10-24" + ], + "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "title": "Observation date" + }, + "measuredProperty": { + "$ref": "#/$defs/MeasuredProperty", + "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", + "examples": [ + "Count" + ], + "guidance": "Descriptive term for the observation property measured.", + "title": "Measured property" + } + }, + "required": [ + "observedNode", + "measuredValue", + "observationDate", + "measuredProperty" + ], + "title": "Observation", + "type": "object" + }, + "Omics": { + "additionalProperties": false, + "properties": { + "assay": { + "anyOf": [ + { + "$ref": "#/$defs/Assay" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "title": "Omics assay" + }, + "platform": { + "anyOf": [ + { + "$ref": "#/$defs/Platform" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "title": "Omics Platform" + } + }, + "title": "Omics", + "type": "object" + }, + "OmicsDataType": { + "properties": { + "name": { + "Literal": true, + "default": "Omics", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/OmicsDataTypeSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "OmicsDataType", + "type": "object" + }, + "OmicsDataTypeSubTypes": { + "enum": [ + "Proteomics", + "Transcriptomics", + "Epigenomics", + "Metabolomics", + "Metagenomics", + "Genomics", + "Lipidomics", + "Others" + ], + "title": "OmicsDataTypeSubTypes", + "type": "string" + }, + "OneHundredFiftyCharacters": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "Organisation": { + "additionalProperties": false, + "properties": { + "identifier": { + "anyOf": [ + { + "maxLength": 50, + "minLength": 2, + "type": "string" + }, + { + "type": "integer" + } + ], + "description": "Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation.", + "examples": [ + "30f16703-28bc-4f45-9ce5-625d2d3db27d" + ], + "guidance": "**Example**: https://ror.org/053fq8t95\\nIf your organisation does not have a ROR identifier please use the \u201csuggest and institute\u201d function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform", + "title": "identifier" + }, + "name": { + "$ref": "#/$defs/OneHundredFiftyCharacters", + "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", + "examples": [ + "Health Data Research UK" + ], + "guidance": "In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank.", + "title": "Name of Data Custodian" + }, + "logo": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg. If a logo is not submitted this will default to the logo for the team submitting the metadata.", + "title": "Organisation Logo" + }, + "description": { + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata.", + "title": "Organisation Description" + }, + "contactPoint": { + "anyOf": [ + { + "$ref": "#/$defs/EmailAddress" + }, + { + "items": { + "$ref": "#/$defs/EmailAddress" + }, + "type": "array" + } + ], + "description": "Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata.", + "examples": [ + "test@test.co.uk" + ], + "title": "contact point" + }, + "memberOf": { + "anyOf": [ + { + "$ref": "#/$defs/MemberOfV2" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata.", + "title": "Organisation Membership" + } + }, + "required": [ + "identifier", + "name", + "contactPoint" + ], + "title": "Organisation", + "type": "object" + }, + "Origin": { + "additionalProperties": false, + "properties": { + "purpose": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/PurposeV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the purpose(s) that the dataset was collected.", + "guidance": "- **Research cohort**: Data collected for a defined group of people.\\n- **Study**: Data collected for a specific research study.\\n- **Disease registry**: Data collected as part of a disease registry.\\n- **Trial**: Data collected for as part of a clinical trial.\\n- **Care**: Data collected as part of routine clinical care.\\n- **Audit**: Data collected as part of an audit programme.\\n- **Administrative**: Data collected for administrative and management information purposes.\\n- **Financial**: Data collected either for payments or for billing.\\n- **Statutory**: Data collected in compliance with statutory requirements.\\n- **Other**: Data collected for other purpose.", + "title": "Purpose of dataset collection" + }, + "datasetType": { + "description": "The topic areas to which the dataset content relates.", + "examples": [ + "Health and disease" + ], + "guidance": "Types include those listed below. Datasets can have more than one type associated.\\n- **Health and disease**: Includes any data related to mental health, cardiovascular, cancer, rare diseases, metabolic and endocrine, neurological, reproductive, maternity and neonatology, respiratory, immunity, musculoskeletal, vision, renal and urogenital, oral and gastrointestinal, cognitive function or hearing.\\n- **Treatments/Interventions**: Includes any data related to treatment or interventions related to vaccines or which are preventative or therapeutic in nature.\\n- **Measurements/Tests**: Includes any data related to laboratory or other diagnostics.\\n- **Imaging types**: Includes any data related to CT, MRI, PET, x-ray, ultrasound or pathology imaging.\\n- **Imaging area of the body**: Indicates whether the dataset relates to head, chest, arm abdomen or leg imaging.\\n- **Omics**: Includes any data related to proteomics, transcriptomics, epigenomics, metabolomics, multiomics, metagenomics or genomics.\\n- **Socioeconomic**: Includes any data related to education, crime and justice, ethnicity, housing, labour, ageing, economics, marital status, social support, deprivation, religion, occupation, finances or family circumstances.\\n- **Lifestyle**: Includes any data related to smoking, physical activity, dietary habits or alcohol.\\n- **Registry**: Includes any data related to disease registries for research, national disease registries, audits, or birth and deaths records.\\n- **Environment and energy**: Includes any data related to the monitoring or study of environmental or energy factors or events.\\n- **Information and communication**: Includes any data related to the study or application of information and communication.\\n- **Politics**: Includes any data related to political views, activities, voting, etc.", + "items": { + "anyOf": [ + { + "$ref": "#/$defs/HealthAndDisease" + }, + { + "$ref": "#/$defs/TreatmentsInterventions" + }, + { + "$ref": "#/$defs/MeasurementsTests" + }, + { + "$ref": "#/$defs/ImagingTypes" + }, + { + "$ref": "#/$defs/ImagingAreaOfTheBody" + }, + { + "$ref": "#/$defs/OmicsDataType" + }, + { + "$ref": "#/$defs/Socioeconomic" + }, + { + "$ref": "#/$defs/Lifestyle" + }, + { + "$ref": "#/$defs/Registry" + }, + { + "$ref": "#/$defs/EnvironmentAndEnergy" + }, + { + "$ref": "#/$defs/InformationAndCommunication" + }, + { + "$ref": "#/$defs/Politics" + } + ] + }, + "title": "Dataset type", + "type": "array" + }, + "source": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/SourceV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the source of the data extraction.", + "guidance": " - **EPR**: Data Extracted from Electronic Patient Record.\\n- **Electronic survey**: Data has been extracted from electronic surveys.\\n- **LIMS**: Data has been extracted from a laboratory information management system.\\n- **Paper-based**: Data has been extracted from paper forms.\\n- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.\\n- **Machine generated**: Data has been machine generated i.e. imaging.\\n- **Other**: Data has been extracted by other means.", + "title": "Source of data extraction" + }, + "collectionSource": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/SettingV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided.", + "guidance": "- **Cohort, study, trial**: Cohort, study or trial data collection as part of protocol.\\n- **Clinic**: Specific clinic such as antenatal clinic.\\n- **Primary care - Referrals**: General medical practitioner referral to another service.\\n- **Primary care - Clinic**: General medical practitioner practice.\\n- **Primary care - Out of hours**: General medical practitioner care or advice outside of standard hours.\\n- **Secondary care - Accident and emergency**: Accident emergency department.\\n- **Secondary care - Outpatients**: Outpatient care.\\n- **Secondary care - In-patients**: In-patient care.\\n- **Secondary care - Ambulance**: Care provided in association with ambulance service.\\n- **Secondary care - ICU**: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).\\n- **Prescribing - Community pharmacy**: Pharmacy based in the community.\\n- **Prescribing - Community pharmacy**: Pharmacy based in a hospital setting.\\n- **Patient report outcome**: Reported by patient.\\n- **Wearables**: Data collection devices worn on the body.\\n- **Local authority**: Local authority or entity associated with a local authority.\\n- **National government**: National government or entity associated with the national government.\\n- **Community**: Community settings.\\n- **Services**: Services such as drug misuse or blood transfusion.\\n- **Home**: Home setting.\\n- **Private**: Private medical clinic.\\n- **Social care - Health care at home**: service provided in the home or residence of a person.\\n- **Social care - Other social data**: service provided in a setting outside of the person's home or residence.\\n- **Census**: collected as part of census.\\n- **Other**: Other setting.", + "title": "Collection source setting" + }, + "imageContrast": { + "anyOf": [ + { + "$ref": "#/$defs/Ternary" + }, + { + "type": "null" + } + ], + "default": "Not stated", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", + "title": "Image contrast" + } + }, + "required": [ + "datasetType" + ], + "title": "Origin", + "type": "object" + }, + "PeriodicityV2": { + "enum": [ + "Static", + "Irregular", + "Continuous", + "Biennial", + "Annual", + "Biannual", + "Quarterly", + "Bimonthly", + "Monthly", + "Biweekly", + "Weekly", + "Twice a week", + "Daily", + "Other", + null + ], + "title": "PeriodicityV2" + }, + "Pipeline": { + "enum": [ + "Available", + "Not available" + ], + "title": "Pipeline", + "type": "string" + }, + "Platform": { + "enum": [ + "Other", + "NMR Nightingale", + "Metabolon", + "Biocrates", + "Illumina", + "Oxford Nanopore", + "454", + "Hi-C", + "HiFi" + ], + "title": "Platform", + "type": "string" + }, + "Politics": { + "properties": { + "name": { + "Literal": true, + "default": "Politics", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/NotApplicableSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "Politics", + "type": "object" + }, + "Project": { + "additionalProperties": false, + "properties": { + "projectName": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "May or may not be different to the Dataset Title", + "title": "Project Title" + }, + "leadResearcher": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "", + "examples": [ + "Dr Smith" + ], + "title": "Lead Researcher" + }, + "leadResearchInstitute": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "", + "examples": [ + "Sussex University" + ], + "title": "Lead Research Institute" + }, + "grantNumbers": { + "anyOf": [ + { + "$ref": "#/$defs/LineSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "List of grant numbers separated by a line break", + "examples": [ + "A354t", + "ropguadg" + ], + "guidance": "Normally specified on the grant acceptance letter", + "title": "Grant number(s)" + }, + "projectStartDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "title": "Project Start Date" + }, + "projectEndDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "title": "Project End Date" + }, + "projectScope": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "data and biospecimens expected to result from the grant.", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "title": "Project Scope" + } + }, + "title": "Project", + "type": "object" + }, + "Provenance": { + "additionalProperties": false, + "properties": { + "origin": { + "anyOf": [ + { + "$ref": "#/$defs/Origin" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Coverage by origin (geographical and situations).", + "title": "Origin Coverage" + }, + "temporal": { + "$ref": "#/$defs/Temporal", + "description": "Dates and other temporal coverage information.", + "title": "Temporal Coverage" + } + }, + "required": [ + "temporal" + ], + "title": "Provenance", + "type": "object" + }, + "PurposeV2": { + "enum": [ + "Research cohort", + "Study", + "Disease registry", + "Trial", + "Care", + "Audit", + "Administrative", + "Financial", + "Statutory", + "Other", + null + ], + "title": "PurposeV2" + }, + "Registry": { + "properties": { + "name": { + "Literal": true, + "default": "Registry", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/RegistrySubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "Registry", + "type": "object" + }, + "RegistrySubTypes": { + "enum": [ + "Disease registry (research)", + "National disease registries and audits", + "Births and deaths", + "Others" + ], + "title": "RegistrySubTypes", + "type": "string" + }, + "Revision": { + "additionalProperties": false, + "properties": { + "version": { + "$ref": "#/$defs/Semver", + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "title": "revision version" + }, + "url": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "revision url" + } + }, + "required": [ + "version" + ], + "title": "Revision", + "type": "object" + }, + "Semver": { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + }, + "SettingV2": { + "enum": [ + "Cohort, study, trial", + "Clinic", + "Primary care - Referrals", + "Primary care - Clinic", + "Primary care - Out of hours", + "Secondary care - Accident and Emergency", + "Secondary care - Outpatients", + "Secondary care - In-patients", + "Secondary care - Ambulance", + "Secondary care - ICU", + "Prescribing - Community pharmacy", + "Prescribing - Hospital", + "Patient report outcome", + "Wearables", + "Local authority", + "National government", + "Community", + "Services", + "Home", + "Private", + "Social care - Health care at home", + "Social care - Other social data", + "Census", + "Other", + null + ], + "title": "SettingV2" + }, + "ShortDescription": { + "anyOf": [ + { + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortDescription" + }, + "Socioeconomic": { + "properties": { + "name": { + "Literal": true, + "default": "Socioeconomic", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/SocioeconomicSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "Socioeconomic", + "type": "object" + }, + "SocioeconomicSubTypes": { + "enum": [ + "Education", + "Crime and justice", + "Ethnicity", + "Housing", + "Labour", + "Ageing", + "Economics", + "Marital status", + "Social support", + "Deprivation", + "Religion", + "Occupation", + "Finances", + "Family circumstance", + "Others" + ], + "title": "SocioeconomicSubTypes", + "type": "string" + }, + "SourceV2": { + "enum": [ + "EPR", + "Electronic survey", + "LIMS", + "Paper-based", + "Free text NLP", + "Machine generated", + "Other" + ], + "title": "SourceV2", + "type": "string" + }, + "StandardisedDataModelsEnum": { + "enum": [ + "HL7 FHIR", + "HL7 V2", + "HL7 CDA", + "HL7 CCOW", + "LOINC", + "DICOM", + "I2B2", + "IHE", + "OMOP", + "OPENEHR", + "SENTINEL", + "PCORNET", + "CDISC", + "NHS DATA DICTIONARY", + "NHS SCOTLAND DATA DICTIONARY", + "NHS WALES DATA DICTIONARY", + "LOCAL", + "OTHER" + ], + "title": "StandardisedDataModelsEnum", + "type": "string" + }, + "StatisticalPopulationConstrainedV2": { + "enum": [ + "Persons", + "Events", + "Findings", + "Number of scans per modality" + ], + "title": "StatisticalPopulationConstrainedV2", + "type": "string" + }, + "StructuralMetadata": { + "additionalProperties": false, + "properties": { + "tables": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataTable" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Tables in the dataset", + "title": "Tables" + }, + "syntheticDataWebLink": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Url" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.\\n- **Example**: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/", + "title": "Synthetic data web links" + } + }, + "title": "StructuralMetadata", + "type": "object" + }, + "Summary": { + "additionalProperties": false, + "properties": { + "title": { + "$ref": "#/$defs/OneHundredFiftyCharacters", + "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. 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", + "Scottish Morbidity Record (SMR)" + ], + "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", + "title": "Title" + }, + "funders": { + "$ref": "#/$defs/LineSeparatedValues", + "description": "List of Funders separated by a line break", + "examples": [ + "CRUK", + "University of Sussex" + ], + "guidance": "Put each funder on a new line", + "title": "Funded by" + }, + "abstract": { + "$ref": "#/$defs/AbstractText", + "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." + ], + "guidance": "- The abstract should provide a **clear and brief descriptive** signpost for researchers who are searching for data that may be relevant to their research.\\n- The abstract should allow the reader to determine the **scope of the data collection and accurately summarise its content**.\\n- Effective abstracts should **avoid long sentences and abbreviations** where possible.\\n- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.\\n- **Abstracts should be different from the full description** for a dataset.\\n- **Example**: 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.", + "title": "Dataset abstract" + }, + "dataCustodian": { + "$ref": "#/$defs/Organisation", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", + "title": "Dataset Custodian" + }, + "populationSize": { + "description": "Input the number of people captured within the dataset.", + "examples": [ + 1000 + ], + "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section.", + "title": "Dataset population size", + "type": "integer" + }, + "keywords": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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": [ + "Outpatient Care", + "Socioeconomic Deprivation", + "Infant Morbidity", + "Learning disability", + "Primary Care Prescription", + "Accident and Emergency Admissions" + ], + "guidance": "- Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.\\n- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.\\n- Text from the title is automatically included in the search, there is no need to include this in the keywords.\\n- Include words that researcher may include in their searches.", + "title": "Keywords" + }, + "doiName": { + "anyOf": [ + { + "$ref": "#/$defs/Doi" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOI associated to this dataset. Find out more about DOIs here: [https://www.doi.org/the-identifier/what-is-a-doi/](https://www.doi.org/the-identifier/what-is-a-doi/)", + "examples": [ + "10.1093/ije/dyx196" + ], + "guidance": "- Please note: This is **not** the DOI of the publication(s) associated with the dataset.\\n- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.\\n- If a DOI is available, please provide the DOI.\\n- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", + "title": "Digital Object Identifier (DOI) for dataset" + }, + "contactPoint": { + "$ref": "#/$defs/EmailAddress", + "description": "Please provide a valid email address that can be used to coordinate data access requests.", + "examples": [ + "gateway@hdruk.ac.uk" + ], + "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.\\n**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**.", + "title": "Contact point" + }, + "datasetAliases": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/$defs/ShortDescription" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dataset & BioSample alias or alternate names.", + "guidance": "Alternate name, acronym or other identifier for the Dataset and/or BioSamples.", + "title": "Dataset & BioSample alias" + } + }, + "required": [ + "title", + "funders", + "abstract", + "dataCustodian", + "populationSize", + "contactPoint" + ], + "title": "Summary", + "type": "object" + }, + "Temporal": { + "additionalProperties": false, + "properties": { + "publishingFrequency": { + "$ref": "#/$defs/PeriodicityV2", + "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": [ + "Continuous" + ], + "guidance": "Please indicate the frequency of publishing.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/.\\n\\n Options:\\n- **Static**: Dataset published once.\\n- **Irregular**: Dataset published at uneven intervals.\\n- **Continuous**: Dataset published without interruption.\\n- **Biennial**: Dataset published every two years.\\n- **Annual**: Dataset published occurs once a year.\\n- **Biannual**: Dataset published twice a year.\\n- **Quarterly**: Dataset published every three months.\\n- **Bimonthly**: Dataset published every two months.\\n- **Monthly**: Dataset published once a month.\\n- **Biweekly**: Dataset published every two weeks.\\n- **Weekly**: Dataset published once a week.\\n- **Twice weekly**: Dataset published twice a week.\\n- **Daily**: Dataset published once a day.\\n- **Other**: Dataset published using other interval.", + "title": "Publishing frequency" + }, + "distributionReleaseDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "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": [ + "2024-10-24T00:00:00.000Z" + ], + "guidance": "- Please indicate the frequency the dataset is published.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see [https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/)", + "title": "Distribution release date" + }, + "startDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ], + "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": [ + "2024-10-24T00:00:00.000Z" + ], + "guidance": "- The start of the time period that the dataset provides coverage for.\\n- 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.", + "title": "Start date" + }, + "endDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "$ref": "#/$defs/EndDateEnum" + }, + { + "type": "null" + } + ], + "default": null, + "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": [ + "2024-10-24T00:00:00.000Z" + ], + "guidance": "- The end of the time period that the dataset provides coverage for.\\n- If the dataset is **\u201cContinuous\u201d** and has no known end date, **please leave blank**.\\n- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**.", + "title": "End date" + }, + "timeLag": { + "$ref": "#/$defs/TimeLagV2", + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.", + "examples": [ + "Not applicable" + ], + "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.\\n- **Less than 1 week**: Typical time lag of less than a week.\\n- **1-2 weeks**: Typical time-lag of one to two weeks.\\n- **2-4 weeks**: Typical time-lag of two to four weeks.\\n- **1-2 months**: Typical time-lag of one to two months.\\n- **2-6 months**: Typical time-lag of two to six months.\\n- **6 months plus**: Typical time-lag of more than six months.\\n- **Variable**: Variable time-lag.\\n- **Not applicable**: Not Applicable i.e. static dataset.\\n- **Other**: Other time-lag.", + "title": "Time lag" + } + }, + "required": [ + "publishingFrequency", + "startDate", + "timeLag" + ], + "title": "Temporal", + "type": "object" + }, + "Ternary": { + "enum": [ + "Yes", + "No", + "Not stated" + ], + "title": "Ternary", + "type": "string" + }, + "TimeLagV2": { + "enum": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ], + "title": "TimeLagV2", + "type": "string" + }, + "TreatmentsInterventions": { + "properties": { + "name": { + "Literal": true, + "default": "Treatments/Interventions", + "title": "Name", + "type": "string" + }, + "subTypes": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/TreatmentsInterventionsSubTypes" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "title": "Subtypes" + } + }, + "required": [ + "subTypes" + ], + "title": "TreatmentsInterventions", + "type": "object" + }, + "TreatmentsInterventionsSubTypes": { + "enum": [ + "Vaccines", + "Preventive", + "Therapeutic", + "Others" + ], + "title": "TreatmentsInterventionsSubTypes", + "type": "string" + }, + "Url": { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + }, + "Usage": { + "additionalProperties": false, + "properties": { + "dataUseLimitation": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataUseLimitationV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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 Data Use Ontology to include a value for NO LINKAGE.", + "guidance": "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.\\n- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.\\n- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).\\n- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.\\n- **No restriction**: This data use limitation indicates there is no restriction on use.\\n- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.\\n- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).\\n- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets", + "title": "Data use limitation" + }, + "dataUseRequirements": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataUseRequirementsV2" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "guidance": "- Please indicate if there are any additional conditions set for use if any, multiple requirements may be provided.\\n- Please ensure that these restrictions are documented in access rights information.\\n- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).\\n- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.\\n- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.\\n- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.\\n- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.\\n- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.\\n- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.\\n- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.\\n- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.\\n- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.\\n- **User-specific restriction**: This requirement indicates that use is limited to use by approved users.", + "title": "Data use requirements" + }, + "resourceCreator": { + "anyOf": [ + { + "$ref": "#/$defs/ShortDescription" + }, + { + "items": { + "anyOf": [ + { + "$ref": "#/$defs/ShortDescription" + }, + { + "type": "null" + } + ] + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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": [ + "National Services Scotland" + ], + "guidance": "- Please provide the text that you would like included as part of any citation that credits this dataset.\\n- This is typically just the name of the publisher. No employee details should be provided.\\n- To add multiple entries, please click on **'+' symbol** to enter each separate website.\\n- **Example**: National Services Scotland", + "title": "Citation requirements" + } + }, + "title": "Usage", + "type": "object" + }, + "Uuidv4": { + "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" + } + }, + "additionalProperties": false, + "properties": { + "identifier": { + "anyOf": [ + { + "$ref": "#/$defs/Uuidv4" + }, + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "description": "System dataset identifier.", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "guidance": "N/A", + "title": "Dataset identifier" + }, + "version": { + "$ref": "#/$defs/Semver", + "description": "Dataset metadata version.", + "examples": [ + "1.1.0" + ], + "guidance": "Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.\\nMajor: Significant/breaking changes.\\nMinor: New features and bug fixes.\\nPatch: Minor fixes without new features.", + "title": "Dataset Version" + }, + "revisions": { + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "items": { + "$ref": "#/$defs/Revision" + }, + "title": "Metadata Version Revisions", + "type": "array" + }, + "issued": { + "description": "Datetime stamp of when this metadata version was initially issued", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "format": "date-time", + "title": "Metadata Issued Datetime", + "type": "string" + }, + "modified": { + "description": "Datetime stamp of when this metadata was last modified", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "format": "date-time", + "title": "Last Modified Datetime", + "type": "string" + }, + "summary": { + "$ref": "#/$defs/Summary", + "description": "Summary of metadata describing key pieces of information." + }, + "documentation": { + "anyOf": [ + { + "$ref": "#/$defs/Documentation" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Documentation" + }, + "coverage": { + "anyOf": [ + { + "$ref": "#/$defs/Coverage" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Coverage" + }, + "provenance": { + "anyOf": [ + { + "$ref": "#/$defs/Provenance" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "title": "Provenance" + }, + "accessibility": { + "$ref": "#/$defs/Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets." + }, + "enrichmentAndLinkage": { + "anyOf": [ + { + "$ref": "#/$defs/EnrichmentAndLinkage" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Enrichment and Linkage" + }, + "observations": { + "description": "This section provides an overview of observations of your dataset linked to specific points in time. Multiple observations about the dataset are encouraged to be provided, including multiple observations of the same property at different timepoints. At least one observation is required.", + "items": { + "$ref": "#/$defs/Observation" + }, + "title": "Observations", + "type": "array" + }, + "structuralMetadata": { + "anyOf": [ + { + "$ref": "#/$defs/StructuralMetadata" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Descriptions of all tables and data elements that can be included in the dataset.", + "title": "Structural metadata" + }, + "demographicFrequency": { + "anyOf": [ + { + "$ref": "#/$defs/DemographicFrequency" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The statistical characteristics of a population or group within the dataset.", + "title": "Demographic frequency" + }, + "omics": { + "anyOf": [ + { + "$ref": "#/$defs/Omics" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Omics", + "title": "Omics" + }, + "project": { + "$ref": "#/$defs/Project", + "default": null + }, + "datasetFilters": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetFilters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Categorization tags regarding cancer type, data type, and access." + }, + "erd": { + "anyOf": [ + { + "$ref": "#/$defs/Image" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "title": "Entity Relationship Diagram" + } + }, + "required": [ + "identifier", + "version", + "revisions", + "issued", + "modified", + "summary", + "accessibility", + "observations" + ], + "title": "Cruk100", + "type": "object" +} \ No newline at end of file diff --git a/hdr_schemata/models/CRUK/__init__.py b/hdr_schemata/models/CRUK/__init__.py new file mode 100644 index 00000000..2e2b88d4 --- /dev/null +++ b/hdr_schemata/models/CRUK/__init__.py @@ -0,0 +1 @@ +from .v1_0_0 import Cruk100 diff --git a/hdr_schemata/models/CRUK/create_json_schema.py b/hdr_schemata/models/CRUK/create_json_schema.py new file mode 100644 index 00000000..4d2de43e --- /dev/null +++ b/hdr_schemata/models/CRUK/create_json_schema.py @@ -0,0 +1,3 @@ +from v1_0_0 import Cruk100 + +Cruk100.save_schema("1.0.0/schema.json") diff --git a/hdr_schemata/models/CRUK/v1_0_0/DataTable.py b/hdr_schemata/models/CRUK/v1_0_0/DataTable.py new file mode 100644 index 00000000..b7eed118 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/DataTable.py @@ -0,0 +1,39 @@ +from __future__ import annotations + +from typing import Optional, List + +from pydantic import BaseModel, Field, constr + +from hdr_schemata.definitions.HDRUK import * +from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations + +from hdr_schemata.models.HDRUK.v3_0_0.DataColumn import DataColumn + +an = annotations.structuralMetadata.tables + + +class DataTable(BaseModel): + class Config: + extra = "forbid" + + name: Optional[constr(min_length=1, max_length=500)] = Field( + None, **an.name.__dict__ + ) + description: Optional[constr(min_length=1, max_length=20000)] = Field( + None, **an.description.__dict__ + ) + size: Optional[int] = Field( + None, + title="Table size", + description="Number of Complete Entries.", + json_schema_extra={ + "guidance": ( + "Provides a measure of the completeness of the data set. A row which includes " + "n/a against columns that are not relevant or not applicable should still be " + "counted as complete." + ) + }, + ) + columns: List[DataColumn] = Field( + ..., title=an.columns._title, description=an.columns._description + ) diff --git a/hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py b/hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py new file mode 100644 index 00000000..c2190594 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py @@ -0,0 +1,22 @@ +from __future__ import annotations + +from pydantic import ConfigDict, RootModel, constr + + +class DatasetFilters( + RootModel[ + list[ + constr( + pattern=( + r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*' + r'"category":\s*".{0,150}",\s*"primaryGroup":\s*' + r'"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' + ) + ) + ] + ] +): + model_config = ConfigDict( + title="Dataset Filters", + json_schema_extra={"description": "A list of categorization tags (ids) for the dataset."}, + ) diff --git a/hdr_schemata/models/CRUK/v1_0_0/Image.py b/hdr_schemata/models/CRUK/v1_0_0/Image.py new file mode 100644 index 00000000..1c704d97 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/Image.py @@ -0,0 +1,24 @@ +from __future__ import annotations + +from typing import Optional + +from pydantic import BaseModel, Field + +from hdr_schemata.definitions.HDRUK import Description + + +class Image(BaseModel): + class Config: + extra = "forbid" + + image: Optional[str] = Field( + None, + title="Image", + description="An image file.", + json_schema_extra={ + "contentMediaType": "image/*", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + }, + ) + + description: Optional[Description] = None diff --git a/hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py b/hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py new file mode 100644 index 00000000..384f5bb6 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py @@ -0,0 +1,9 @@ +from __future__ import annotations + +from typing import Optional + +from pydantic import ConfigDict, RootModel, constr + + +class LineSeparatedValues(RootModel[Optional[constr(pattern=r"([^\\r\\n]+)")]]): + model_config = ConfigDict(title="LineSeparatedValues") diff --git a/hdr_schemata/models/CRUK/v1_0_0/Project.py b/hdr_schemata/models/CRUK/v1_0_0/Project.py new file mode 100644 index 00000000..2a646ae8 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/Project.py @@ -0,0 +1,81 @@ +from __future__ import annotations + +from datetime import date, datetime +from typing import Optional, Union + +from pydantic import BaseModel, Field, constr + +from hdr_schemata.definitions.HDRUK import OneHundredFiftyCharacters + +from .LineSeparatedValues import LineSeparatedValues + + +class Project(BaseModel): + class Config: + extra = "forbid" + + projectName: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Project Title", + description="May or may not be different to the Dataset Title", + ) + + leadResearcher: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Lead Researcher", + description="", + examples=["Dr Smith"], + ) + + leadResearchInstitute: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Lead Research Institute", + description="", + examples=["Sussex University"], + ) + + grantNumbers: Optional[LineSeparatedValues] = Field( + None, + title="Grant number(s)", + description="List of grant numbers separated by a line break", + examples=["A354t", "ropguadg"], + json_schema_extra={"guidance": "Normally specified on the grant acceptance letter"}, + ) + + projectStartDate: Optional[Union[date, datetime]] = Field( + None, + title="Project Start Date", + description="Starting date of project grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset project starts. This is normally set out in the " + "grant contract and will be different from the start of any data collection" + ) + }, + ) + + projectEndDate: Optional[Union[date, datetime]] = Field( + None, + title="Project End Date", + description="Current end date of project grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset project is currently projected to finish. This is " + "normally set out in the grant contract and will be different from the end of " + "any data collection" + ) + }, + ) + + projectScope: Optional[constr(min_length=5, max_length=500)] = Field( + None, + title="Project Scope", + description="data and biospecimens expected to result from the grant.", + examples=["Longitudinal genomic data including somatic mutations"], + json_schema_extra={ + "guidance": ( + "Short paragraph setting out the types of data / biospecimens likely to result " + "from the grant and the cancers covered" + ) + }, + ) diff --git a/hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py b/hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py new file mode 100644 index 00000000..388a4f02 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py @@ -0,0 +1,27 @@ +from __future__ import annotations + +from typing import Optional, List + +from pydantic import BaseModel, Field + +from hdr_schemata.definitions.HDRUK import Url +from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations + +from .DataTable import DataTable + +an = annotations.structuralMetadata.tables + + +class StructuralMetadata(BaseModel): + class Config: + extra = "forbid" + + tables: Optional[List[DataTable]] = Field( + None, + description=an._description, + title=an._title, + ) + + syntheticDataWebLink: Optional[List[Url]] = Field( + None, **an.syntheticDataWebLink.__dict__ + ) diff --git a/hdr_schemata/models/CRUK/v1_0_0/Summary.py b/hdr_schemata/models/CRUK/v1_0_0/Summary.py new file mode 100644 index 00000000..0ac0b7c9 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/Summary.py @@ -0,0 +1,65 @@ +from __future__ import annotations + +from typing import Optional, Union, List + +from pydantic import BaseModel, Field + +from hdr_schemata.definitions.HDRUK import ( + AbstractText, + CommaSeparatedValues, + Doi, + EmailAddress, + OneHundredFiftyCharacters, + ShortDescription, +) +from hdr_schemata.models.HDRUK.v4_0_0.Organisation import Organisation +from hdr_schemata.models.HDRUK.v4_0_0.annotations import annotations + +from .LineSeparatedValues import LineSeparatedValues + +an = annotations.summary + + +class Summary(BaseModel): + class Config: + extra = "forbid" + + title: OneHundredFiftyCharacters = Field( + ..., **an.title.__dict__, json_schema_extra={"guidance": an.title.guidance} + ) + + funders: LineSeparatedValues = Field( + ..., + title="Funded by", + description="List of Funders separated by a line break", + examples=["CRUK", "University of Sussex"], + json_schema_extra={"guidance": "Put each funder on a new line"}, + ) + + abstract: AbstractText = Field( + ..., **an.abstract.__dict__, json_schema_extra={"guidance": an.abstract.guidance} + ) + + dataCustodian: Organisation = Field( + ..., title=an.dataCustodian.title, description=an.dataCustodian.description + ) + + populationSize: int = Field( + ..., **an.populationSize.__dict__, json_schema_extra={"guidance": an.populationSize.guidance} + ) + + keywords: Optional[List[OneHundredFiftyCharacters]] = Field( + None, **an.keywords.__dict__, json_schema_extra={"guidance": an.keywords.guidance} + ) + + doiName: Optional[Doi] = Field( + None, **an.doiName.__dict__, json_schema_extra={"guidance": an.doiName.guidance} + ) + + contactPoint: EmailAddress = Field( + ..., **an.contactPoint.__dict__, json_schema_extra={"guidance": an.contactPoint.guidance} + ) + + datasetAliases: Optional[ + Union[Optional[CommaSeparatedValues], List[Optional[ShortDescription]]] + ] = Field(None, **an.datasetAliases.__dict__) diff --git a/hdr_schemata/models/CRUK/v1_0_0/__init__.py b/hdr_schemata/models/CRUK/v1_0_0/__init__.py new file mode 100644 index 00000000..bb46048c --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/__init__.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +import json +from typing import Optional + +from pydantic import Field + +from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 +from hdr_schemata.models.HDRUK.v4_0_0.annotations import annotations as an +from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations as an_v3 + +from .DatasetFilters import DatasetFilters +from .Image import Image +from .Project import Project +from .Summary import Summary +from .StructuralMetadata import StructuralMetadata + + +class Cruk100(Hdruk400): + summary: Summary = Field( + ..., description=an.summary._description, title=an.summary._title + ) + + structuralMetadata: Optional[StructuralMetadata] = Field( + None, + description=an_v3.structuralMetadata.description, + title=an_v3.structuralMetadata.title, + ) + + project: Project = Field(None, title="Project") + + datasetFilters: Optional[DatasetFilters] = Field( + None, + description="Categorization tags regarding cancer type, data type, and access.", + ) + + erd: Optional[Image] = Field( + None, + title="Entity Relationship Diagram", + description="Visual representation of data table relationships.", + json_schema_extra={ + "guidance": ( + "Please upload an image file (max 5MB) showing the relationship between the different tables" + ) + }, + ) + + @classmethod + def save_schema(cls, location="./1.0.0/schema.json"): + with open(location, "w") as f: + json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/models/__init__.py b/hdr_schemata/models/__init__.py index 1bed0f59..7e72ad1d 100644 --- a/hdr_schemata/models/__init__.py +++ b/hdr_schemata/models/__init__.py @@ -10,9 +10,8 @@ def filter_fields_in_cls(cls,fields_to_keep): all_keys = list(cls.model_fields.keys()) for field in all_keys: if field in fields_to_keep: continue - cls.model_fields_set.deleter(field) - cls.model_computed_fields.deleter(field) - del cls.model_fields[field] + cls.model_computed_fields.pop(field, None) + cls.model_fields.pop(field, None) for field in fields_to_keep: if not field in cls.model_fields.keys(): @@ -26,12 +25,12 @@ def filter_fields_in_cls(cls,fields_to_keep): def remove_fields_from_cls(cls,fields): for field in fields: if not field in fields: continue - cls.model_fields_set.deleter(field) - cls.model_computed_fields.deleter(field) - del cls.model_fields[field] + cls.model_computed_fields.pop(field, None) + cls.model_fields.pop(field, None) #also force rebuild of model schema cls.__pydantic_complete__ = False - del cls.__pydantic_core_schema__ + if hasattr(cls, "__pydantic_core_schema__"): + del cls.__pydantic_core_schema__ cls.model_rebuild(force=True) From 7f1de64a234e78b63e79a2475ed71362d72ff9c5 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 11 Feb 2026 10:02:47 +0000 Subject: [PATCH 02/18] Update schema.json --- hdr_schemata/models/CRUK/1.0.0/schema.json | 379 ++++++++++++--------- 1 file changed, 226 insertions(+), 153 deletions(-) diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json index e9264698..3cc107e3 100644 --- a/hdr_schemata/models/CRUK/1.0.0/schema.json +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -17,7 +17,11 @@ "additionalProperties": false, "properties": { "accessRights": { - "$ref": "#/$defs/LongDescription", + "allOf": [ + { + "$ref": "#/$defs/LongDescription" + } + ], "description": "Please provide details for the data access rights.", "examples": [ "In Progress" @@ -174,7 +178,11 @@ "title": "Usage" }, "access": { - "$ref": "#/$defs/Access", + "allOf": [ + { + "$ref": "#/$defs/Access" + } + ], "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", "title": "Accessibility" }, @@ -201,7 +209,11 @@ "Age": { "properties": { "bin": { - "$ref": "#/$defs/AgeEnum", + "allOf": [ + { + "$ref": "#/$defs/AgeEnum" + } + ], "examples": [ "30-34 years" ], @@ -460,7 +472,11 @@ "DataColumn": { "properties": { "name": { - "$ref": "#/$defs/Name", + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], "description": "The name of a column in a table.", "title": "Column name" }, @@ -514,6 +530,16 @@ "title": "DataColumn", "type": "object" }, + "DatasetFilters": { + "type": "array", + "items": { + "type": "string", + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}" + + }, + "title": "Dataset Filters", + "description": "A list of categorization tags (ids) for the dataset." + }, "DataTable": { "additionalProperties": false, "properties": { @@ -616,7 +642,11 @@ "DataValue": { "properties": { "name": { - "$ref": "#/$defs/Name", + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], "description": "Unique value in a column.", "title": "Value name" }, @@ -697,15 +727,6 @@ "title": "DatasetDescriptor", "type": "object" }, - "DatasetFilters": { - "description": "A list of categorization tags (ids) for the dataset.", - "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", - "type": "string" - }, - "title": "Dataset Filters", - "type": "array" - }, "DeliveryLeadTimeV2": { "enum": [ "Less than 1 week", @@ -808,7 +829,11 @@ "title": "Disease code" }, "diseaseCodeVocabulary": { - "$ref": "#/$defs/DiseaseCodeEnum", + "allOf": [ + { + "$ref": "#/$defs/DiseaseCodeEnum" + } + ], "examples": [ "ICD10" ], @@ -843,7 +868,11 @@ "additionalProperties": false, "properties": { "description": { - "$ref": "#/$defs/Description", + "allOf": [ + { + "$ref": "#/$defs/Description" + } + ], "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", "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." @@ -1112,7 +1141,11 @@ "Ethnicity": { "properties": { "bin": { - "$ref": "#/$defs/EthnicityEnum", + "allOf": [ + { + "$ref": "#/$defs/EthnicityEnum" + } + ], "examples": [ "Black or Black British - Any other Black background" ], @@ -1293,37 +1326,36 @@ "title": "HealthAndDiseaseSubTypes", "type": "string" }, + "Icons": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", + "title": "Icons" +}, "Image": { "additionalProperties": false, "properties": { "image": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "contentMediaType": "image/*", - "default": null, "description": "An image file.", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - "title": "Image" + "title": "Image", + "type": "string", + "contentMediaType": "image/*", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB." }, "description": { - "anyOf": [ - { - "$ref": "#/$defs/Description" - }, - { - "type": "null" - } - ], - "default": null + "$ref": "#/$defs/Description" } }, - "title": "Image", + "title": "Diagram", "type": "object" }, "ImagingAreaOfTheBody": { @@ -1676,7 +1708,7 @@ "LineSeparatedValues": { "anyOf": [ { - "pattern": "([^\\\\r\\\\n]+)", + "pattern": "([^\\r\\n]+)", "type": "string" }, { @@ -1782,22 +1814,24 @@ "title": "Name" }, "NotApplicableSubTypes": { - "enum": [ - "Not applicable" - ], - "title": "NotApplicableSubTypes", - "type": "string" + "const": "Not applicable", + "title": "NotApplicableSubTypes" }, "Observation": { "additionalProperties": false, "properties": { - "observedNode": { - "$ref": "#/$defs/StatisticalPopulationConstrainedV2", - "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", + "observedNode": + { + "allOf": [ + { + "$ref": "#/$defs/AbstractText" + } + ], + "description": "Brief description of what is being measured.", "examples": [ "Persons" ], - "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "guidance": "Limit to between 5 and 500 characters", "title": "Dataset volume measure" }, "measuredValue": { @@ -1842,7 +1876,11 @@ "title": "Observation date" }, "measuredProperty": { - "$ref": "#/$defs/MeasuredProperty", + "allOf": [ + { + "$ref": "#/$defs/MeasuredProperty" + } + ], "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", "examples": [ "Count" @@ -1966,7 +2004,11 @@ "title": "identifier" }, "name": { - "$ref": "#/$defs/OneHundredFiftyCharacters", + "allOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + } + ], "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", "examples": [ "Health Data Research UK" @@ -2237,105 +2279,75 @@ "type": "object" }, "Project": { - "additionalProperties": false, - "properties": { + "properties" : { "projectName": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, - { - "type": "null" } ], - "default": null, - "description": "May or may not be different to the Dataset Title", - "title": "Project Title" + "title": "Project Title", + "description": "May or may not be different to the Dataset Title" }, "leadResearcher": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, - { - "type": "null" } ], - "default": null, - "description": "", "examples": [ "Dr Smith" ], - "title": "Lead Researcher" + "title": "Lead Researcher", + "description": "" + }, "leadResearchInstitute": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, - { - "type": "null" } ], - "default": null, - "description": "", "examples": [ "Sussex University" ], - "title": "Lead Research Institute" + "title": "Lead Research Institute", + "description": "" + }, "grantNumbers": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/LineSeparatedValues" - }, - { - "type": "null" } ], - "default": null, "description": "List of grant numbers separated by a line break", + "examples": [ "A354t", "ropguadg" ], "guidance": "Normally specified on the grant acceptance letter", + "title": "Grant number(s)" }, + "projectStartDate": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, + "allOf": [ { - "type": "null" + "$ref": "#/$defs/StartDate" } ], - "default": null, "description": "Starting date of project grant.", "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", "title": "Project Start Date" }, "projectEndDate": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, + "allOf": [ { - "type": "null" + "$ref": "#/$defs/EndDate" } ], - "default": null, "description": "Current end date of project grant.", "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", "title": "Project End Date" @@ -2349,19 +2361,14 @@ }, { "type": "null" - } - ], - "default": null, + }], "description": "data and biospecimens expected to result from the grant.", - "examples": [ - "Longitudinal genomic data including somatic mutations" - ], "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "examples": ["Longitudinal genomic data including somatic mutations"], "title": "Project Scope" + } - }, - "title": "Project", - "type": "object" + } }, "Provenance": { "additionalProperties": false, @@ -2380,7 +2387,11 @@ "title": "Origin Coverage" }, "temporal": { - "$ref": "#/$defs/Temporal", + "allOf": [ + { + "$ref": "#/$defs/Temporal" + } + ], "description": "Dates and other temporal coverage information.", "title": "Temporal Coverage" } @@ -2450,7 +2461,11 @@ "additionalProperties": false, "properties": { "version": { - "$ref": "#/$defs/Semver", + "allOf": [ + { + "$ref": "#/$defs/Semver" + } + ], "description": "Version number used for previous version of this dataset", "examples": [ "6.0.0" @@ -2668,7 +2683,11 @@ "additionalProperties": false, "properties": { "title": { - "$ref": "#/$defs/OneHundredFiftyCharacters", + "allOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + } + ], "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. 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", @@ -2678,17 +2697,27 @@ "title": "Title" }, "funders": { - "$ref": "#/$defs/LineSeparatedValues", + "allOf": [ + { + "$ref": "#/$defs/LineSeparatedValues" + } + ], "description": "List of Funders separated by a line break", "examples": [ "CRUK", "University of Sussex" ], "guidance": "Put each funder on a new line", + "title": "Funded by" }, + "abstract": { - "$ref": "#/$defs/AbstractText", + "allOf": [ + { + "$ref": "#/$defs/AbstractText" + } + ], "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." @@ -2697,7 +2726,11 @@ "title": "Dataset abstract" }, "dataCustodian": { - "$ref": "#/$defs/Organisation", + "allOf": [ + { + "$ref": "#/$defs/Organisation" + } + ], "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", "title": "Dataset Custodian" }, @@ -2753,7 +2786,11 @@ "title": "Digital Object Identifier (DOI) for dataset" }, "contactPoint": { - "$ref": "#/$defs/EmailAddress", + "allOf": [ + { + "$ref": "#/$defs/EmailAddress" + } + ], "description": "Please provide a valid email address that can be used to coordinate data access requests.", "examples": [ "gateway@hdruk.ac.uk" @@ -2791,9 +2828,9 @@ }, "required": [ "title", - "funders", "abstract", "dataCustodian", + "funders", "populationSize", "contactPoint" ], @@ -2804,7 +2841,11 @@ "additionalProperties": false, "properties": { "publishingFrequency": { - "$ref": "#/$defs/PeriodicityV2", + "allOf": [ + { + "$ref": "#/$defs/PeriodicityV2" + } + ], "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": [ "Continuous" @@ -2878,7 +2919,11 @@ "title": "End date" }, "timeLag": { - "$ref": "#/$defs/TimeLagV2", + "allOf": [ + { + "$ref": "#/$defs/TimeLagV2" + } + ], "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.", "examples": [ "Not applicable" @@ -3052,6 +3097,15 @@ }, "additionalProperties": false, "properties": { + "icons": { + "allOf": [ + { + "$ref": "#/$defs/Icons" + } + ], + "description": "Calculated categorization icons added during export.", + "title": "Icons" + }, "identifier": { "anyOf": [ { @@ -3073,7 +3127,11 @@ "title": "Dataset identifier" }, "version": { - "$ref": "#/$defs/Semver", + "allOf": [ + { + "$ref": "#/$defs/Semver" + } + ], "description": "Dataset metadata version.", "examples": [ "1.1.0" @@ -3107,10 +3165,23 @@ "title": "Last Modified Datetime", "type": "string" }, + "project": { + "allOf": [ + { + "$ref": "#/$defs/Project" + } + ] + + }, "summary": { - "$ref": "#/$defs/Summary", + "allOf": [ + { + "$ref": "#/$defs/Summary" + } + ], "description": "Summary of metadata describing key pieces of information." }, + "documentation": { "anyOf": [ { @@ -3124,6 +3195,18 @@ "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.", "title": "Documentation" }, + "datasetFilters": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetFilters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Categorization tags regarding cancer type, data type, and access." + }, "coverage": { "anyOf": [ { @@ -3151,7 +3234,11 @@ "title": "Provenance" }, "accessibility": { - "$ref": "#/$defs/Accessibility", + "allOf": [ + { + "$ref": "#/$defs/Accessibility" + } + ], "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets." }, "enrichmentAndLinkage": { @@ -3188,62 +3275,48 @@ "description": "Descriptions of all tables and data elements that can be included in the dataset.", "title": "Structural metadata" }, - "demographicFrequency": { - "anyOf": [ - { - "$ref": "#/$defs/DemographicFrequency" - }, - { - "type": "null" - } - ], - "default": null, - "description": "The statistical characteristics of a population or group within the dataset.", - "title": "Demographic frequency" - }, - "omics": { + "erd": { "anyOf": [ { - "$ref": "#/$defs/Omics" + "$ref": "#/$defs/Image" }, { "type": "null" } ], "default": null, - "description": "Omics", - "title": "Omics" - }, - "project": { - "$ref": "#/$defs/Project", - "default": null + "description": "Visual representation of data table relationships.", + "title": "Entity Relationship Diagram", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables" + }, - "datasetFilters": { + "demographicFrequency": { "anyOf": [ { - "$ref": "#/$defs/DatasetFilters" + "$ref": "#/$defs/DemographicFrequency" }, { "type": "null" } ], "default": null, - "description": "Categorization tags regarding cancer type, data type, and access." + "description": "The statistical characteristics of a population or group within the dataset.", + "title": "Demographic frequency" }, - "erd": { + "omics": { "anyOf": [ { - "$ref": "#/$defs/Image" + "$ref": "#/$defs/Omics" }, { "type": "null" } ], "default": null, - "description": "Visual representation of data table relationships.", - "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", - "title": "Entity Relationship Diagram" + "description": "Omics", + "title": "Omics" } + }, "required": [ "identifier", @@ -3255,6 +3328,6 @@ "accessibility", "observations" ], - "title": "Cruk100", + "title": "Hdruk400", "type": "object" } \ No newline at end of file From 2bb621a16cfa23131bfdf0a6184a57550d219e9c Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 11 Feb 2026 13:44:37 +0000 Subject: [PATCH 03/18] chore(CRUK): regenerate schema.json Regenerate CRUK 1.0.0 schema from the per-section model output. --- hdr_schemata/models/CRUK/1.0.0/schema.json | 379 +++++++++------------ 1 file changed, 153 insertions(+), 226 deletions(-) diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json index 3cc107e3..e9264698 100644 --- a/hdr_schemata/models/CRUK/1.0.0/schema.json +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -17,11 +17,7 @@ "additionalProperties": false, "properties": { "accessRights": { - "allOf": [ - { - "$ref": "#/$defs/LongDescription" - } - ], + "$ref": "#/$defs/LongDescription", "description": "Please provide details for the data access rights.", "examples": [ "In Progress" @@ -178,11 +174,7 @@ "title": "Usage" }, "access": { - "allOf": [ - { - "$ref": "#/$defs/Access" - } - ], + "$ref": "#/$defs/Access", "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", "title": "Accessibility" }, @@ -209,11 +201,7 @@ "Age": { "properties": { "bin": { - "allOf": [ - { - "$ref": "#/$defs/AgeEnum" - } - ], + "$ref": "#/$defs/AgeEnum", "examples": [ "30-34 years" ], @@ -472,11 +460,7 @@ "DataColumn": { "properties": { "name": { - "allOf": [ - { - "$ref": "#/$defs/Name" - } - ], + "$ref": "#/$defs/Name", "description": "The name of a column in a table.", "title": "Column name" }, @@ -530,16 +514,6 @@ "title": "DataColumn", "type": "object" }, - "DatasetFilters": { - "type": "array", - "items": { - "type": "string", - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}" - - }, - "title": "Dataset Filters", - "description": "A list of categorization tags (ids) for the dataset." - }, "DataTable": { "additionalProperties": false, "properties": { @@ -642,11 +616,7 @@ "DataValue": { "properties": { "name": { - "allOf": [ - { - "$ref": "#/$defs/Name" - } - ], + "$ref": "#/$defs/Name", "description": "Unique value in a column.", "title": "Value name" }, @@ -727,6 +697,15 @@ "title": "DatasetDescriptor", "type": "object" }, + "DatasetFilters": { + "description": "A list of categorization tags (ids) for the dataset.", + "items": { + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "type": "string" + }, + "title": "Dataset Filters", + "type": "array" + }, "DeliveryLeadTimeV2": { "enum": [ "Less than 1 week", @@ -829,11 +808,7 @@ "title": "Disease code" }, "diseaseCodeVocabulary": { - "allOf": [ - { - "$ref": "#/$defs/DiseaseCodeEnum" - } - ], + "$ref": "#/$defs/DiseaseCodeEnum", "examples": [ "ICD10" ], @@ -868,11 +843,7 @@ "additionalProperties": false, "properties": { "description": { - "allOf": [ - { - "$ref": "#/$defs/Description" - } - ], + "$ref": "#/$defs/Description", "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", "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." @@ -1141,11 +1112,7 @@ "Ethnicity": { "properties": { "bin": { - "allOf": [ - { - "$ref": "#/$defs/EthnicityEnum" - } - ], + "$ref": "#/$defs/EthnicityEnum", "examples": [ "Black or Black British - Any other Black background" ], @@ -1326,36 +1293,37 @@ "title": "HealthAndDiseaseSubTypes", "type": "string" }, - "Icons": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", - "title": "Icons" -}, "Image": { "additionalProperties": false, "properties": { "image": { - "description": "An image file.", - "title": "Image", - "type": "string", + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], "contentMediaType": "image/*", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB." + "default": null, + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "title": "Image" }, "description": { - "$ref": "#/$defs/Description" + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null } }, - "title": "Diagram", + "title": "Image", "type": "object" }, "ImagingAreaOfTheBody": { @@ -1708,7 +1676,7 @@ "LineSeparatedValues": { "anyOf": [ { - "pattern": "([^\\r\\n]+)", + "pattern": "([^\\\\r\\\\n]+)", "type": "string" }, { @@ -1814,24 +1782,22 @@ "title": "Name" }, "NotApplicableSubTypes": { - "const": "Not applicable", - "title": "NotApplicableSubTypes" + "enum": [ + "Not applicable" + ], + "title": "NotApplicableSubTypes", + "type": "string" }, "Observation": { "additionalProperties": false, "properties": { - "observedNode": - { - "allOf": [ - { - "$ref": "#/$defs/AbstractText" - } - ], - "description": "Brief description of what is being measured.", + "observedNode": { + "$ref": "#/$defs/StatisticalPopulationConstrainedV2", + "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", "examples": [ "Persons" ], - "guidance": "Limit to between 5 and 500 characters", + "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", "title": "Dataset volume measure" }, "measuredValue": { @@ -1876,11 +1842,7 @@ "title": "Observation date" }, "measuredProperty": { - "allOf": [ - { - "$ref": "#/$defs/MeasuredProperty" - } - ], + "$ref": "#/$defs/MeasuredProperty", "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", "examples": [ "Count" @@ -2004,11 +1966,7 @@ "title": "identifier" }, "name": { - "allOf": [ - { - "$ref": "#/$defs/OneHundredFiftyCharacters" - } - ], + "$ref": "#/$defs/OneHundredFiftyCharacters", "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", "examples": [ "Health Data Research UK" @@ -2279,75 +2237,105 @@ "type": "object" }, "Project": { - "properties" : { + "additionalProperties": false, + "properties": { "projectName": { - "allOf": [ + "anyOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" } ], - "title": "Project Title", - "description": "May or may not be different to the Dataset Title" + "default": null, + "description": "May or may not be different to the Dataset Title", + "title": "Project Title" }, "leadResearcher": { - "allOf": [ + "anyOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" } ], + "default": null, + "description": "", "examples": [ "Dr Smith" ], - "title": "Lead Researcher", - "description": "" - + "title": "Lead Researcher" }, "leadResearchInstitute": { - "allOf": [ + "anyOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" } ], + "default": null, + "description": "", "examples": [ "Sussex University" ], - "title": "Lead Research Institute", - "description": "" - + "title": "Lead Research Institute" }, "grantNumbers": { - "allOf": [ + "anyOf": [ { "$ref": "#/$defs/LineSeparatedValues" + }, + { + "type": "null" } ], + "default": null, "description": "List of grant numbers separated by a line break", - "examples": [ "A354t", "ropguadg" ], "guidance": "Normally specified on the grant acceptance letter", - "title": "Grant number(s)" }, - "projectStartDate": { - "allOf": [ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, { - "$ref": "#/$defs/StartDate" + "type": "null" } ], + "default": null, "description": "Starting date of project grant.", "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", "title": "Project Start Date" }, "projectEndDate": { - "allOf": [ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, { - "$ref": "#/$defs/EndDate" + "type": "null" } ], + "default": null, "description": "Current end date of project grant.", "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", "title": "Project End Date" @@ -2361,14 +2349,19 @@ }, { "type": "null" - }], + } + ], + "default": null, "description": "data and biospecimens expected to result from the grant.", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", - "examples": ["Longitudinal genomic data including somatic mutations"], "title": "Project Scope" - } - } + }, + "title": "Project", + "type": "object" }, "Provenance": { "additionalProperties": false, @@ -2387,11 +2380,7 @@ "title": "Origin Coverage" }, "temporal": { - "allOf": [ - { - "$ref": "#/$defs/Temporal" - } - ], + "$ref": "#/$defs/Temporal", "description": "Dates and other temporal coverage information.", "title": "Temporal Coverage" } @@ -2461,11 +2450,7 @@ "additionalProperties": false, "properties": { "version": { - "allOf": [ - { - "$ref": "#/$defs/Semver" - } - ], + "$ref": "#/$defs/Semver", "description": "Version number used for previous version of this dataset", "examples": [ "6.0.0" @@ -2683,11 +2668,7 @@ "additionalProperties": false, "properties": { "title": { - "allOf": [ - { - "$ref": "#/$defs/OneHundredFiftyCharacters" - } - ], + "$ref": "#/$defs/OneHundredFiftyCharacters", "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. 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", @@ -2697,27 +2678,17 @@ "title": "Title" }, "funders": { - "allOf": [ - { - "$ref": "#/$defs/LineSeparatedValues" - } - ], + "$ref": "#/$defs/LineSeparatedValues", "description": "List of Funders separated by a line break", "examples": [ "CRUK", "University of Sussex" ], "guidance": "Put each funder on a new line", - "title": "Funded by" }, - "abstract": { - "allOf": [ - { - "$ref": "#/$defs/AbstractText" - } - ], + "$ref": "#/$defs/AbstractText", "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." @@ -2726,11 +2697,7 @@ "title": "Dataset abstract" }, "dataCustodian": { - "allOf": [ - { - "$ref": "#/$defs/Organisation" - } - ], + "$ref": "#/$defs/Organisation", "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", "title": "Dataset Custodian" }, @@ -2786,11 +2753,7 @@ "title": "Digital Object Identifier (DOI) for dataset" }, "contactPoint": { - "allOf": [ - { - "$ref": "#/$defs/EmailAddress" - } - ], + "$ref": "#/$defs/EmailAddress", "description": "Please provide a valid email address that can be used to coordinate data access requests.", "examples": [ "gateway@hdruk.ac.uk" @@ -2828,9 +2791,9 @@ }, "required": [ "title", + "funders", "abstract", "dataCustodian", - "funders", "populationSize", "contactPoint" ], @@ -2841,11 +2804,7 @@ "additionalProperties": false, "properties": { "publishingFrequency": { - "allOf": [ - { - "$ref": "#/$defs/PeriodicityV2" - } - ], + "$ref": "#/$defs/PeriodicityV2", "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": [ "Continuous" @@ -2919,11 +2878,7 @@ "title": "End date" }, "timeLag": { - "allOf": [ - { - "$ref": "#/$defs/TimeLagV2" - } - ], + "$ref": "#/$defs/TimeLagV2", "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.", "examples": [ "Not applicable" @@ -3097,15 +3052,6 @@ }, "additionalProperties": false, "properties": { - "icons": { - "allOf": [ - { - "$ref": "#/$defs/Icons" - } - ], - "description": "Calculated categorization icons added during export.", - "title": "Icons" - }, "identifier": { "anyOf": [ { @@ -3127,11 +3073,7 @@ "title": "Dataset identifier" }, "version": { - "allOf": [ - { - "$ref": "#/$defs/Semver" - } - ], + "$ref": "#/$defs/Semver", "description": "Dataset metadata version.", "examples": [ "1.1.0" @@ -3165,23 +3107,10 @@ "title": "Last Modified Datetime", "type": "string" }, - "project": { - "allOf": [ - { - "$ref": "#/$defs/Project" - } - ] - - }, "summary": { - "allOf": [ - { - "$ref": "#/$defs/Summary" - } - ], + "$ref": "#/$defs/Summary", "description": "Summary of metadata describing key pieces of information." }, - "documentation": { "anyOf": [ { @@ -3195,18 +3124,6 @@ "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.", "title": "Documentation" }, - "datasetFilters": { - "anyOf": [ - { - "$ref": "#/$defs/DatasetFilters" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Categorization tags regarding cancer type, data type, and access." - }, "coverage": { "anyOf": [ { @@ -3234,11 +3151,7 @@ "title": "Provenance" }, "accessibility": { - "allOf": [ - { - "$ref": "#/$defs/Accessibility" - } - ], + "$ref": "#/$defs/Accessibility", "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets." }, "enrichmentAndLinkage": { @@ -3275,48 +3188,62 @@ "description": "Descriptions of all tables and data elements that can be included in the dataset.", "title": "Structural metadata" }, - "erd": { + "demographicFrequency": { "anyOf": [ { - "$ref": "#/$defs/Image" + "$ref": "#/$defs/DemographicFrequency" }, { "type": "null" } ], "default": null, - "description": "Visual representation of data table relationships.", - "title": "Entity Relationship Diagram", - "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables" - + "description": "The statistical characteristics of a population or group within the dataset.", + "title": "Demographic frequency" }, - "demographicFrequency": { + "omics": { "anyOf": [ { - "$ref": "#/$defs/DemographicFrequency" + "$ref": "#/$defs/Omics" }, { "type": "null" } ], "default": null, - "description": "The statistical characteristics of a population or group within the dataset.", - "title": "Demographic frequency" + "description": "Omics", + "title": "Omics" }, - "omics": { + "project": { + "$ref": "#/$defs/Project", + "default": null + }, + "datasetFilters": { "anyOf": [ { - "$ref": "#/$defs/Omics" + "$ref": "#/$defs/DatasetFilters" }, { "type": "null" } ], "default": null, - "description": "Omics", - "title": "Omics" + "description": "Categorization tags regarding cancer type, data type, and access." + }, + "erd": { + "anyOf": [ + { + "$ref": "#/$defs/Image" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "title": "Entity Relationship Diagram" } - }, "required": [ "identifier", @@ -3328,6 +3255,6 @@ "accessibility", "observations" ], - "title": "Hdruk400", + "title": "Cruk100", "type": "object" } \ No newline at end of file From ef21f08d39d0132ca432c5e1659051cc29560f86 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Thu, 12 Feb 2026 18:53:50 +0000 Subject: [PATCH 04/18] feat(CRUK): add icons field Add icons to the CRUK model and regenerate the 1.0.0 schema to include it. --- hdr_schemata/models/CRUK/1.0.0/schema.json | 28 +++++++++++++++++++++ hdr_schemata/models/CRUK/v1_0_0/Icons.py | 14 +++++++++++ hdr_schemata/models/CRUK/v1_0_0/__init__.py | 6 +++++ 3 files changed, 48 insertions(+) create mode 100644 hdr_schemata/models/CRUK/v1_0_0/Icons.py diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json index e9264698..382799fa 100644 --- a/hdr_schemata/models/CRUK/1.0.0/schema.json +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -1293,6 +1293,21 @@ "title": "HealthAndDiseaseSubTypes", "type": "string" }, + "Icons": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", + "title": "Icons" + }, "Image": { "additionalProperties": false, "properties": { @@ -3214,6 +3229,19 @@ "description": "Omics", "title": "Omics" }, + "icons": { + "anyOf": [ + { + "$ref": "#/$defs/Icons" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Calculated categorization icons added during export.", + "title": "Icons" + }, "project": { "$ref": "#/$defs/Project", "default": null diff --git a/hdr_schemata/models/CRUK/v1_0_0/Icons.py b/hdr_schemata/models/CRUK/v1_0_0/Icons.py new file mode 100644 index 00000000..10631632 --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/Icons.py @@ -0,0 +1,14 @@ +from __future__ import annotations + +from typing import Optional, List + +from pydantic import ConfigDict, RootModel + + +class Icons(RootModel[Optional[List[str]]]): + model_config = ConfigDict( + title="Icons", + json_schema_extra={ + "description": "A list of icon identifiers associated with the dataset, derived from dataset filters." + }, + ) diff --git a/hdr_schemata/models/CRUK/v1_0_0/__init__.py b/hdr_schemata/models/CRUK/v1_0_0/__init__.py index bb46048c..971ef6f9 100644 --- a/hdr_schemata/models/CRUK/v1_0_0/__init__.py +++ b/hdr_schemata/models/CRUK/v1_0_0/__init__.py @@ -10,6 +10,7 @@ from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations as an_v3 from .DatasetFilters import DatasetFilters +from .Icons import Icons from .Image import Image from .Project import Project from .Summary import Summary @@ -17,6 +18,11 @@ class Cruk100(Hdruk400): + icons: Optional[Icons] = Field( + None, + title="Icons", + description="Calculated categorization icons added during export.", + ) summary: Summary = Field( ..., description=an.summary._description, title=an.summary._title ) From f1b10c2b4a21f4202e49d3173c897ace2b2add67 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Sun, 15 Feb 2026 10:41:53 +0000 Subject: [PATCH 05/18] docs(CRUK): add 1.0.0 docs Generate CRUK 1.0.0 docs (md, form, structure, template, example). --- docs/CRUK/1.0.0.example.json | 188 +++ docs/CRUK/1.0.0.form.json | 1991 ++++++++++++++++++++++++++++++ docs/CRUK/1.0.0.md | 1558 ++++++++++++++++++++++++ docs/CRUK/1.0.0.structure.json | 2090 ++++++++++++++++++++++++++++++++ docs/CRUK/1.0.0.template.json | 167 +++ 5 files changed, 5994 insertions(+) create mode 100644 docs/CRUK/1.0.0.example.json create mode 100644 docs/CRUK/1.0.0.form.json create mode 100644 docs/CRUK/1.0.0.md create mode 100644 docs/CRUK/1.0.0.structure.json create mode 100644 docs/CRUK/1.0.0.template.json diff --git a/docs/CRUK/1.0.0.example.json b/docs/CRUK/1.0.0.example.json new file mode 100644 index 00000000..98a23d8c --- /dev/null +++ b/docs/CRUK/1.0.0.example.json @@ -0,0 +1,188 @@ +{ + "identifier": null, + "version": "1.1.0", + "revisions": [ + { + "version": "6.0.0", + "url": null + } + ], + "issued": "2024-10-24T00:00:00.000Z", + "modified": "2024-10-24T00:00:00.000Z", + "summary": { + "title": "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations", + "funders": "CRUK", + "abstract": "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner.", + "dataCustodian": { + "identifier": "30f16703-28bc-4f45-9ce5-625d2d3db27d", + "name": "Health Data Research UK", + "logo": null, + "description": null, + "contactPoint": "test@test.co.uk", + "memberOf": null + }, + "populationSize": 1000, + "keywords": [ + "Preprints,Papers,HDR UK" + ], + "doiName": null, + "contactPoint": "gateway@hdruk.ac.uk", + "datasetAliases": null + }, + "documentation": { + "description": "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.", + "associatedMedia": null, + "inPipeline": null + }, + "coverage": { + "spatial": "United Kingdom", + "typicalAgeRangeMin": null, + "typicalAgeRangeMax": null, + "datasetCompleteness": null, + "materialType": null, + "followUp": null, + "pathway": null + }, + "provenance": { + "origin": { + "purpose": null, + "datasetType": [ + "Health and disease" + ], + "source": null, + "collectionSource": null, + "imageContrast": null + }, + "temporal": { + "publishingFrequency": "Continuous", + "distributionReleaseDate": null, + "startDate": "2024-10-24T00:00:00.000Z", + "endDate": null, + "timeLag": "Not applicable" + } + }, + "accessibility": { + "usage": { + "dataUseLimitation": null, + "dataUseRequirements": null, + "resourceCreator": null + }, + "access": { + "accessRights": "In Progress", + "accessServiceCategory": null, + "accessService": null, + "accessRequestCost": null, + "deliveryLeadTime": null, + "jurisdiction": null, + "dataController": null, + "dataProcessor": null + }, + "formatAndStandards": { + "vocabularyEncodingScheme": [ + "LOCAL", + "ICD10" + ], + "conformsTo": [ + "LOCAL", + "NHS DATA DICTIONARY" + ], + "language": [ + "en" + ], + "format": [ + "text/tab-separated-values", + "application/sql", + "text/csv", + "image/diacom-rle" + ] + } + }, + "enrichmentAndLinkage": { + "derivedFrom": [ + { + "pid": null, + "title": null, + "url": null + } + ], + "isPartOf": [ + { + "pid": null, + "title": null, + "url": null + } + ], + "linkableDatasets": [ + { + "pid": null, + "title": null, + "url": null + } + ], + "similarToDatasets": [ + { + "pid": null, + "title": null, + "url": null + } + ], + "investigations": null, + "tools": null, + "publicationAboutDataset": [ + "10.1093/ije/dyab028" + ], + "publicationUsingDataset": [ + "10.1001/jamapediatrics.2016.3633" + ] + }, + "observations": [ + { + "observedNode": "Persons", + "measuredValue": 1000, + "disambiguatingDescription": null, + "observationDate": "2024-10-24", + "measuredProperty": "Count" + } + ], + "structuralMetadata": null, + "demographicFrequency": { + "age": [ + { + "bin": "30-34 years", + "count": 1000 + } + ], + "ethnicity": [ + { + "bin": "Black or Black British - Any other Black background", + "count": 1000 + } + ], + "disease": [ + { + "diseaseCode": "J45", + "diseaseCodeVocabulary": "ICD10", + "count": 1000 + } + ] + }, + "omics": { + "assay": null, + "platform": null + }, + "icons": null, + "project": { + "projectName": null, + "leadResearcher": null, + "leadResearchInstitute": null, + "grantNumbers": null, + "projectStartDate": null, + "projectEndDate": null, + "projectScope": null + }, + "datasetFilters": null, + "erd": { + "image": null, + "description": null + } +} \ No newline at end of file diff --git a/docs/CRUK/1.0.0.form.json b/docs/CRUK/1.0.0.form.json new file mode 100644 index 00000000..aabf841f --- /dev/null +++ b/docs/CRUK/1.0.0.form.json @@ -0,0 +1,1991 @@ +{ + "schema_fields": [ + { + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier.", + "guidance": "N/A", + "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" + }, + "location": "identifier" + }, + { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version.", + "guidance": "Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.\\nMajor: Significant/breaking changes.\\nMinor: New features and bug fixes.\\nPatch: Minor fixes without new features.", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + }, + "location": "version" + }, + { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "guidance": "", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": { + "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", + "title": "Semver", + "type": "string" + }, + "location": "revisions.version" + }, + { + "required": false, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "guidance": "", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "revisions.url" + }, + { + "required": true, + "title": "Metadata Issued Datetime", + "description": "Datetime stamp of when this metadata version was initially issued", + "guidance": "", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": false, + "types": "datetime", + "location": "issued" + }, + { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "guidance": "", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": false, + "types": "datetime", + "location": "modified" + }, + { + "required": true, + "title": "Title", + "description": "The main title of the dataset", + "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + ], + "is_list": false, + "is_optional": false, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "summary.title" + }, + { + "required": true, + "title": "Funded by", + "description": "List of Funders separated by a line break", + "guidance": "Put each funder on a new line", + "examples": [ + "CRUK", + "University of Sussex" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "LineSeparatedValues", + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + "location": "summary.funders" + }, + { + "required": true, + "title": "Abstract", + "description": "Longer abstract detailing the dataset.", + "guidance": "- The abstract should provide a **clear and brief descriptive** signpost for researchers who are searching for data that may be relevant to their research.\\n- The abstract should allow the reader to determine the **scope of the data collection and accurately summarise its content**.\\n- Effective abstracts should **avoid long sentences and abbreviations** where possible.\\n- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.\\n- **Abstracts should be different from the full description** for a dataset.\\n- **Example**: 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.", + "examples": [ + "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "AbstractText", + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + "location": "summary.abstract" + }, + { + "required": true, + "title": "identifier", + "description": "Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation.", + "guidance": "**Example**: https://ror.org/053fq8t95\\nIf your organisation does not have a ROR identifier please use the \u201csuggest and institute\u201d function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform", + "examples": [ + "30f16703-28bc-4f45-9ce5-625d2d3db27d" + ], + "is_list": false, + "is_optional": false, + "types": "str", + "location": "summary.dataCustodian.identifier" + }, + { + "required": true, + "title": "Name of Data Custodian", + "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", + "guidance": "In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank.", + "examples": [ + "Health Data Research UK" + ], + "is_list": false, + "is_optional": false, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "summary.dataCustodian.name" + }, + { + "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. If a logo is not submitted this will default to the logo for the team submitting the metadata.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "summary.dataCustodian.logo" + }, + { + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Description", + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + "location": "summary.dataCustodian.description" + }, + { + "required": true, + "title": "contact point", + "description": "Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata.", + "guidance": "", + "examples": [ + "test@test.co.uk" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "EmailAddress", + "format": "email", + "type": "string" + }, + "location": "summary.dataCustodian.contactPoint" + }, + { + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Hub", + "Alliance", + "Other", + "NCS" + ] + }, + "location": "summary.dataCustodian.memberOf" + }, + { + "required": true, + "title": "Population size", + "description": "Summary population size of the cohort", + "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section.", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "summary.populationSize" + }, + { + "required": false, + "title": "Keywords", + "description": "Comma separated key words associated to this dataset.", + "guidance": "- Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.\\n- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.\\n- Text from the title is automatically included in the search, there is no need to include this in the keywords.\\n- Include words that researcher may include in their searches.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": true, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "summary.keywords" + }, + { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "guidance": "- Please note: This is **not** the DOI of the publication(s) associated with the dataset.\\n- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.\\n- If a DOI is available, please provide the DOI.\\n- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "summary.doiName" + }, + { + "required": true, + "title": "Contact Point", + "description": "email of a person who can be the main contact point of this dataset", + "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.\\n**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**.", + "examples": [ + "gateway@hdruk.ac.uk" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "EmailAddress", + "format": "email", + "type": "string" + }, + "location": "summary.contactPoint" + }, + { + "required": false, + "title": "Dataset & BioSample alias", + "description": "Dataset & BioSample alias or alternate names.", + "guidance": "Alternate name, acronym or other identifier for the Dataset and/or BioSamples.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "summary.datasetAliases" + }, + { + "required": true, + "title": "Description", + "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", + "guidance": "- An HTML account of the data that **provides context and scope** of the data, **limited to 10000 characters, and/or a resolvable URL** that describes the dataset.\\n- Additional information can be recorded and included using the Associated media field.", + "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": { + "title": "Description", + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + "location": "documentation.description" + }, + { + "required": false, + "title": "Associated media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URL 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.", + "guidance": "- Please provide any media associated with the Gateway Organisation **using a valid URL** for the content.\\n- 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.\\n- Note: media assets should be hosted by the organisation.\n- **Example**: This could be a **link to a PDF Document** that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.\\n- If you are providing multiple links for associated media, we recommend that you separate these with a comma.", + "examples": [ + "PDF document that describes study protocol - https://link.to/document.pdf" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "documentation.associatedMedia" + }, + { + "required": false, + "title": "Dataset pipeline status", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "guidance": "If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Available", + "Not available" + ] + }, + "location": "documentation.inPipeline" + }, + { + "required": true, + "title": "Geographic coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:\\n- For locations in the UK: [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about)\\n- For locations in other countries: [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes)", + "guidance": "- The geographical area covered by the dataset.\\n- Please provide a valid location.\\n- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).\\n- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes).", + "examples": [ + "United Kingdom", + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "coverage.spatial" + }, + { + "required": false, + "title": "Minimum age range", + "description": "Please indicate the minimum age in years of participants in the dataset as a whole number (integer).", + "guidance": "- Please indicate the minimum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 0.", + "examples": [ + 18 + ], + "is_list": false, + "is_optional": true, + "types": "int", + "location": "coverage.typicalAgeRangeMin" + }, + { + "required": false, + "title": "Maximum age range", + "description": "Please indicate the maximum age in years of participants in the dataset as a whole number (integer).", + "guidance": "- Please indicate the maximum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 150.", + "examples": [ + 90 + ], + "is_list": false, + "is_optional": true, + "types": "int", + "location": "coverage.typicalAgeRangeMax" + }, + { + "required": false, + "title": "Dataset coverage/completeness/quality", + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.\\n**Example**: https://bhfdatasciencecentre.org/dashboard/", + "examples": [ + "https://bhfdatasciencecentre.org/dashboard/" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "coverage.datasetCompleteness" + }, + { + "required": false, + "title": "Biological sample availability", + "description": "The type of biospecimen saved from a biological entity.", + "guidance": "Indicate the specimen type, can be several values from the list below:\\n- Availability of physical samples associated with the dataset.\\n- If samples are available, please indicate the types of samples that are available.\\n- More than one type may be provided.\\n- If samples are not yet available, please provide **\u201cAvailability to be confirmed\u201d**.\\n- If samples are not available, then please provide **\u201cNot available\u201d**.\\n- **Not available**: Samples associated with the dataset are not available.\\n- **Bone marrow**: Bone marrow samples associated with the data are available.\\n- **Cancer cell lines**: Cancer cell line samples associated with the data are available.\\n- **CDNA/MRNA**: CDNA/MRNA samples associated with the data are available.\\n- **Core biopsy**: Core biopsy samples associated with the data are available.\\n- **DNA**: DNA samples associated with the data are available.\\n- **Entire body organ**: Entire body organ associated with the data are available.\\n- **Faeces**: Faeces samples associated with the data are available.\\n- **Immortalized cell lines**: Immortalized cell line samples associated with the data are available.\\n- **Isolated pathogen**: Isolated pathogen associated with the data are available.\\n- **MicroRNA**: MicroRNA samples associated with the data are available.\\n- **Peripheral blood cells**: Peripheral blood cell samples associated with the data are available.\\n- **Plasma**: Plasma samples associated with the data are available.\\n- **PM Tissue**: PM Tissue samples associated with the data are available.\\n- **Primary cells**: Primary cell samples associated with the data are available.\\n- **RNA**: RNA samples associated with the data are available.\\n- **Saliva**: Saliva samples associated with the data are available.\\n- **Serum**: Serum samples associated with the data are available.\\n- **Swabs**: Swab samples associated with the data are available.\\n- **Tissue**: Tissue samples associated with the data are available.\\n- **Urine**: Urine samples associated with the data are available.\\n- **Whole blood**: Whole blood samples associated with the data are available.\\n- **Availability to be confirmed**: Availability of samples is currently being confirmed.\\n- **Other**: Other types of sample available.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "None/not available", + "Bone marrow", + "Cancer cell lines", + "CDNA/MRNA", + "Core biopsy", + "DNA", + "Entire body organ", + "Faeces", + "Immortalized cell lines", + "Isolated pathogen", + "MicroRNA", + "Peripheral blood cells", + "Plasma", + "PM Tissue", + "Primary cells", + "RNA", + "Saliva", + "Serum", + "Swabs", + "Tissue", + "Urine", + "Whole blood", + "Availability to be confirmed", + "Other" + ] + }, + "location": "coverage.materialType" + }, + { + "required": false, + "title": "Follow-up", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed \u201clongitudinally\u201d i.e. new information is collected about them for a period of time afterward. This is known as the \u201cfollow up period\u201d. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period.", + "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).\\n-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.\\n-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.\\n-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.\\n-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.\\n-**CONTINUOUS**: Data for patients is being regularly added to and updated.\\n-**UNKNOWN**: Timespan is Unknown.\\n-**OTHER**: Data available for a patient over another time 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 + ] + }, + "location": "coverage.followUp" + }, + { + "required": false, + "title": "Patient pathway description", + "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.", + "guidance": "- Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage.\\n- 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": { + "title": "Description", + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + "location": "coverage.pathway" + }, + { + "required": false, + "title": "Purpose of dataset collection", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "guidance": "- **Research cohort**: Data collected for a defined group of people.\\n- **Study**: Data collected for a specific research study.\\n- **Disease registry**: Data collected as part of a disease registry.\\n- **Trial**: Data collected for as part of a clinical trial.\\n- **Care**: Data collected as part of routine clinical care.\\n- **Audit**: Data collected as part of an audit programme.\\n- **Administrative**: Data collected for administrative and management information purposes.\\n- **Financial**: Data collected either for payments or for billing.\\n- **Statutory**: Data collected in compliance with statutory requirements.\\n- **Other**: Data collected for other purpose.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Research cohort", + "Study", + "Disease registry", + "Trial", + "Care", + "Audit", + "Administrative", + "Financial", + "Statutory", + "Other", + null + ] + }, + "location": "provenance.origin.purpose" + }, + { + "required": false, + "title": "Source of data extraction", + "description": "Please indicate the source of the data extraction.", + "guidance": " - **EPR**: Data Extracted from Electronic Patient Record.\\n- **Electronic survey**: Data has been extracted from electronic surveys.\\n- **LIMS**: Data has been extracted from a laboratory information management system.\\n- **Paper-based**: Data has been extracted from paper forms.\\n- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.\\n- **Machine generated**: Data has been machine generated i.e. imaging.\\n- **Other**: Data has been extracted by other means.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "EPR", + "Electronic survey", + "LIMS", + "Paper-based", + "Free text NLP", + "Machine generated", + "Other" + ] + }, + "location": "provenance.origin.source" + }, + { + "required": false, + "title": "Collection source setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided.", + "guidance": "- **Cohort, study, trial**: Cohort, study or trial data collection as part of protocol.\\n- **Clinic**: Specific clinic such as antenatal clinic.\\n- **Primary care - Referrals**: General medical practitioner referral to another service.\\n- **Primary care - Clinic**: General medical practitioner practice.\\n- **Primary care - Out of hours**: General medical practitioner care or advice outside of standard hours.\\n- **Secondary care - Accident and emergency**: Accident emergency department.\\n- **Secondary care - Outpatients**: Outpatient care.\\n- **Secondary care - In-patients**: In-patient care.\\n- **Secondary care - Ambulance**: Care provided in association with ambulance service.\\n- **Secondary care - ICU**: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).\\n- **Prescribing - Community pharmacy**: Pharmacy based in the community.\\n- **Prescribing - Community pharmacy**: Pharmacy based in a hospital setting.\\n- **Patient report outcome**: Reported by patient.\\n- **Wearables**: Data collection devices worn on the body.\\n- **Local authority**: Local authority or entity associated with a local authority.\\n- **National government**: National government or entity associated with the national government.\\n- **Community**: Community settings.\\n- **Services**: Services such as drug misuse or blood transfusion.\\n- **Home**: Home setting.\\n- **Private**: Private medical clinic.\\n- **Social care - Health care at home**: service provided in the home or residence of a person.\\n- **Social care - Other social data**: service provided in a setting outside of the person's home or residence.\\n- **Census**: collected as part of census.\\n- **Other**: Other setting.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Cohort, study, trial", + "Clinic", + "Primary care - Referrals", + "Primary care - Clinic", + "Primary care - Out of hours", + "Secondary care - Accident and Emergency", + "Secondary care - Outpatients", + "Secondary care - In-patients", + "Secondary care - Ambulance", + "Secondary care - ICU", + "Prescribing - Community pharmacy", + "Prescribing - Hospital", + "Patient report outcome", + "Wearables", + "Local authority", + "National government", + "Community", + "Services", + "Home", + "Private", + "Social care - Health care at home", + "Social care - Other social data", + "Census", + "Other", + null + ] + }, + "location": "provenance.origin.collectionSource" + }, + { + "required": false, + "title": "Image contrast", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Yes", + "No", + "Not stated" + ] + }, + "location": "provenance.origin.imageContrast" + }, + { + "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/", + "guidance": "Please indicate the frequency of publishing.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/.\\n\\n Options:\\n- **Static**: Dataset published once.\\n- **Irregular**: Dataset published at uneven intervals.\\n- **Continuous**: Dataset published without interruption.\\n- **Biennial**: Dataset published every two years.\\n- **Annual**: Dataset published occurs once a year.\\n- **Biannual**: Dataset published twice a year.\\n- **Quarterly**: Dataset published every three months.\\n- **Bimonthly**: Dataset published every two months.\\n- **Monthly**: Dataset published once a month.\\n- **Biweekly**: Dataset published every two weeks.\\n- **Weekly**: Dataset published once a week.\\n- **Twice weekly**: Dataset published twice a week.\\n- **Daily**: Dataset published once a day.\\n- **Other**: Dataset published using other interval.", + "examples": [ + "Continuous" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Static", + "Irregular", + "Continuous", + "Biennial", + "Annual", + "Biannual", + "Quarterly", + "Bimonthly", + "Monthly", + "Biweekly", + "Weekly", + "Twice a week", + "Daily", + "Other", + null + ] + }, + "location": "provenance.temporal.publishingFrequency" + }, + { + "required": false, + "title": "Distribution 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.", + "guidance": "- Please indicate the frequency the dataset is published.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see [https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/)", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": true, + "types": "date", + "location": "provenance.temporal.distributionReleaseDate" + }, + { + "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.", + "guidance": "- The start of the time period that the dataset provides coverage for.\\n- 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": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": false, + "types": "date", + "location": "provenance.temporal.startDate" + }, + { + "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.", + "guidance": "- The end of the time period that the dataset provides coverage for.\\n- If the dataset is **\u201cContinuous\u201d** and has no known end date, **please leave blank**.\\n- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**.", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": true, + "types": "date", + "location": "provenance.temporal.endDate" + }, + { + "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.", + "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.\\n- **Less than 1 week**: Typical time lag of less than a week.\\n- **1-2 weeks**: Typical time-lag of one to two weeks.\\n- **2-4 weeks**: Typical time-lag of two to four weeks.\\n- **1-2 months**: Typical time-lag of one to two months.\\n- **2-6 months**: Typical time-lag of two to six months.\\n- **6 months plus**: Typical time-lag of more than six months.\\n- **Variable**: Variable time-lag.\\n- **Not applicable**: Not Applicable i.e. static dataset.\\n- **Other**: Other time-lag.", + "examples": [ + "Not applicable" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ] + }, + "location": "provenance.temporal.timeLag" + }, + { + "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 Data Use Ontology to include a value for NO LINKAGE.", + "guidance": "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.\\n- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.\\n- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).\\n- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.\\n- **No restriction**: This data use limitation indicates there is no restriction on use.\\n- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.\\n- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).\\n- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "General research use", + "Commercial research use", + "Genetic studies only", + "No general methods research", + "No restriction", + "Geographical restrictions", + "Institution-specific restrictions", + "Not for profit use", + "Project-specific restrictions", + "Research-specific restrictions", + "User-specific restrictions", + "Research use only", + "No linkage" + ] + }, + "location": "accessibility.usage.dataUseLimitation" + }, + { + "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.", + "guidance": "- Please indicate if there are any additional conditions set for use if any, multiple requirements may be provided.\\n- Please ensure that these restrictions are documented in access rights information.\\n- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).\\n- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.\\n- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.\\n- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.\\n- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.\\n- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.\\n- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.\\n- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.\\n- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.\\n- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.\\n- **User-specific restriction**: This requirement indicates that use is limited to use by approved users.", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Collaboration required", + "Project-specific restrictions", + "Ethics approval required", + "Institution-specific restrictions", + "Geographical restrictions", + "Publication moratorium", + "Publication required", + "Return to database or resource", + "Time limit on use", + "Disclosure control", + "Not for profit use", + "User-specific restriction" + ] + }, + "location": "accessibility.usage.dataUseRequirements" + }, + { + "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.", + "guidance": "- Please provide the text that you would like included as part of any citation that credits this dataset.\\n- This is typically just the name of the publisher. No employee details should be provided.\\n- To add multiple entries, please click on **'+' symbol** to enter each separate website.\\n- **Example**: National Services Scotland", + "examples": [ + "National Services Scotland" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "ShortDescription", + "maxLength": 1000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.usage.resourceCreator" + }, + { + "required": true, + "title": "Access rights", + "description": "Please provide details for the data access rights.", + "guidance": "- The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.\\n- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", + "examples": [ + "In Progress" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.accessRights" + }, + { + "required": false, + "title": "Access method category", + "description": "The method a Researcher will use to access the dataset, if approved.", + "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", + "examples": [ + "TRE/SDE" + ], + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "TRE/SDE", + "Direct access", + "Open access", + "Varies based on project" + ] + }, + "location": "accessibility.access.accessServiceCategory" + }, + { + "required": false, + "title": "Access service description", + "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.", + "guidance": "Please provide a brief description of the data access services that are available including:\\n- environment that is currently available to researchers\\n- additional consultancy and services\\n- any indication of costs associated\\n\\n If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers.\\n **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://re-docs.genomicsengland.co.uk/tutorials/", + "https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.accessService" + }, + { + "required": false, + "title": "Access request cost", + "description": "Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests.", + "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.accessRequestCost" + }, + { + "required": false, + "title": "Time to dataset access", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "guidance": "- **Less than 1 week**: Access request process typically processed in less than a week.\\n- **1-2 weeks**: Access request process typically processed in one to two weeks.\\n- **2-4 weeks**: Access request process typically processed in two to four weeks.\\n- **1-2 months**: Access request process typically processed in one to two months.\\n- **2-6 months**: Access request process typically processed in two to six months.\\n- **More than 6 months**: Access request process typically processed in more than six months.\\n- **Variable**: Access request lead time is variable.\\n- **Not applicable**: Access request process duration is not applicable.\\n- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ] + }, + "location": "accessibility.access.deliveryLeadTime" + }, + { + "required": false, + "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.", + "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "pattern": "^[A-Z]{2}(-[A-Z]{2,3})?$", + "title": "Isocountrycode", + "type": "string" + }, + "location": "accessibility.access.jurisdiction" + }, + { + "required": false, + "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.", + "guidance": "- 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.\\n- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.\\n- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.\\n- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.\\n- Example: NHS England", + "examples": [ + "NHS England" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.dataController" + }, + { + "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.", + "guidance": "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.\\n- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.\\n- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.\\n- Examples: Not Applicable, SAIL", + "examples": [ + "Not Applicable", + "SAIL" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.dataProcessor" + }, + { + "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.", + "guidance": "- 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.\\n- 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.\\n- Notes: More than one vocabulary may be provided.\\n- **Local**: Local Coding Standard.\\n- [**OPCS4**](https://digital.nhs.uk/data-and-information/information-standards/governance/latest-activity/standards-and-collections/dapb0084-opcs-classification-of-interventions-and-procedures/)\\n- [**READ**](https://digital.nhs.uk/services/terminology-and-classifications/read-codes)\\n- [**SNOMED CT**](http://www.snomed.org/)\\n- [**SNOMED RT**](https://confluence.ihtsdotools.org/display/DOCGLOSS/SNOMED+RT)\\n- [**DM+D**](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/scci0052-dictionary-of-medicines-and-devices-dm-d)\\n- [**NHS National Codes**](https://www.datadictionary.nhs.uk/)\\n- [**ODS**](https://digital.nhs.uk/services/organisation-data-service)\\n- [**LOINC**](https://loinc.org/)\\n- [**ICD10**](https://www.who.int/classifications/icd/icdonlineversions/en/)\\n- [**ICD10CM**](https://www.cdc.gov/nchs/icd/icd10cm.htm)\\n- [**ICD10PCS**](https://ec.europa.eu/eip/ageing/standards/healthcare/e-health/icd-10-pcs_en)\\n- [**ICD9CM**](https://www.cdc.gov/nchs/icd/icd9cm.htm)\\n- [**ICD9**](https://www.cdc.gov/nchs/icd/icd9.htm)\\n- [**ICDO3**](https://www.who.int/standards/classifications/other-classifications/international-classification-of-diseases-for-oncology)\\n- [**AMT**](https://www.digitalhealth.gov.au/healthcare-providers/product-releases)\\n- [**APC**](https://www.acep.org/administration/reimbursement/reimbursement-faqs/apc-ambulatory-payment-classifications-faq/)\\n- [**ATC**](https://www.whocc.no/atc_ddd_index/)\\n- [**CIEL**](https://github.com/OpenConceptLab/ocl_web/wiki/CIEL)\\n- [**HPO**](https://hpo.jax.org/app/)\\n- [**CPT4**](https://www.ama-assn.org/practice-management/cpt)\\n- [**DPD**](https://health-products.canada.ca/dpd-bdpp/index-eng.jsp)\\n- [**DRG**](https://www.who.int/publications/i/item/WHO-UHC-HGF-Guidance-20.10)\\n- [**HEMONC**](https://hemonc.org/wiki/Main_Page)\\n- [**JMDC**](https://www.jmdc.co.jp/en/)\\n- [**KCD7**](https://forums.ohdsi.org/t/adding-kcd7-code-korean-icd-10-to-the-omop-vocabulary/7576)\\n- [**MULTUM**](https://www.cerner.com/solutions/drug-database)\\n- [**NAACCR**](https://www.naaccr.org/)\\n- [**NDC**](https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory)\\n- [**NDFRT**](https://bioportal.bioontology.org/ontologies/NDFRT)\\n- [**OXMIS**](https://oxrisk.com/oxmis/)\\n- [**RXNORM**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**RXNORM EXTENSION**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**SPL**](https://www.fda.gov/industry/fda-resources-data-standards/structured-product-labeling-resources)\\n- **Other**: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.\\n- [**NHS Scotland National Codes**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales National Codes**](http://www.datadictionary.wales.nhs.uk/)", + "examples": [ + "LOCAL", + "ICD10" + ], + "is_list": true, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "LOCAL", + "OPCS4", + "READ", + "SNOMED CT", + "SNOMED RT", + "DM PLUS D", + "DM+D", + "NHS NATIONAL CODES", + "NHS SCOTLAND NATIONAL CODES", + "NHS WALES NATIONAL CODES", + "ODS", + "LOINC", + "ICD10", + "ICD10CM", + "ICD10PCS", + "ICD9CM", + "ICD9", + "ICDO3", + "AMT", + "APC", + "ATC", + "CIEL", + "HPO", + "CPT4", + "DPD", + "DRG", + "HEMONC", + "JMDC", + "KCD7", + "MULTUM", + "NAACCR", + "NDC", + "NDFRT", + "OXMIS", + "RXNORM", + "RXNORM EXTENSION", + "SPL", + "OTHER" + ] + }, + "location": "accessibility.formatAndStandards.vocabularyEncodingScheme" + }, + { + "required": true, + "title": "Alignment with standardised data models", + "description": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, 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.", + "guidance": "- List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.\\n- If the data is only available in a local format, 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.\\n- [**HL7 FHIR**](https://www.hl7.org/fhir/)\\n- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)\\n- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)\\n- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)\\n- [**DICOM**](https://www.dicomstandard.org/)\\n- [**I2B2**](https://www.i2b2.org/)\\n- [**IHE**](https://www.ihe.net/resources/profiles/)\\n- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)\\n- [**openEHR**](https://www.openehr.org/)\\n- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)\\n- [**PCORnet**](https://pcornet.org/data-driven-common-model/)\\n- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)\\n- **Local**: In-house developed data model.\\n- **Other**: Other standardised data model.\\n- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)\\n- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/)", + "examples": [ + "LOCAL", + "NHS DATA DICTIONARY" + ], + "is_list": true, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "HL7 FHIR", + "HL7 V2", + "HL7 CDA", + "HL7 CCOW", + "LOINC", + "DICOM", + "I2B2", + "IHE", + "OMOP", + "OPENEHR", + "SENTINEL", + "PCORNET", + "CDISC", + "NHS DATA DICTIONARY", + "NHS SCOTLAND DATA DICTIONARY", + "NHS WALES DATA DICTIONARY", + "LOCAL", + "OTHER" + ] + }, + "location": "accessibility.formatAndStandards.conformsTo" + }, + { + "required": true, + "title": "Language", + "description": "This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639.", + "guidance": "https://www.iso.org/iso-639-language-code\\n- **aa**: Afar\\n- **ab**: Abkhazian\\n- **af**: Afrikaans\\n- **ak**: Akan\\n- **sq**: Albanian\\n- **am**: Amharic\\n- **ar**: Arabic\\n- **an**: Aragonese\\n- **hy**: Armenian\\n- **as**: Assamese\\n- **av**: Avaric\\n- **ae**: Avestan\\n- **ay**: Aymara\\n- **az**: Azerbaijani\\n- **ba**: Bashkir\\n- **bm**: Bambara\\n- **eu**: Basque\\n- **be**: Belarusian\\n- **bn**: Bengali\\n- **bh**: Bihari languages\\n- **bi**: Bislama\\n- **bo**: Tibetan\\n- **bs**: Bosnian\\n- **br**: Breton\\n- **bg**: Bulgarian\\n- **my**: Burmese\\n- **ca**: Catalan; Valencian\\n- **cs**: Czech\\n- **ch**: Chamorro\\n- **ce**: Chechen\\n- **zh**: Chinese\\n- **cu**: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic\\n- **cv**: Chuvash\\n- **kw**: Cornish\\n- **co**: Corsican\\n- **cr**: Cree\\n- **cy**: Welsh\\n- **cs**: Czech\\n- **da**: Danish\\n- **de**: German\\n- **dv**: Divehi; Dhivehi; Maldivian\\n- **nl**: Dutch; Flemish\\n- **dz**: Dzongkha\\n- **el**: Greek, Modern (1453-)\\n- **en**: English\\n- **eo**: Esperanto\\n- **et**: Estonian\\n- **eu**: Basque\\n- **ee**: Ewe\\n- **fo**: Faroese\\n- **fa**: Persian\\n- **fj**: Fijian\\n- **fi**: Finnish\\n- **fr**: French\\n- **fy**: Western Frisian\\n- **ff**: Fulah\\n- **ka**: Georgian\\n- **de**: German\\n- **gd**: Gaelic; Scottish Gaelic\\n- **ga**: Irish\\n- **gl**: Galician\\n- **gv**: Manx\\n- **el**: Greek, Modern (1453-)\\n- **gn**: Guarani\\n- **gu**: Gujarati\\n- **ht**: Haitian; Haitian Creole\\n- **ha**: Hausa\\n- **ho**: Hiri Motu\\n- **hr**: Croatian\\n- **hu**: Hungarian\\n- **hy**: Armenian\\n- **ig**: Igbo\\n- **is**: Icelandic\\n- **io**: Ido\\n- **ii**: Sichuan Yi; Nuosu\\n- **iu**: Inuktitut\\n- **ie**: Interlingue; Occidental\\n- **ia**: Interlingua (International Auxiliary Language Association)\\n- **id**: Indonesian\\n- **ik**: Inupiaq\\n- **is**: Icelandic\\n- **it**: Italian\\n- **jv**: Javanese\\n- **ja**: Japanese\\n- **kl**: Kalaallisut; Greenlandic\\n- **kn**: Kannada\\n- **ks**: Kashmiri\\n- **ka**: Georgian\\n- **kr**: Kanuri\\n- **kk**: Kazakh\\n- **km**: Central Khmer\\n- **ki**: Kikuyu; Gikuyu\\n- **rw**: Kinyarwanda\\n- **ky**: Kirghiz; Kyrgyz\\n- **kv**: Komi\\n- **kg**: Kongo\\n- **ko**: Korean\\n- **kj**: Kuanyama; Kwanyama\\n- **ku**: Kurdish\\n- **lo**: Lao\\n- **la**: Latin\\n- **lv**: Latvian\\n- **li**: Limburgan; Limburger; limburgish\\n- **ln**: Lingala\\n- **lt**: Lithuanian\\n- **lb**: Luxembourgish; Letzeburgesch\\n- **lu**: Luba-Katanga\\n- **lg**: Ganda\\n- **mk**: Macedonian\\n- **mh**: Marshallese\\n- **ml**: Malayalam\\n- **mi**: Maori\\n- **mr**: Marathi\\n- **ms**: Malay\\n- **mk**: Macedonian\\n- **mg**: Malagasy\\n- **mt**: Maltese\\n- **mn**: Mongolian\\n- **mi**: Maori\\n- **ms**: Malay\\n- **my**: Burmese\\n- **na**: Nauru\\n- **nv**: Navajo; Navaho\\n- **nr**: Ndebele, South; South Ndebele\\n- **nd**: Ndebele, North; North Ndebele\\n- **ng**: Ndonga\\n- **ne**: Nepali\\n- **nl**: Dutch; Flemish\\n- **nn**: Norwegian Nynorsk; Nynorsk, Norwegian\\n- **nb**: Bokm\u00e5l, Norwegian; Norwegian Bokm\u00e5l\\n- **no**: Norwegian\\n- **ny**: Chichewa; Chewa; Nyanja\\n- **oc**: Occitan (post 1500)\\n- **oj**: Ojibwa\\n- **or**: Oriya\\n- **om**: Oromo\\n- **os**: Ossetian; Ossetic\\n- **pa**: Panjabi; Punjabi\\n- **fa**: Persian\\n- **pi**: Pali\\n- **pl**: Polish\\n- **pt**: Portuguese\\n- **ps**: Pushto; Pashto\\n- **qu**: Quechua\\n- **rm**: Romansh\\n- **ro**: Romanian; Moldavian; Moldovan\\n- **rn**: Rundi\\n- **ru**: Russian\\n- **sg**: Sango\\n- **sa**: Sanskrit\\n- **si**: Sinhala; Sinhalese\\n- **sk**: Slovak\\n- **sl**: Slovenian\\n- **se**: Northern Sami\\n- **sm**: Samoan\\n- **sn**: Shona\\n- **sd**: Sindhi\\n- **so**: Somali\\n- **st**: Sotho, Southern\\n- **es**: Spanish; Castilian\\n- **sq**: Albanian\\n- **sc**: Sardinian\\n- **sr**: Serbian\\n- **ss**: Swati\\n- **su**: Sundanese\\n- **sw**: Swahili\\n- **sv**: Swedish\\n- **ty**: Tahitian\\n- **ta**: Tamil\\n- **tt**: Tatar\\n- **te**: Telugu\\n- **tg**: Tajik\\n- **tl**: Tagalog\\n- **th**: Thai\\n- **bo**: Tibetan\\n- **ti**: Tigrinya\\n- **to**: Tonga (Tonga Islands)\\n- **tn**: Tswana\\n- **ts**: Tsonga\\n- **tk**: Turkmen\\n- **tr**: Turkish\\n- **tw**: Twi\\n- **ug**: Uighur; Uyghur\\n- **uk**: Ukrainian\\n- **ur**: Urdu\\n- **uz**: Uzbek\\n- **ve**: Venda\\n- **vi**: Vietnamese\\n- **vo**: Volap\u00fck\\n- **cy**: Welsh\\n- **wa**: Walloon\\n- **wo**: Wolof\\n- **xh**: Xhosa\\n- **yi**: Yiddish\\n- **yo**: Yoruba\\n- **za**: Zhuang; Chuang\\n- **zh**: Chinese\\n- **zu**: Zulu", + "examples": [ + "en" + ], + "is_list": true, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "aa", + "ab", + "ae", + "af", + "ak", + "am", + "an", + "ar", + "as", + "av", + "ay", + "az", + "ba", + "be", + "bg", + "bh", + "bi", + "bm", + "bn", + "bo", + "br", + "bs", + "ca", + "ce", + "ch", + "co", + "cr", + "cs", + "cu", + "cv", + "cy", + "da", + "de", + "dv", + "dz", + "ee", + "el", + "en", + "eo", + "es", + "et", + "eu", + "fa", + "ff", + "fi", + "fj", + "fo", + "fr", + "fy", + "ga", + "gd", + "gl", + "gn", + "gu", + "gv", + "ha", + "he", + "hi", + "ho", + "hr", + "ht", + "hu", + "hy", + "hz", + "ia", + "id", + "ie", + "ig", + "ii", + "ik", + "io", + "is", + "it", + "iu", + "ja", + "jv", + "ka", + "kg", + "ki", + "kj", + "kk", + "kl", + "km", + "kn", + "ko", + "kr", + "ks", + "ku", + "kv", + "kw", + "ky", + "la", + "lb", + "lg", + "li", + "ln", + "lo", + "lt", + "lu", + "lv", + "mg", + "mh", + "mi", + "mk", + "ml", + "mn", + "mr", + "ms", + "mt", + "my", + "na", + "nb", + "nd", + "ne", + "ng", + "nl", + "nn", + "no", + "nr", + "nv", + "ny", + "oc", + "oj", + "om", + "or", + "os", + "pa", + "pi", + "pl", + "ps", + "pt", + "qu", + "rm", + "rn", + "ro", + "ru", + "rw", + "sa", + "sc", + "sd", + "se", + "sg", + "si", + "sk", + "sl", + "sm", + "sn", + "so", + "sq", + "sr", + "ss", + "st", + "su", + "sv", + "sw", + "ta", + "te", + "tg", + "th", + "ti", + "tk", + "tl", + "tn", + "to", + "tr", + "ts", + "tt", + "tw", + "ty", + "ug", + "uk", + "ur", + "uz", + "ve", + "vi", + "vo", + "wa", + "wo", + "xh", + "yi", + "yo", + "za", + "zh", + "zu" + ] + }, + "location": "accessibility.formatAndStandards.language" + }, + { + "required": true, + "title": "Format", + "description": "If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format.", + "guidance": "- If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, .\\n- Please **enter one format type at a time** and click **Add New Field** to add further keywords.\\n- Note: If your file format is not included in the current list of formats, please indicate other.\\n- **Example**: text/tab-separated-values, application/sql, text/csv, image/diacom-rle", + "examples": [ + "text/tab-separated-values", + "application/sql", + "text/csv", + "image/diacom-rle" + ], + "is_list": true, + "is_optional": false, + "types": { + "minLength": 1, + "title": "Format", + "type": "string" + }, + "location": "accessibility.formatAndStandards.format" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.derivedFrom.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.derivedFrom.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.derivedFrom.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.isPartOf.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.isPartOf.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.isPartOf.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.linkableDatasets.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.linkableDatasets.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.linkableDatasets.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.similarToDatasets.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "enrichmentAndLinkage.similarToDatasets.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.similarToDatasets.url" + }, + { + "required": false, + "title": "Investigations", + "description": "Please provide link to any active projects that are using the dataset.", + "guidance": "- Please provide the website address(es) which document information related to active projects utilising the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each website and press enter to add it to the list.\\n- **Example**: ", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.investigations" + }, + { + "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/", + "guidance": "- Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use.\\n- Multiple tools may be provided.\\n- 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": true, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "enrichmentAndLinkage.tools" + }, + { + "required": false, + "title": "Publication about the dataset", + "description": "DOIs for publications which describe the dataset.", + "guidance": "- Please provide the DOIs for publications which describe the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1093/ije/dyab028>", + "examples": [ + "10.1093/ije/dyab028" + ], + "is_list": true, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "enrichmentAndLinkage.publicationAboutDataset" + }, + { + "required": false, + "title": "Publication using the dataset", + "description": "DOIs for publications which use the dataset for analysis.", + "guidance": "- Please provide the DOIs for publications which have used the dataset in their analysis.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1001/jamapediatrics.2016.3633>", + "examples": [ + "10.1001/jamapediatrics.2016.3633" + ], + "is_list": true, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "enrichmentAndLinkage.publicationUsingDataset" + }, + { + "required": true, + "title": "Dataset volume measure", + "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", + "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "examples": [ + "Persons" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Persons", + "Events", + "Findings", + "Number of scans per modality" + ] + }, + "location": "observations.observedNode" + }, + { + "required": true, + "title": "Measured value", + "description": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "observations.measuredValue" + }, + { + "required": false, + "title": "Disambiguating description", + "description": "If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters.", + "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "AbstractText", + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + "location": "observations.disambiguatingDescription" + }, + { + "required": true, + "title": "Observation date", + "description": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "examples": [ + "2024-10-24" + ], + "is_list": false, + "is_optional": false, + "types": "date", + "location": "observations.observationDate" + }, + { + "required": true, + "title": "Measured property", + "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", + "guidance": "Descriptive term for the observation property measured.", + "examples": [ + "Count" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "MeasuredProperty" + }, + "location": "observations.measuredProperty" + }, + { + "required": false, + "title": "Synthetic data web links", + "description": "Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.\\n- **Example**: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/", + "guidance": "", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "structuralMetadata.syntheticDataWebLink" + }, + { + "required": true, + "title": "Age grouping", + "description": null, + "guidance": "", + "examples": [ + "30-34 years" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "0-6 days", + "7-27 days", + "1-11 months", + "1-4 years", + "5-9 years", + "10-14 years", + "15-19 years", + "20-24 years", + "25-29 years", + "30-34 years", + "35-39 years", + "40-44 years", + "45-49 years", + "50-54 years", + "55-59 years", + "60-64 years", + "65-69 years", + "70-74 years", + "75-79 years", + "80-84 years", + "85-89 years", + "90-94 years", + "95-99 years", + "100+ years" + ] + }, + "location": "demographicFrequency.age.bin" + }, + { + "required": true, + "title": "Age count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.age.count" + }, + { + "required": true, + "title": "Ethnicity grouping", + "description": null, + "guidance": "", + "examples": [ + "Black or Black British - Any other Black background" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "White - British", + "White - Irish", + "White - Any other White background", + "Mixed - White and Black Caribbean", + "Mixed - White and Black African", + "Mixed - White and Asian", + "Mixed - Any other mixed background", + "Asian or Asian British - Indian", + "Asian or Asian British - Pakistani", + "Asian or Asian British - Bangladeshi", + "Asian or Asian British - Any other Asian background", + "Black or Black British - Caribbean", + "Black or Black British - African", + "Black or Black British - Any other Black background", + "Other Ethnic Groups - Chinese", + "Other Ethnic Groups - Any other ethnic group", + "Not stated", + "Not known" + ] + }, + "location": "demographicFrequency.ethnicity.bin" + }, + { + "required": true, + "title": "Ethnicity count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.ethnicity.count" + }, + { + "required": true, + "title": "Disease code", + "description": null, + "guidance": "", + "examples": [ + "J45" + ], + "is_list": false, + "is_optional": false, + "types": "str", + "location": "demographicFrequency.disease.diseaseCode" + }, + { + "required": true, + "title": "Disease code vocabulary", + "description": null, + "guidance": "", + "examples": [ + "ICD10" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "ICD10", + "SNOMED CT", + "MeSH" + ] + }, + "location": "demographicFrequency.disease.diseaseCodeVocabulary" + }, + { + "required": true, + "title": "Disease count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.disease.count" + }, + { + "required": false, + "title": "Omics assay", + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "NMR spectroscopy", + "Mass-spectrometry", + "Whole genome sequencing", + "Exome sequencing", + "Genotyping by array", + "Transcriptome profiling by high-throughput sequencing", + "Transcriptome profiling by array", + "Amplicon sequencing", + "Methylation binding domain sequencing", + "Methylation profiling by high-throughput sequencing", + "Genomic variant calling", + "Chromatin accessibility profiling by high-throughput sequencing", + "Histone modification profiling by high-throughput sequencing", + "Chromatin immunoprecipitation sequencing", + "Whole genome shotgun sequencing", + "Whole transcriptome sequencing", + "Targeted mutation analysis" + ] + }, + "location": "omics.assay" + }, + { + "required": false, + "title": "Omics Platform", + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Other", + "NMR Nightingale", + "Metabolon", + "Biocrates", + "Illumina", + "Oxford Nanopore", + "454", + "Hi-C", + "HiFi" + ] + }, + "location": "omics.platform" + }, + { + "required": false, + "title": "Icons", + "description": "Calculated categorization icons added during export.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Icons", + "items": { + "type": "string" + }, + "type": "array" + }, + "location": "icons" + }, + { + "required": false, + "title": "Project Title", + "description": "May or may not be different to the Dataset Title", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.projectName" + }, + { + "required": false, + "title": "Lead Researcher", + "description": "", + "guidance": "", + "examples": [ + "Dr Smith" + ], + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.leadResearcher" + }, + { + "required": false, + "title": "Lead Research Institute", + "description": "", + "guidance": "", + "examples": [ + "Sussex University" + ], + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.leadResearchInstitute" + }, + { + "required": false, + "title": "Grant number(s)", + "description": "List of grant numbers separated by a line break", + "guidance": "Normally specified on the grant acceptance letter", + "examples": [ + "A354t", + "ropguadg" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LineSeparatedValues", + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + "location": "project.grantNumbers" + }, + { + "required": false, + "title": "Project Start Date", + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "project.projectStartDate" + }, + { + "required": false, + "title": "Project End Date", + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "project.projectEndDate" + }, + { + "required": false, + "title": "Project Scope", + "description": "data and biospecimens expected to result from the grant.", + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "is_list": false, + "is_optional": true, + "types": "str", + "location": "project.projectScope" + }, + { + "required": false, + "title": null, + "description": "Categorization tags regarding cancer type, data type, and access.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "description": "A list of categorization tags (ids) for the dataset.", + "items": { + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "type": "string" + }, + "title": "Dataset Filters", + "type": "array" + }, + "location": "datasetFilters" + }, + { + "required": false, + "title": "Image", + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "erd.image" + }, + { + "required": false, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Description", + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + "location": "erd.description" + } + ], + "url_regex": "^\\s*((https?:\\/\\/)*([a-zA-Z0-9-]+\\.?)+[a-zA-Z]{2,}(:\\d+)?(\\/[^\\s]*)?(\n)?)+$" +} \ No newline at end of file diff --git a/docs/CRUK/1.0.0.md b/docs/CRUK/1.0.0.md new file mode 100644 index 00000000..6cdeb3ba --- /dev/null +++ b/docs/CRUK/1.0.0.md @@ -0,0 +1,1558 @@ + +## identifier + +System dataset identifier. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Dataset identifier | N/A | False | True | ["Uuidv4[{'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}$', 'type': 'string'}]", "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * 226fb3f1-4471-400a-8c39-2b66d46a39b6 + * https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6 + + +## version + +Dataset metadata version. + +| title | guidance | is_list | required | type | +|:----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------| +| Dataset Version | Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.
Major: Significant/breaking changes.
Minor: New features and bug fixes.
Patch: Minor fixes without new features. | False | True | ["Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]"] | + +Examples: + + * 1.1.0 + + +## revisions + +A list of persistent identifiers and version numbers for previous versions of metadata for this dataset + + + + + + +### version + +Version number used for previous version of this dataset + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------| +| revision version | | False | True | ["Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]"] | + +Examples: + + * 6.0.0 + + +### url + +Some url with a reference to the record of a previous version of this dataset + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| revision url | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561 + + +## issued + +Datetime stamp of when this metadata version was initially issued + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:-------------| +| Metadata Issued Datetime | | False | True | ['datetime'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +## modified + +Datetime stamp of when this metadata was last modified + +| title | guidance | is_list | required | type | +|:-----------------------|:-----------|:----------|:-----------|:-------------| +| Last Modified Datetime | | False | True | ['datetime'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +## summary + +Summary of metadata describing key pieces of information. + + + + + + +### title + +The main title of the dataset + +| title | guidance | is_list | required | type | +|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| +| Title | - The **title** 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.
- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.
- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.
- **Example**: North West London COVID-19 Patient Level Situation Report | False | True | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | + +Examples: + + * Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations + + +### funders + +List of Funders separated by a line break + +| title | guidance | is_list | required | type | +|:----------|:------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Funded by | Put each funder on a new line | False | True | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * CRUK + * University of Sussex + + +### abstract + +Longer abstract detailing the dataset. + +| title | guidance | is_list | required | type | +|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------| +| Abstract | - The abstract should 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**.
- Effective abstracts should **avoid long sentences and abbreviations** where possible.
- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.
- **Abstracts should be different from the full description** for a dataset.
- **Example**: CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. | False | True | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner. + + +### dataCustodian + +This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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. + + + + + + +#### identifier + +Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation. + +| title | guidance | is_list | required | type | +|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------| +| identifier | **Example**: https://ror.org/053fq8t95
If your organisation does not have a ROR identifier please use the “suggest and institute” function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform | False | True | ['str', 'int'] | + +Examples: + + * 30f16703-28bc-4f45-9ce5-625d2d3db27d + + +#### name + +The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. + +| title | guidance | is_list | required | type | +|:-----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| +| Name of Data Custodian | In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank. | False | True | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | + +Examples: + + * Health Data Research UK + + +#### logo + +Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg. If a logo is not submitted this will default to the logo for the team submitting the metadata. + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Organisation Logo | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### description + +Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata. + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| +| Organisation Description | | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### contactPoint + +Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata. + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| +| contact point | | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]'] | + +Examples: + + * test@test.co.uk + + +#### memberOf + +Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata. + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:-------------------------------------------------------| +| Organisation Membership | | False | False | ["MemberOfV2['Hub','Alliance','Other','NCS']", 'null'] | + + + + +### populationSize + +Summary population size of the cohort + +| title | guidance | is_list | required | type | +|:----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| +| Population size | This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section. | False | True | ['int'] | + +Examples: + + * 1000 + + +### keywords + +Comma separated key words associated to this dataset. + +| title | guidance | is_list | required | type | +|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| +| Keywords | - Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.
- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.
- Text from the title is automatically included in the search, there is no need to include this in the keywords.
- Include words that researcher may include in their searches. | True | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | + +Examples: + + * Preprints,Papers,HDR UK + + +### doiName + +DOI associated to this dataset + +| title | guidance | is_list | required | type | +|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------| +| DOI Name | - Please note: This is **not** the DOI of the publication(s) associated with the dataset.
- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.
- If a DOI is available, please provide the DOI.
- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service. | False | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * 10.1093/ije/dyx196 + + +### contactPoint + +email of a person who can be the main contact point of this dataset + +| title | guidance | is_list | required | type | +|:--------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------| +| Contact Point | Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.
**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**. | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * gateway@hdruk.ac.uk + + +### datasetAliases + +Dataset & BioSample alias or alternate names. + +| title | guidance | is_list | required | type | +|:--------------------------|:-------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Dataset & BioSample alias | Alternate name, acronym or other identifier for the Dataset and/or BioSamples. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]', 'null'] | + + + + +## documentation + +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. + + + + + + +### description + +A free-text description of the dataset.
A URL can also be provided as the description of the dataset.
Gateway Feature: Keywords and text may be extracted out of the description and indexed for search. + +| title | guidance | is_list | required | type | +|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------| +| Description | - An HTML account of the data that **provides context and scope** of the data, **limited to 10000 characters, and/or a resolvable URL** that describes the dataset.
- Additional information can be recorded and included using the Associated media field. | False | True | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. + + +### associatedMedia + +Please provide any media associated with the Gateway Organisation using a valid URL 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. + +| title | guidance | is_list | required | type | +|:-----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Associated media | - Please provide any media associated with the Gateway Organisation **using a valid URL** 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.
- Note: media assets should be hosted by the organisation.
- **Example**: This could be a **link to a PDF Document** that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.
- If you are providing multiple links for associated media, we recommend that you separate these with a comma. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]]', 'null'] | + +Examples: + + * PDF document that describes study protocol - https://link.to/document.pdf + + +### inPipeline + +Indicate whether this dataset is currently available for Researchers to request access. + +| title | guidance | is_list | required | type | +|:------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------| +| Dataset pipeline status | If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'. | False | False | ["Pipeline['Available','Not available']", 'null'] | + + + + +## coverage + +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. + + + + + + +### spatial + +The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:
- For locations in the UK: [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about)
- For locations in other countries: [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes) + +| title | guidance | is_list | required | type | +|:--------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| +| Geographic coverage | - The geographical area covered by the dataset.
- Please provide a valid location.
- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).
- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes). | False | True | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[hdr_schemata.definitions.HDRUK.Url.Url]'] | + +Examples: + + * United Kingdom + * https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html + + +### typicalAgeRangeMin + +Please indicate the minimum age in years of participants in the dataset as a whole number (integer). + +| title | guidance | is_list | required | type | +|:------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Minimum age range | - Please indicate the minimum of the age range in whole years of participants in the dataset.
- **What if my dataset has participants of all “All Ages” or “Any Ages”?**: In that case, please enter 0. | False | False | ['int', 'null'] | + +Examples: + + * 18 + + +### typicalAgeRangeMax + +Please indicate the maximum age in years of participants in the dataset as a whole number (integer). + +| title | guidance | is_list | required | type | +|:------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Maximum age range | - Please indicate the maximum of the age range in whole years of participants in the dataset.
- **What if my dataset has participants of all “All Ages” or “Any Ages”?**: In that case, please enter 150. | False | False | ['int', 'null'] | + +Examples: + + * 90 + + +### datasetCompleteness + +The URL where a Researcher can learn more about the completeness of the dataset. + +| title | guidance | is_list | required | type | +|:--------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Dataset coverage/completeness/quality | If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.
**Example**: https://bhfdatasciencecentre.org/dashboard/ | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://bhfdatasciencecentre.org/dashboard/ + + +### materialType + +The type of biospecimen saved from a biological entity. + +| title | guidance | is_list | required | type | +|:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Biological sample availability | Indicate the specimen type, can be several values from the list below:
- 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 samples are not yet available, please provide **“Availability to be confirmed”**.
- If samples are not available, then please provide **“Not available”**.
- **Not available**: Samples associated with the dataset are not available.
- **Bone marrow**: Bone marrow samples associated with the data are available.
- **Cancer cell lines**: Cancer cell line samples associated with the data are available.
- **CDNA/MRNA**: CDNA/MRNA samples associated with the data are available.
- **Core biopsy**: Core biopsy samples associated with the data are available.
- **DNA**: DNA samples associated with the data are available.
- **Entire body organ**: Entire body organ associated with the data are available.
- **Faeces**: Faeces samples associated with the data are available.
- **Immortalized cell lines**: Immortalized cell line samples associated with the data are available.
- **Isolated pathogen**: Isolated pathogen associated with the data are available.
- **MicroRNA**: MicroRNA samples associated with the data are available.
- **Peripheral blood cells**: Peripheral blood cell samples associated with the data are available.
- **Plasma**: Plasma samples associated with the data are available.
- **PM Tissue**: PM Tissue samples associated with the data are available.
- **Primary cells**: Primary cell samples associated with the data are available.
- **RNA**: RNA samples associated with the data are available.
- **Saliva**: Saliva samples associated with the data are available.
- **Serum**: Serum samples associated with the data are available.
- **Swabs**: Swab samples associated with the data are available.
- **Tissue**: Tissue samples associated with the data are available.
- **Urine**: Urine samples associated with the data are available.
- **Whole blood**: Whole blood samples associated with the data are available.
- **Availability to be confirmed**: Availability of samples is currently being confirmed.
- **Other**: Other types of sample available. | True | False | ["MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']"] | + + + + +### followUp + +If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed “longitudinally” i.e. new information is collected about them for a period of time afterward. This is known as the “follow up period”. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period. + +| title | guidance | is_list | required | type | +|:----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------| +| Follow-up | If known, please indicate the typical time span that a patient appears in the dataset (follow up period).
-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.
-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.
-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.
-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.
-**CONTINUOUS**: Data for patients is being regularly added to and updated.
-**UNKNOWN**: Timespan is Unknown.
-**OTHER**: Data available for a patient over another time period. | False | False | ["FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", 'null'] | + + + + +### pathway + +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. + +| title | guidance | is_list | required | type | +|:----------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| +| Patient 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. | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +## provenance + +Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness. + + + + + + +### origin + +Coverage by origin (geographical and situations). + + + + + + +#### purpose + +Please indicate the purpose(s) that the dataset was collected. + +| title | guidance | is_list | required | type | +|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------| +| Purpose of dataset collection | - **Research cohort**: Data collected for a defined group of people.
- **Study**: Data collected for a specific research study.
- **Disease registry**: Data collected as part of a disease registry.
- **Trial**: Data collected for as part of a clinical trial.
- **Care**: Data collected as part of routine clinical care.
- **Audit**: Data collected as part of an audit programme.
- **Administrative**: Data collected for administrative and management information purposes.
- **Financial**: Data collected either for payments or for billing.
- **Statutory**: Data collected in compliance with statutory requirements.
- **Other**: Data collected for other purpose. | True | False | ["PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]"] | + + + + +#### datasetType + +The topic areas to which the dataset content relates. + +| title | guidance | is_list | required | type | +|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Dataset type | Types include those listed below. Datasets can have more than one type associated.
- **Health and disease**: Includes any data related to mental health, cardiovascular, cancer, rare diseases, metabolic and endocrine, neurological, reproductive, maternity and neonatology, respiratory, immunity, musculoskeletal, vision, renal and urogenital, oral and gastrointestinal, cognitive function or hearing.
- **Treatments/Interventions**: Includes any data related to treatment or interventions related to vaccines or which are preventative or therapeutic in nature.
- **Measurements/Tests**: Includes any data related to laboratory or other diagnostics.
- **Imaging types**: Includes any data related to CT, MRI, PET, x-ray, ultrasound or pathology imaging.
- **Imaging area of the body**: Indicates whether the dataset relates to head, chest, arm abdomen or leg imaging.
- **Omics**: Includes any data related to proteomics, transcriptomics, epigenomics, metabolomics, multiomics, metagenomics or genomics.
- **Socioeconomic**: Includes any data related to education, crime and justice, ethnicity, housing, labour, ageing, economics, marital status, social support, deprivation, religion, occupation, finances or family circumstances.
- **Lifestyle**: Includes any data related to smoking, physical activity, dietary habits or alcohol.
- **Registry**: Includes any data related to disease registries for research, national disease registries, audits, or birth and deaths records.
- **Environment and energy**: Includes any data related to the monitoring or study of environmental or energy factors or events.
- **Information and communication**: Includes any data related to the study or application of information and communication.
- **Politics**: Includes any data related to political views, activities, voting, etc. | True | True | ['typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]'] | + +Examples: + + * Health and disease + + +#### source + +Please indicate the source of the data extraction. + +| title | guidance | is_list | required | type | +|:--------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------| +| Source of data extraction | - **EPR**: Data Extracted from Electronic Patient Record.
- **Electronic survey**: Data has been extracted from electronic surveys.
- **LIMS**: Data has been extracted from a laboratory information management system.
- **Paper-based**: Data has been extracted from paper forms.
- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.
- **Machine generated**: Data has been machine generated i.e. imaging.
- **Other**: Data has been extracted by other means. | True | False | ["SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']"] | + + + + +#### collectionSource + +Please indicate the setting(s) where data was collected. Multiple settings may be provided. + +| title | guidance | is_list | required | type | +|:--------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Collection source setting | - **Cohort, study, trial**: Cohort, study or trial data collection as part of protocol.
- **Clinic**: Specific clinic such as antenatal clinic.
- **Primary care - Referrals**: General medical practitioner referral to another service.
- **Primary care - Clinic**: General medical practitioner practice.
- **Primary care - Out of hours**: General medical practitioner care or advice outside of standard hours.
- **Secondary care - Accident and emergency**: Accident emergency department.
- **Secondary care - Outpatients**: Outpatient care.
- **Secondary care - In-patients**: In-patient care.
- **Secondary care - Ambulance**: Care provided in association with ambulance service.
- **Secondary care - ICU**: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).
- **Prescribing - Community pharmacy**: Pharmacy based in the community.
- **Prescribing - Community pharmacy**: Pharmacy based in a hospital setting.
- **Patient report outcome**: Reported by patient.
- **Wearables**: Data collection devices worn on the body.
- **Local authority**: Local authority or entity associated with a local authority.
- **National government**: National government or entity associated with the national government.
- **Community**: Community settings.
- **Services**: Services such as drug misuse or blood transfusion.
- **Home**: Home setting.
- **Private**: Private medical clinic.
- **Social care - Health care at home**: service provided in the home or residence of a person.
- **Social care - Other social data**: service provided in a setting outside of the person's home or residence.
- **Census**: collected as part of census.
- **Other**: Other setting. | True | False | ["SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]"] | + + + + +#### imageContrast + +Indicate whether usage of imaging contrast is captured within the dataset. + +| title | guidance | is_list | required | type | +|:---------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------| +| Image contrast | If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'. | False | False | ["Ternary['Yes','No','Not stated']", 'null'] | + + + + +### temporal + +Dates and other temporal coverage information. + + + + + + +#### publishingFrequency + +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 “on-demand” 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/ + +| title | guidance | is_list | required | type | +|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Publishing frequency | Please indicate the frequency of publishing.
- If a dataset is published regularly please choose a publishing 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 indicate when it was released.
- If a dataset is released on an irregular basis or “on-demand” 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/.

Options:
- **Static**: Dataset published once.
- **Irregular**: Dataset published at uneven intervals.
- **Continuous**: Dataset published without interruption.
- **Biennial**: Dataset published every two years.
- **Annual**: Dataset published occurs once a year.
- **Biannual**: Dataset published twice a year.
- **Quarterly**: Dataset published every three months.
- **Bimonthly**: Dataset published every two months.
- **Monthly**: Dataset published once a month.
- **Biweekly**: Dataset published every two weeks.
- **Weekly**: Dataset published once a week.
- **Twice weekly**: Dataset published twice a week.
- **Daily**: Dataset published once a day.
- **Other**: Dataset published using other interval. | False | True | ["PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]"] | + +Examples: + + * Continuous + + +#### distributionReleaseDate + +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. + +| title | guidance | is_list | required | type | +|:--------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Distribution release date | - Please indicate the frequency the dataset is published.
- If a dataset is published regularly please choose a publishing 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 indicate when it was released.
- If a dataset is released on an irregular basis or “on-demand” 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/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/) | False | False | ['date', 'datetime', 'null'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +#### startDate + +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. + +| title | guidance | is_list | required | type | +|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| +| Start date | - 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. | False | True | ['date', 'datetime'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +#### endDate + +The end of the time period that the dataset provides coverage for. If the dataset is “Continuous” 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. + +| title | guidance | is_list | required | type | +|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------| +| End date | - The end of the time period that the dataset provides coverage for.
- If the dataset is **“Continuous”** and has no known end date, **please leave blank**.
- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**. | False | False | ['date', 'datetime', "EndDateEnum['CONTINUOUS',null]", 'null'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +#### timeLag + +Please indicate the typical time-lag between an event and the data for that event appearing in the dataset. + +| title | guidance | is_list | required | type | +|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------| +| Time lag | Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.
- **Less than 1 week**: Typical time lag of less than a week.
- **1-2 weeks**: Typical time-lag of one to two weeks.
- **2-4 weeks**: Typical time-lag of two to four weeks.
- **1-2 months**: Typical time-lag of one to two months.
- **2-6 months**: Typical time-lag of two to six months.
- **6 months plus**: Typical time-lag of more than six months.
- **Variable**: Variable time-lag.
- **Not applicable**: Not Applicable i.e. static dataset.
- **Other**: Other time-lag. | False | True | ["TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']"] | + +Examples: + + * Not applicable + + +## accessibility + +Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets. + + + + + + +### usage + +This section includes information about how the data can be used and how it is currently being used. + + + + + + +#### dataUseLimitation + +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 Data Use Ontology to include a value for NO LINKAGE. + +| title | guidance | is_list | required | type | +|:--------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Data use limitation | 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.
- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.
- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).
- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.
- **No restriction**: This data use limitation indicates there is no restriction on use.
- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.
- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).
- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets | True | False | ["DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']"] | + + + + +#### dataUseRequirements + +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. + +| title | guidance | is_list | required | type | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Data use requirements | - Please indicate if there 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.
- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).
- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.
- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.
- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.
- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.
- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.
- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.
- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.
- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.
- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.
- **User-specific restriction**: This requirement indicates that use is limited to use by approved users. | True | False | ["DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']"] | + + + + +#### resourceCreator + +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. + +| title | guidance | is_list | required | type | +|:----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Citation requirements | - 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.
- To add multiple entries, please click on **'+' symbol** to enter each separate website.
- **Example**: National Services Scotland | False | False | ["ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]', 'null'] | + +Examples: + + * National Services Scotland + + +### access + +Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets. + + + + + + +#### accessRights + +Please provide details for the data access rights. + +| title | guidance | is_list | required | type | +|:--------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------| +| Access rights | - The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.
- If such a resource or the underlying process doesn’t exist, please provide “In Progress”, until both the process and the documentation are ready. | False | True | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * In Progress + + +#### accessServiceCategory + +The method a Researcher will use to access the dataset, if approved. + +| title | guidance | is_list | required | type | +|:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------| +| Access method category | Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'. | False | False | ["AccessService['TRE/SDE','Direct access','Open access','Varies based on project']", 'null'] | + +Examples: + + * TRE/SDE + + +#### accessService + +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. + +| title | guidance | is_list | required | type | +|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| 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. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://re-docs.genomicsengland.co.uk/tutorials/ + * https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/ + + +#### accessRequestCost + +Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests. + +| title | guidance | is_list | required | type | +|:--------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Access request cost | This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### deliveryLeadTime + +Please provide an indication of the typical processing times based on the types of requests typically received. + +| title | guidance | is_list | required | type | +|:-----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Time to dataset access | - **Less than 1 week**: Access request process typically processed in less than a week.
- **1-2 weeks**: Access request process typically processed in one to two weeks.
- **2-4 weeks**: Access request process typically processed in two to four weeks.
- **1-2 months**: Access request process typically processed in one to two months.
- **2-6 months**: Access request process typically processed in two to six months.
- **More than 6 months**: Access request process typically processed in more than six months.
- **Variable**: Access request lead time is variable.
- **Not applicable**: Access request process duration is not applicable.
- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose “Other” and indicate the typical timeframe within the description for the dataset. | False | False | ["DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", 'null'] | + + + + +#### jurisdiction + +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. + +| title | guidance | is_list | required | type | +|:-------------|:----------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------| +| Jurisdiction | A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/ | True | False | ["Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]"] | + + + + +#### dataController + +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. + +| title | guidance | is_list | required | type | +|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Data Controller | - 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.
- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.
- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.
- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.
- Example: NHS England | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * NHS England + + +#### dataProcessor + +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. + +| title | guidance | is_list | required | type | +|:---------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Data Processor | 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.
- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.
- If the Publisher is also the Data Controller please provide “Not Applicable”.
- Examples: Not Applicable, SAIL | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * Not Applicable + * SAIL + + +### formatAndStandards + +Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset. + + + + + + +#### vocabularyEncodingScheme + +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 “other” and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided. + +| title | guidance | is_list | required | type | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Controlled vocabulary | - 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 “other” and contact support desk to ask for an addition.
- Notes: More than one vocabulary may be provided.
- **Local**: Local Coding Standard.
- [**OPCS4**](https://digital.nhs.uk/data-and-information/information-standards/governance/latest-activity/standards-and-collections/dapb0084-opcs-classification-of-interventions-and-procedures/)
- [**READ**](https://digital.nhs.uk/services/terminology-and-classifications/read-codes)
- [**SNOMED CT**](http://www.snomed.org/)
- [**SNOMED RT**](https://confluence.ihtsdotools.org/display/DOCGLOSS/SNOMED+RT)
- [**DM+D**](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/scci0052-dictionary-of-medicines-and-devices-dm-d)
- [**NHS National Codes**](https://www.datadictionary.nhs.uk/)
- [**ODS**](https://digital.nhs.uk/services/organisation-data-service)
- [**LOINC**](https://loinc.org/)
- [**ICD10**](https://www.who.int/classifications/icd/icdonlineversions/en/)
- [**ICD10CM**](https://www.cdc.gov/nchs/icd/icd10cm.htm)
- [**ICD10PCS**](https://ec.europa.eu/eip/ageing/standards/healthcare/e-health/icd-10-pcs_en)
- [**ICD9CM**](https://www.cdc.gov/nchs/icd/icd9cm.htm)
- [**ICD9**](https://www.cdc.gov/nchs/icd/icd9.htm)
- [**ICDO3**](https://www.who.int/standards/classifications/other-classifications/international-classification-of-diseases-for-oncology)
- [**AMT**](https://www.digitalhealth.gov.au/healthcare-providers/product-releases)
- [**APC**](https://www.acep.org/administration/reimbursement/reimbursement-faqs/apc-ambulatory-payment-classifications-faq/)
- [**ATC**](https://www.whocc.no/atc_ddd_index/)
- [**CIEL**](https://github.com/OpenConceptLab/ocl_web/wiki/CIEL)
- [**HPO**](https://hpo.jax.org/app/)
- [**CPT4**](https://www.ama-assn.org/practice-management/cpt)
- [**DPD**](https://health-products.canada.ca/dpd-bdpp/index-eng.jsp)
- [**DRG**](https://www.who.int/publications/i/item/WHO-UHC-HGF-Guidance-20.10)
- [**HEMONC**](https://hemonc.org/wiki/Main_Page)
- [**JMDC**](https://www.jmdc.co.jp/en/)
- [**KCD7**](https://forums.ohdsi.org/t/adding-kcd7-code-korean-icd-10-to-the-omop-vocabulary/7576)
- [**MULTUM**](https://www.cerner.com/solutions/drug-database)
- [**NAACCR**](https://www.naaccr.org/)
- [**NDC**](https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory)
- [**NDFRT**](https://bioportal.bioontology.org/ontologies/NDFRT)
- [**OXMIS**](https://oxrisk.com/oxmis/)
- [**RXNORM**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)
- [**RXNORM EXTENSION**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)
- [**SPL**](https://www.fda.gov/industry/fda-resources-data-standards/structured-product-labeling-resources)
- **Other**: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.
- [**NHS Scotland National Codes**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)
- [**NHS Wales National Codes**](http://www.datadictionary.wales.nhs.uk/) | True | True | ["ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']"] | + +Examples: + + * LOCAL + * ICD10 + + +#### conformsTo + +List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, please make that explicit. If you are using a standard that has not been included in the list, please use “other” and contact support desk to ask for an addition. + +| title | guidance | is_list | required | type | +|:----------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Alignment with standardised data models | - List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.
- If the data is only available in a local format, please make that explicit. If you are using a standard that has not been included in the list, please use “other” and contact support desk to ask for an addition.
- [**HL7 FHIR**](https://www.hl7.org/fhir/)
- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)
- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)
- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)
- [**DICOM**](https://www.dicomstandard.org/)
- [**I2B2**](https://www.i2b2.org/)
- [**IHE**](https://www.ihe.net/resources/profiles/)
- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)
- [**openEHR**](https://www.openehr.org/)
- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)
- [**PCORnet**](https://pcornet.org/data-driven-common-model/)
- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)
- **Local**: In-house developed data model.
- **Other**: Other standardised data model.
- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)
- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)
- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/) | True | True | ["StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']"] | + +Examples: + + * LOCAL + * NHS DATA DICTIONARY + + +#### language + +This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639. + +| title | guidance | is_list | required | type | +|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Language | https://www.iso.org/iso-639-language-code
- **aa**: Afar
- **ab**: Abkhazian
- **af**: Afrikaans
- **ak**: Akan
- **sq**: Albanian
- **am**: Amharic
- **ar**: Arabic
- **an**: Aragonese
- **hy**: Armenian
- **as**: Assamese
- **av**: Avaric
- **ae**: Avestan
- **ay**: Aymara
- **az**: Azerbaijani
- **ba**: Bashkir
- **bm**: Bambara
- **eu**: Basque
- **be**: Belarusian
- **bn**: Bengali
- **bh**: Bihari languages
- **bi**: Bislama
- **bo**: Tibetan
- **bs**: Bosnian
- **br**: Breton
- **bg**: Bulgarian
- **my**: Burmese
- **ca**: Catalan; Valencian
- **cs**: Czech
- **ch**: Chamorro
- **ce**: Chechen
- **zh**: Chinese
- **cu**: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
- **cv**: Chuvash
- **kw**: Cornish
- **co**: Corsican
- **cr**: Cree
- **cy**: Welsh
- **cs**: Czech
- **da**: Danish
- **de**: German
- **dv**: Divehi; Dhivehi; Maldivian
- **nl**: Dutch; Flemish
- **dz**: Dzongkha
- **el**: Greek, Modern (1453-)
- **en**: English
- **eo**: Esperanto
- **et**: Estonian
- **eu**: Basque
- **ee**: Ewe
- **fo**: Faroese
- **fa**: Persian
- **fj**: Fijian
- **fi**: Finnish
- **fr**: French
- **fy**: Western Frisian
- **ff**: Fulah
- **ka**: Georgian
- **de**: German
- **gd**: Gaelic; Scottish Gaelic
- **ga**: Irish
- **gl**: Galician
- **gv**: Manx
- **el**: Greek, Modern (1453-)
- **gn**: Guarani
- **gu**: Gujarati
- **ht**: Haitian; Haitian Creole
- **ha**: Hausa
- **ho**: Hiri Motu
- **hr**: Croatian
- **hu**: Hungarian
- **hy**: Armenian
- **ig**: Igbo
- **is**: Icelandic
- **io**: Ido
- **ii**: Sichuan Yi; Nuosu
- **iu**: Inuktitut
- **ie**: Interlingue; Occidental
- **ia**: Interlingua (International Auxiliary Language Association)
- **id**: Indonesian
- **ik**: Inupiaq
- **is**: Icelandic
- **it**: Italian
- **jv**: Javanese
- **ja**: Japanese
- **kl**: Kalaallisut; Greenlandic
- **kn**: Kannada
- **ks**: Kashmiri
- **ka**: Georgian
- **kr**: Kanuri
- **kk**: Kazakh
- **km**: Central Khmer
- **ki**: Kikuyu; Gikuyu
- **rw**: Kinyarwanda
- **ky**: Kirghiz; Kyrgyz
- **kv**: Komi
- **kg**: Kongo
- **ko**: Korean
- **kj**: Kuanyama; Kwanyama
- **ku**: Kurdish
- **lo**: Lao
- **la**: Latin
- **lv**: Latvian
- **li**: Limburgan; Limburger; limburgish
- **ln**: Lingala
- **lt**: Lithuanian
- **lb**: Luxembourgish; Letzeburgesch
- **lu**: Luba-Katanga
- **lg**: Ganda
- **mk**: Macedonian
- **mh**: Marshallese
- **ml**: Malayalam
- **mi**: Maori
- **mr**: Marathi
- **ms**: Malay
- **mk**: Macedonian
- **mg**: Malagasy
- **mt**: Maltese
- **mn**: Mongolian
- **mi**: Maori
- **ms**: Malay
- **my**: Burmese
- **na**: Nauru
- **nv**: Navajo; Navaho
- **nr**: Ndebele, South; South Ndebele
- **nd**: Ndebele, North; North Ndebele
- **ng**: Ndonga
- **ne**: Nepali
- **nl**: Dutch; Flemish
- **nn**: Norwegian Nynorsk; Nynorsk, Norwegian
- **nb**: Bokmål, Norwegian; Norwegian Bokmål
- **no**: Norwegian
- **ny**: Chichewa; Chewa; Nyanja
- **oc**: Occitan (post 1500)
- **oj**: Ojibwa
- **or**: Oriya
- **om**: Oromo
- **os**: Ossetian; Ossetic
- **pa**: Panjabi; Punjabi
- **fa**: Persian
- **pi**: Pali
- **pl**: Polish
- **pt**: Portuguese
- **ps**: Pushto; Pashto
- **qu**: Quechua
- **rm**: Romansh
- **ro**: Romanian; Moldavian; Moldovan
- **rn**: Rundi
- **ru**: Russian
- **sg**: Sango
- **sa**: Sanskrit
- **si**: Sinhala; Sinhalese
- **sk**: Slovak
- **sl**: Slovenian
- **se**: Northern Sami
- **sm**: Samoan
- **sn**: Shona
- **sd**: Sindhi
- **so**: Somali
- **st**: Sotho, Southern
- **es**: Spanish; Castilian
- **sq**: Albanian
- **sc**: Sardinian
- **sr**: Serbian
- **ss**: Swati
- **su**: Sundanese
- **sw**: Swahili
- **sv**: Swedish
- **ty**: Tahitian
- **ta**: Tamil
- **tt**: Tatar
- **te**: Telugu
- **tg**: Tajik
- **tl**: Tagalog
- **th**: Thai
- **bo**: Tibetan
- **ti**: Tigrinya
- **to**: Tonga (Tonga Islands)
- **tn**: Tswana
- **ts**: Tsonga
- **tk**: Turkmen
- **tr**: Turkish
- **tw**: Twi
- **ug**: Uighur; Uyghur
- **uk**: Ukrainian
- **ur**: Urdu
- **uz**: Uzbek
- **ve**: Venda
- **vi**: Vietnamese
- **vo**: Volapük
- **cy**: Welsh
- **wa**: Walloon
- **wo**: Wolof
- **xh**: Xhosa
- **yi**: Yiddish
- **yo**: Yoruba
- **za**: Zhuang; Chuang
- **zh**: Chinese
- **zu**: Zulu | True | True | ["LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']"] | + +Examples: + + * en + + +#### format + +If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format. + +| title | guidance | is_list | required | type | +|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------| +| Format | - If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, .
- Please **enter one format type at a time** and click **Add New Field** to add further keywords.
- Note: If your file format is not included in the current list of formats, please indicate other.
- **Example**: text/tab-separated-values, application/sql, text/csv, image/diacom-rle | True | True | ["Format[{'minLength': 1, 'type': 'string'}]"] | + +Examples: + + * text/tab-separated-values + * application/sql + * text/csv + * image/diacom-rle + + +## enrichmentAndLinkage + +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. + + + + + + +### derivedFrom + +If applicable, please provide DOIs or links to datasets from which data in this dataset has been derived or calculated from. + + + + + + +#### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### isPartOf + +This relationship indicates that the dataset is a component or subset of a broader collection of related datasets. For example, clinical trial data for a specific drug may be part of a larger database of pharmaceutical research data. Complete only if the dataset is part of a group or family of datasets i.e. Hospital Episode Statistics has several constituents. If your dataset is not part of a group, please enter “NOT APPLICABLE” **Example**: Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS). + + + +Examples: + + * Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS) + + +#### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### linkableDatasets + +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. + + + + + + +#### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### similarToDatasets + +Datasets that are similar to each other in some way, collect similar patients, regional equivalent etc. + + + + + + +#### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +#### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### investigations + +Please provide link to any active projects that are using the dataset. + +| title | guidance | is_list | required | type | +|:---------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Investigations | - Please provide the website address(es) which document information related to active projects utilising the dataset.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each website and press enter to add it to the list.
- **Example**: | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | + + + + +### tools + +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/ + +| title | guidance | is_list | required | type | +|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Tools | - 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/ | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | + + + + +### publicationAboutDataset + +DOIs for publications which describe the dataset. + +| title | guidance | is_list | required | type | +|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Publication about the dataset | - Please provide the DOIs for publications which describe the dataset.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each citation and press enter to add it to the list.
- **Example**: <10.1093/ije/dyab028> | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * 10.1093/ije/dyab028 + + +### publicationUsingDataset + +DOIs for publications which use the dataset for analysis. + +| title | guidance | is_list | required | type | +|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Publication using the dataset | - Please provide the DOIs for publications which have used the dataset in their analysis.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each citation and press enter to add it to the list.
- **Example**: <10.1001/jamapediatrics.2016.3633> | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * 10.1001/jamapediatrics.2016.3633 + + +## observations + +This section provides an overview of observations of your dataset linked to specific points in time. Multiple observations about the dataset are encouraged to be provided, including multiple observations of the same property at different timepoints. At least one observation is required. + + + + + + +### observedNode + +Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality. + +| title | guidance | is_list | required | type | +|:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------| +| Dataset volume measure | - **Persons**: Unique persons recorded in the dataset
- **Events**: Unique events such as procedures and prescriptions within the dataset
-**Findings**: Unique findings included in the dataset such as diagnoses'
-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays) | False | True | ["StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']"] | + +Examples: + + * Persons + + +### measuredValue + +An integer value size of the measured property, such as ‘1000’ for 1000 people in the study or ‘87’ for 87 MRI scans in the dataset. + +| title | guidance | is_list | required | type | +|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| +| Measured value | An integer value size of the measured property, such as ‘1000’ for 1000 people in the study or ‘87’ for 87 MRI scans in the dataset. | False | True | ['int'] | + +Examples: + + * 1000 + + +### disambiguatingDescription + +If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters. + +| title | guidance | is_list | required | type | +|:---------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Disambiguating description | If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. | False | False | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### observationDate + +Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000. + +| title | guidance | is_list | required | type | +|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| +| Observation date | Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000. | False | True | ['date', 'datetime'] | + +Examples: + + * 2024-10-24 + + +### measuredProperty + +Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term. + +| title | guidance | is_list | required | type | +|:------------------|:--------------------------------------------------------|:----------|:-----------|:-------------------------| +| Measured property | Descriptive term for the observation property measured. | False | True | ['MeasuredProperty[{}]'] | + +Examples: + + * Count + + +## structuralMetadata + +Descriptions of all tables and data elements that can be included in the dataset + + + + + + +### tables + +Tables in the dataset + + + + + + +#### name + +The name of a table in a dataset. + +| title | guidance | is_list | required | type | +|:-----------|:-----------|:----------|:-----------|:----------------| +| Table Name | | False | False | ['str', 'null'] | + + + + +#### description + +A description of a table in a dataset. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------| +| Table Description' | | False | False | ['str', 'null'] | + + + + +#### size + +Number of Complete Entries. + +| title | guidance | is_list | required | type | +|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Table size | Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete. | False | False | ['int', 'null'] | + + + + +#### columns + +A list of columns contained within a table in a dataset. + + + + + + +##### name + +The name of a column in a table. + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:-------------| +| Column name | | False | True | ['Name[{}]'] | + + + + +##### dataType + +The data type of values in the column. + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:--------| +| Data type | | False | True | ['str'] | + + + + +##### description + +A description of a column in a table. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------| +| Column description | | False | False | ['str', 'null'] | + + + + +##### sensitive + +A True or False value, indicating if the field is sensitive or not. + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:---------| +| Sensitive | | False | True | ['bool'] | + + + + +##### values + +Values in a dataset. + + + + + + +###### name + +Unique value in a column. + +| title | guidance | is_list | required | type | +|:-----------|:-----------|:----------|:-----------|:-------------| +| Value name | | False | True | ['Name[{}]'] | + + + + +###### description + +A description of a unique value in a column. + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:----------------| +| Value description | | False | False | ['str', 'null'] | + + + + +###### frequency + +The frequency of occurrance of a value in a column. + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:----------------| +| Value frequency | | False | False | ['int', 'null'] | + + + + +### syntheticDataWebLink + +Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.
- Please split your existing list of citations into separate fields.
- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.
- **Example**: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/ + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Synthetic data web links | | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | + + + + +## demographicFrequency + +The statistical characteristics of a population or group within the dataset. + + + + + + +### age + +Array of bins, based off the UK Office for National Statistics (ONS) groupings, and their corresponding counts as represented within the dataset. + + + + + + +#### bin + +None + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Age grouping | | False | True | ["AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']"] | + +Examples: + + * 30-34 years + + +#### count + +None + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:--------| +| Age count | | False | True | ['int'] | + +Examples: + + * 1000 + + +### ethnicity + +Array of bins, based off the UK Office for National Statistics (ONS) census groupings, and their corresponding counts as represented within the dataset. + + + + + + +#### bin + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Ethnicity grouping | | False | True | ["EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']"] | + +Examples: + + * Black or Black British - Any other Black background + + +#### count + +None + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:--------| +| Ethnicity count | | False | True | ['int'] | + +Examples: + + * 1000 + + +### disease + +Array of health conditions or diseases (based around ICD-10, SNOMED CT and MeSH disease vocabularies) and their corresponding counts as represented within the dataset. + + + + + + +#### diseaseCode + +None + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:---------------| +| Disease code | | False | True | ['str', 'int'] | + +Examples: + + * J45 + + +#### diseaseCodeVocabulary + +None + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:------------------------------------------------| +| Disease code vocabulary | | False | True | ["DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']"] | + +Examples: + + * ICD10 + + +#### count + +None + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:--------| +| Disease count | | False | True | ['int'] | + +Examples: + + * 1000 + + +## omics + +Omics + + + + + + +### assay + +The specific 'omics assay that generated the dataset. + +| title | guidance | is_list | required | type | +|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Omics assay | The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry. | False | False | ["Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", 'null'] | + + + + +### platform + +The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. + +| title | guidance | is_list | required | type | +|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------------| +| Omics Platform | The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. | False | False | ["Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", 'null'] | + + + + +## icons + +Calculated categorization icons added during export. + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Icons | | False | False | ["Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", 'null'] | + + + + +## project + +None + + + + + + +### projectName + +May or may not be different to the Dataset Title + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Project Title | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +### leadResearcher + + + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Lead Researcher | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + +Examples: + + * Dr Smith + + +### leadResearchInstitute + + + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Lead Research Institute | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + +Examples: + + * Sussex University + + +### grantNumbers + +List of grant numbers separated by a line break + +| title | guidance | is_list | required | type | +|:----------------|:--------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------| +| Grant number(s) | Normally specified on the grant acceptance letter | False | False | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * A354t + * ropguadg + + +### projectStartDate + +Starting date of project grant. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Project Start Date | Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection | False | False | ['date', 'datetime', 'null'] | + + + + +### projectEndDate + +Current end date of project grant. + +| title | guidance | is_list | required | type | +|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Project End Date | Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection | False | False | ['date', 'datetime', 'null'] | + + + + +### projectScope + +data and biospecimens expected to result from the grant. + +| title | guidance | is_list | required | type | +|:--------------|:---------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Project Scope | Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered | False | False | ['str', 'null'] | + +Examples: + + * Longitudinal genomic data including somatic mutations + + +## datasetFilters + +Categorization tags regarding cancer type, data type, and access. + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| | | False | False | ["DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", 'null'] | + + + + +## erd + +Visual representation of data table relationships. + + + + + + +### image + +An image file. + +| title | guidance | is_list | required | type | +|:--------|:---------------------------------------------------------|:----------|:-----------|:----------------| +| Image | Upload an image file (PNG, JPG, SVG) Max file size: 5MB. | False | False | ['str', 'null'] | + + + + +### description + +None + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| +| | | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | diff --git a/docs/CRUK/1.0.0.structure.json b/docs/CRUK/1.0.0.structure.json new file mode 100644 index 00000000..f4fe5913 --- /dev/null +++ b/docs/CRUK/1.0.0.structure.json @@ -0,0 +1,2090 @@ +[ + { + "name": "identifier", + "required": true, + "title": "Dataset identifier", + "description": "System dataset identifier.", + "guidance": "N/A", + "examples": [ + "226fb3f1-4471-400a-8c39-2b66d46a39b6", + "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" + ], + "type": [ + "Uuidv4[{'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}$', 'type': 'string'}]", + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "version", + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version.", + "guidance": "Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.Major: Significant/breaking changes.Minor: New features and bug fixes.Patch: Minor fixes without new features.", + "examples": [ + "1.1.0" + ], + "type": [ + "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "revisions", + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "guidance": "", + "examples": null, + "type": [ + "Revision" + ], + "is_list": true, + "is_optional": false, + "subItems": [ + { + "name": "version", + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "guidance": "", + "examples": [ + "6.0.0" + ], + "type": [ + "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "guidance": "", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "issued", + "required": true, + "title": "Metadata Issued Datetime", + "description": "Datetime stamp of when this metadata version was initially issued", + "guidance": "", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "modified", + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "guidance": "", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "summary", + "required": true, + "title": "Summary", + "description": "Summary of metadata describing key pieces of information.", + "guidance": "", + "examples": null, + "type": [ + "Summary" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "title", + "required": true, + "title": "Title", + "description": "The main title of the dataset", + "guidance": "The title 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.- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.- Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.- Example: North West London COVID-19 Patient Level Situation Report", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "funders", + "required": true, + "title": "Funded by", + "description": "List of Funders separated by a line break", + "guidance": "Put each funder on a new line", + "examples": [ + "CRUK", + "University of Sussex" + ], + "type": [ + "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "abstract", + "required": true, + "title": "Abstract", + "description": "Longer abstract detailing the dataset.", + "guidance": "The abstract should 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.- Effective abstracts should avoid long sentences and abbreviations where possible.- Note: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.- Abstracts should be different from the full description for a dataset.- Example: 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.", + "examples": [ + "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + ], + "type": [ + "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "dataCustodian", + "required": true, + "title": "Dataset Custodian", + "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", + "guidance": "", + "examples": null, + "type": [ + "Organisation" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "identifier", + "required": true, + "title": "identifier", + "description": "Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation.", + "guidance": "Example: https://ror.org/053fq8t95If your organisation does not have a ROR identifier please use the \u201csuggest and institute\u201d function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform", + "examples": [ + "30f16703-28bc-4f45-9ce5-625d2d3db27d" + ], + "type": [ + "str", + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "name", + "required": true, + "title": "Name of Data Custodian", + "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", + "guidance": "In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank.", + "examples": [ + "Health Data Research UK" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "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. If a logo is not submitted this will default to the logo for the team submitting the metadata.", + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "description", + "required": false, + "title": "Organisation Description", + "description": "Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata.", + "guidance": "", + "examples": null, + "type": [ + "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "contactPoint", + "required": true, + "title": "contact point", + "description": "Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata.", + "guidance": "", + "examples": [ + "test@test.co.uk" + ], + "type": [ + "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", + "typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "memberOf", + "required": false, + "title": "Organisation Membership", + "description": "Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata.", + "guidance": "", + "examples": null, + "type": [ + "MemberOfV2['Hub','Alliance','Other','NCS']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "populationSize", + "required": true, + "title": "Population size", + "description": "Summary population size of the cohort", + "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the Observations fields. The filter also allows for Researchers to search datasets which have no population size reported, but will not pull any population size captured in the Observations section.", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "keywords", + "required": false, + "title": "Keywords", + "description": "Comma separated key words associated to this dataset.", + "guidance": "Please provide relevant and specific keywords that can improve the search engine optimization of your dataset.- Please enter one keyword at a time and click Add New Field to add further keywords.- Text from the title is automatically included in the search, there is no need to include this in the keywords.- Include words that researcher may include in their searches.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "doiName", + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "guidance": "Please note: This is not the DOI of the publication(s) associated with the dataset.- All HDR UK registered datasets should either have a (DOI) or be working towards obtaining one.- If a DOI is available, please provide the DOI.- What happens if I do not have a DOI?: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", + "examples": [ + "10.1093/ije/dyx196" + ], + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "contactPoint", + "required": true, + "title": "Contact Point", + "description": "email of a person who can be the main contact point of this dataset", + "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.Note: An employee's email address can only be provided on a temporary basis and if one is provided, you must obtain explicit consent for this purpose.", + "examples": [ + "gateway@hdruk.ac.uk" + ], + "type": [ + "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "datasetAliases", + "required": false, + "title": "Dataset & BioSample alias", + "description": "Dataset & BioSample alias or alternate names.", + "guidance": "Alternate name, acronym or other identifier for the Dataset and/or BioSamples.", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "Documentation", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "description", + "required": true, + "title": "Description", + "description": "A free-text description of the dataset.A URL can also be provided as the description of the dataset.Gateway Feature: Keywords and text may be extracted out of the description and indexed for search.", + "guidance": "An HTML account of the data that provides context and scope of the data, limited to 10000 characters, and/or a resolvable URL that describes the dataset.- Additional information can be recorded and included using the Associated media field.", + "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." + ], + "type": [ + "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "associatedMedia", + "required": false, + "title": "Associated media", + "description": "Please provide any media associated with the Gateway Organisation using a valid URL 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.", + "guidance": "Please provide any media associated with the Gateway Organisation using a valid URL 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.- Note: media assets should be hosted by the organisation.Example: This could be a link to a PDF Document that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.- If you are providing multiple links for associated media, we recommend that you separate these with a comma.", + "examples": [ + "PDF document that describes study protocol - https://link.to/document.pdf" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "inPipeline", + "required": false, + "title": "Dataset pipeline status", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "guidance": "If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'.", + "examples": null, + "type": [ + "Pipeline['Available','Not available']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "Coverage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "spatial", + "required": true, + "title": "Geographic coverage", + "description": "The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:- For locations in the UK: ONS standards- For locations in other countries: ISO 3166-1 & ISO 3166-2", + "guidance": "The geographical area covered by the dataset.- Please provide a valid location.- For locations in the UK, this location should conform to ONS standards.- For locations in other countries we use ISO 3166-1 & ISO 3166-2.", + "examples": [ + "United Kingdom", + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "typing.List[hdr_schemata.definitions.HDRUK.Url.Url]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "typicalAgeRangeMin", + "required": false, + "title": "Minimum age range", + "description": "Please indicate the minimum age in years of participants in the dataset as a whole number (integer).", + "guidance": "Please indicate the minimum of the age range in whole years of participants in the dataset.- What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?: In that case, please enter 0.", + "examples": [ + 18 + ], + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "typicalAgeRangeMax", + "required": false, + "title": "Maximum age range", + "description": "Please indicate the maximum age in years of participants in the dataset as a whole number (integer).", + "guidance": "Please indicate the maximum of the age range in whole years of participants in the dataset.- What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?: In that case, please enter 150.", + "examples": [ + 90 + ], + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "datasetCompleteness", + "required": false, + "title": "Dataset coverage/completeness/quality", + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.Example: https://bhfdatasciencecentre.org/dashboard/", + "examples": [ + "https://bhfdatasciencecentre.org/dashboard/" + ], + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "materialType", + "required": false, + "title": "Biological sample availability", + "description": "The type of biospecimen saved from a biological entity.", + "guidance": "Indicate the specimen type, can be several values from the list below:- 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 samples are not yet available, please provide \u201cAvailability to be confirmed\u201d.- If samples are not available, then please provide \u201cNot available\u201d.- Not available: Samples associated with the dataset are not available.- Bone marrow: Bone marrow samples associated with the data are available.- Cancer cell lines: Cancer cell line samples associated with the data are available.- CDNA/MRNA: CDNA/MRNA samples associated with the data are available.- Core biopsy: Core biopsy samples associated with the data are available.- DNA: DNA samples associated with the data are available.- Entire body organ: Entire body organ associated with the data are available.- Faeces: Faeces samples associated with the data are available.- Immortalized cell lines: Immortalized cell line samples associated with the data are available.- Isolated pathogen: Isolated pathogen associated with the data are available.- MicroRNA: MicroRNA samples associated with the data are available.- Peripheral blood cells: Peripheral blood cell samples associated with the data are available.- Plasma: Plasma samples associated with the data are available.- PM Tissue: PM Tissue samples associated with the data are available.- Primary cells: Primary cell samples associated with the data are available.- RNA: RNA samples associated with the data are available.- Saliva: Saliva samples associated with the data are available.- Serum: Serum samples associated with the data are available.- Swabs: Swab samples associated with the data are available.- Tissue: Tissue samples associated with the data are available.- Urine: Urine samples associated with the data are available.- Whole blood: Whole blood samples associated with the data are available.- Availability to be confirmed: Availability of samples is currently being confirmed.- Other: Other types of sample available.", + "examples": null, + "type": [ + "MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "followUp", + "required": false, + "title": "Follow-up", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed \u201clongitudinally\u201d i.e. new information is collected about them for a period of time afterward. This is known as the \u201cfollow up period\u201d. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period.", + "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).-0 - 6 MONTHS: Data typically available for a patient over a 0-6 month period.-6 - 12 MONTHS: Data typically available for a patient over a 6-12 month period.-1 - 10 YEARS: Data typically available for a patient over a 1-10 year period.-> 10 YEARS: Data typically available for a patient for over a 10 year period.-CONTINUOUS: Data for patients is being regularly added to and updated.-UNKNOWN: Timespan is Unknown.-OTHER: Data available for a patient over another time period.", + "examples": null, + "type": [ + "FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "pathway", + "required": false, + "title": "Patient pathway description", + "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.", + "guidance": "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, + "type": [ + "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "Provenance", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "origin", + "required": false, + "title": "Origin Coverage", + "description": "Coverage by origin (geographical and situations).", + "guidance": "", + "examples": null, + "type": [ + "Origin", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "purpose", + "required": false, + "title": "Purpose of dataset collection", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "guidance": "Research cohort: Data collected for a defined group of people.- Study: Data collected for a specific research study.- Disease registry: Data collected as part of a disease registry.- Trial: Data collected for as part of a clinical trial.- Care: Data collected as part of routine clinical care.- Audit: Data collected as part of an audit programme.- Administrative: Data collected for administrative and management information purposes.- Financial: Data collected either for payments or for billing.- Statutory: Data collected in compliance with statutory requirements.- Other: Data collected for other purpose.", + "examples": null, + "type": [ + "PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "datasetType", + "required": true, + "title": "Dataset type", + "description": "The topic areas to which the dataset content relates.", + "guidance": "Types include those listed below. Datasets can have more than one type associated.- Health and disease: Includes any data related to mental health, cardiovascular, cancer, rare diseases, metabolic and endocrine, neurological, reproductive, maternity and neonatology, respiratory, immunity, musculoskeletal, vision, renal and urogenital, oral and gastrointestinal, cognitive function or hearing.- Treatments/Interventions: Includes any data related to treatment or interventions related to vaccines or which are preventative or therapeutic in nature.- Measurements/Tests: Includes any data related to laboratory or other diagnostics.- Imaging types: Includes any data related to CT, MRI, PET, x-ray, ultrasound or pathology imaging.- Imaging area of the body: Indicates whether the dataset relates to head, chest, arm abdomen or leg imaging.- Omics: Includes any data related to proteomics, transcriptomics, epigenomics, metabolomics, multiomics, metagenomics or genomics.- Socioeconomic: Includes any data related to education, crime and justice, ethnicity, housing, labour, ageing, economics, marital status, social support, deprivation, religion, occupation, finances or family circumstances.- Lifestyle: Includes any data related to smoking, physical activity, dietary habits or alcohol.- Registry: Includes any data related to disease registries for research, national disease registries, audits, or birth and deaths records.- Environment and energy: Includes any data related to the monitoring or study of environmental or energy factors or events.- Information and communication: Includes any data related to the study or application of information and communication.- Politics: Includes any data related to political views, activities, voting, etc.", + "examples": [ + "Health and disease" + ], + "type": [ + "typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]" + ], + "is_list": true, + "is_optional": false, + "subItems": [] + }, + { + "name": "source", + "required": false, + "title": "Source of data extraction", + "description": "Please indicate the source of the data extraction.", + "guidance": "EPR: Data Extracted from Electronic Patient Record.- Electronic survey: Data has been extracted from electronic surveys.- LIMS: Data has been extracted from a laboratory information management system.- Paper-based: Data has been extracted from paper forms.- Free text NLP: Data has been extracted from unstructured freetext using natural language processing.- Machine generated: Data has been machine generated i.e. imaging.- Other: Data has been extracted by other means.", + "examples": null, + "type": [ + "SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "collectionSource", + "required": false, + "title": "Collection source setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided.", + "guidance": "Cohort, study, trial: Cohort, study or trial data collection as part of protocol.- Clinic: Specific clinic such as antenatal clinic.- Primary care - Referrals: General medical practitioner referral to another service.- Primary care - Clinic: General medical practitioner practice.- Primary care - Out of hours: General medical practitioner care or advice outside of standard hours.- Secondary care - Accident and emergency: Accident emergency department.- Secondary care - Outpatients: Outpatient care.- Secondary care - In-patients: In-patient care.- Secondary care - Ambulance: Care provided in association with ambulance service.- Secondary care - ICU: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).- Prescribing - Community pharmacy: Pharmacy based in the community.- Prescribing - Community pharmacy: Pharmacy based in a hospital setting.- Patient report outcome: Reported by patient.- Wearables: Data collection devices worn on the body.- Local authority: Local authority or entity associated with a local authority.- National government: National government or entity associated with the national government.- Community: Community settings.- Services: Services such as drug misuse or blood transfusion.- Home: Home setting.- Private: Private medical clinic.- Social care - Health care at home: service provided in the home or residence of a person.- Social care - Other social data: service provided in a setting outside of the person's home or residence.- Census: collected as part of census.- Other: Other setting.", + "examples": null, + "type": [ + "SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "imageContrast", + "required": false, + "title": "Image contrast", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", + "examples": null, + "type": [ + "Ternary['Yes','No','Not stated']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "temporal", + "required": true, + "title": "Temporal Coverage", + "description": "Dates and other temporal coverage information.", + "guidance": "", + "examples": null, + "type": [ + "Temporal" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "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/", + "guidance": "Please indicate the frequency of publishing.- If a dataset is published regularly please choose a publishing 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 indicate 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/. Options:- Static: Dataset published once.- Irregular: Dataset published at uneven intervals.- Continuous: Dataset published without interruption.- Biennial: Dataset published every two years.- Annual: Dataset published occurs once a year.- Biannual: Dataset published twice a year.- Quarterly: Dataset published every three months.- Bimonthly: Dataset published every two months.- Monthly: Dataset published once a month.- Biweekly: Dataset published every two weeks.- Weekly: Dataset published once a week.- Twice weekly: Dataset published twice a week.- Daily: Dataset published once a day.- Other: Dataset published using other interval.", + "examples": [ + "Continuous" + ], + "type": [ + "PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "distributionReleaseDate", + "required": false, + "title": "Distribution 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.", + "guidance": "Please indicate the frequency the dataset is published.- If a dataset is published regularly please choose a publishing 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 indicate 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": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "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.", + "guidance": "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": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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.", + "guidance": "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 leave blank.- If there are multiple cohorts in the dataset with varying end dates, please provide the latest date.", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime", + "EndDateEnum['CONTINUOUS',null]", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "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.", + "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.- Less than 1 week: Typical time lag of less than a week.- 1-2 weeks: Typical time-lag of one to two weeks.- 2-4 weeks: Typical time-lag of two to four weeks.- 1-2 months: Typical time-lag of one to two months.- 2-6 months: Typical time-lag of two to six months.- 6 months plus: Typical time-lag of more than six months.- Variable: Variable time-lag.- Not applicable: Not Applicable i.e. static dataset.- Other: Other time-lag.", + "examples": [ + "Not applicable" + ], + "type": [ + "TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']" + ], + "is_list": false, + "is_optional": false + } + ] + } + ] + }, + { + "name": "accessibility", + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "guidance": "", + "examples": null, + "type": [ + "Accessibility" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "usage", + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used.", + "guidance": "", + "examples": null, + "type": [ + "Usage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "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 Data Use Ontology to include a value for NO LINKAGE.", + "guidance": "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.- General research use: This data use limitation indicates that use is allowed for general research use for any research purpose.- Genetic studies only: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).- No general methods research: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.- No restriction: This data use limitation indicates there is no restriction on use.- Research-specific restrictions: This data use limitation indicates that use is limited to studies of a certain research type.- Research use only: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).- No linkage: This data use limitation indicates there is a restriction on linking to any other datasets", + "examples": null, + "type": [ + "DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "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.", + "guidance": "Please indicate if there 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.- Collaboration required: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).- Ethics approval required: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.- Geographical restrictions: This requirement indicates that use is limited to within a specific geographic region.- Institution-specific restrictions: This requirement indicates that use is limited to use within an approved institution.- Not for profit use: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.- Project-specific restrictions: This requirement indicates that use is limited to use within an approved project.- Publication moratorium: This requirement indicates that requestor agrees not to publish results of studies until a specific date.- Publication required: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.- Return to database or resource: This requirement indicates that the requestor must return derived/enriched data to the database/resource.- Time limit on use: This requirement indicates that use is approved for a specific number of months.- User-specific restriction: This requirement indicates that use is limited to use by approved users.", + "examples": null, + "type": [ + "DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']" + ], + "is_list": true, + "is_optional": true + }, + { + "name": "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.", + "guidance": "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.- To add multiple entries, please click on '+' symbol to enter each separate website.- Example: National Services Scotland", + "examples": [ + "National Services Scotland" + ], + "type": [ + "ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "access", + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "guidance": "", + "examples": null, + "type": [ + "Access" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "accessRights", + "required": true, + "title": "Access rights", + "description": "Please provide details for the data access rights.", + "guidance": "The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", + "examples": [ + "In Progress" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "accessServiceCategory", + "required": false, + "title": "Access method category", + "description": "The method a Researcher will use to access the dataset, if approved.", + "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", + "examples": [ + "TRE/SDE" + ], + "type": [ + "AccessService['TRE/SDE','Direct access','Open access','Varies based on project']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "accessService", + "required": false, + "title": "Access service description", + "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.", + "guidance": "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://re-docs.genomicsengland.co.uk/tutorials/", + "https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "accessRequestCost", + "required": false, + "title": "Access request cost", + "description": "Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests.", + "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", + "examples": null, + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "deliveryLeadTime", + "required": false, + "title": "Time to dataset access", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "guidance": "Less than 1 week: Access request process typically processed in less than a week.- 1-2 weeks: Access request process typically processed in one to two weeks.- 2-4 weeks: Access request process typically processed in two to four weeks.- 1-2 months: Access request process typically processed in one to two months.- 2-6 months: Access request process typically processed in two to six months.- More than 6 months: Access request process typically processed in more than six months.- Variable: Access request lead time is variable.- Not applicable: Access request process duration is not applicable.- Other: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", + "examples": null, + "type": [ + "DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "jurisdiction", + "required": false, + "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.", + "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", + "examples": null, + "type": [ + "Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "dataController", + "required": false, + "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.", + "guidance": "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.- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.- Example: NHS England", + "examples": [ + "NHS England" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "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.- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.- Examples: Not Applicable, SAIL", + "examples": [ + "Not Applicable", + "SAIL" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "FormatAndStandards", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "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.", + "guidance": "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.- Local: Local Coding Standard.- OPCS4- READ- SNOMED CT- SNOMED RT- DM+D- NHS National Codes- ODS- LOINC- ICD10- ICD10CM- ICD10PCS- ICD9CM- ICD9- ICDO3- AMT- APC- ATC- CIEL- HPO- CPT4- DPD- DRG- HEMONC- JMDC- KCD7- MULTUM- NAACCR- NDC- NDFRT- OXMIS- RXNORM- RXNORM EXTENSION- SPL- Other: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.- NHS Scotland National Codes- NHS Wales National Codes", + "examples": [ + "LOCAL", + "ICD10" + ], + "type": [ + "ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']" + ], + "is_list": true, + "is_optional": false + }, + { + "name": "conformsTo", + "required": true, + "title": "Alignment with standardised data models", + "description": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, 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.", + "guidance": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.- If the data is only available in a local format, 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.- HL7 FHIR- HL7 V2- HL7 CDA- HL7 CCOW- DICOM- I2B2- IHE- OMOP- openEHR- Sentinel- PCORnet- CDISC- Local: In-house developed data model.- Other: Other standardised data model.- NHS Data Dictionary- NHS Scotland Data Dictionary- NHS Wales Data Dictionary", + "examples": [ + "LOCAL", + "NHS DATA DICTIONARY" + ], + "type": [ + "StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']" + ], + "is_list": true, + "is_optional": false + }, + { + "name": "language", + "required": true, + "title": "Language", + "description": "This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639.", + "guidance": "https://www.iso.org/iso-639-language-code- aa: Afar- ab: Abkhazian- af: Afrikaans- ak: Akan- sq: Albanian- am: Amharic- ar: Arabic- an: Aragonese- hy: Armenian- as: Assamese- av: Avaric- ae: Avestan- ay: Aymara- az: Azerbaijani- ba: Bashkir- bm: Bambara- eu: Basque- be: Belarusian- bn: Bengali- bh: Bihari languages- bi: Bislama- bo: Tibetan- bs: Bosnian- br: Breton- bg: Bulgarian- my: Burmese- ca: Catalan; Valencian- cs: Czech- ch: Chamorro- ce: Chechen- zh: Chinese- cu: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic- cv: Chuvash- kw: Cornish- co: Corsican- cr: Cree- cy: Welsh- cs: Czech- da: Danish- de: German- dv: Divehi; Dhivehi; Maldivian- nl: Dutch; Flemish- dz: Dzongkha- el: Greek, Modern (1453-)- en: English- eo: Esperanto- et: Estonian- eu: Basque- ee: Ewe- fo: Faroese- fa: Persian- fj: Fijian- fi: Finnish- fr: French- fy: Western Frisian- ff: Fulah- ka: Georgian- de: German- gd: Gaelic; Scottish Gaelic- ga: Irish- gl: Galician- gv: Manx- el: Greek, Modern (1453-)- gn: Guarani- gu: Gujarati- ht: Haitian; Haitian Creole- ha: Hausa- ho: Hiri Motu- hr: Croatian- hu: Hungarian- hy: Armenian- ig: Igbo- is: Icelandic- io: Ido- ii: Sichuan Yi; Nuosu- iu: Inuktitut- ie: Interlingue; Occidental- ia: Interlingua (International Auxiliary Language Association)- id: Indonesian- ik: Inupiaq- is: Icelandic- it: Italian- jv: Javanese- ja: Japanese- kl: Kalaallisut; Greenlandic- kn: Kannada- ks: Kashmiri- ka: Georgian- kr: Kanuri- kk: Kazakh- km: Central Khmer- ki: Kikuyu; Gikuyu- rw: Kinyarwanda- ky: Kirghiz; Kyrgyz- kv: Komi- kg: Kongo- ko: Korean- kj: Kuanyama; Kwanyama- ku: Kurdish- lo: Lao- la: Latin- lv: Latvian- li: Limburgan; Limburger; limburgish- ln: Lingala- lt: Lithuanian- lb: Luxembourgish; Letzeburgesch- lu: Luba-Katanga- lg: Ganda- mk: Macedonian- mh: Marshallese- ml: Malayalam- mi: Maori- mr: Marathi- ms: Malay- mk: Macedonian- mg: Malagasy- mt: Maltese- mn: Mongolian- mi: Maori- ms: Malay- my: Burmese- na: Nauru- nv: Navajo; Navaho- nr: Ndebele, South; South Ndebele- nd: Ndebele, North; North Ndebele- ng: Ndonga- ne: Nepali- nl: Dutch; Flemish- nn: Norwegian Nynorsk; Nynorsk, Norwegian- nb: Bokm\u00e5l, Norwegian; Norwegian Bokm\u00e5l- no: Norwegian- ny: Chichewa; Chewa; Nyanja- oc: Occitan (post 1500)- oj: Ojibwa- or: Oriya- om: Oromo- os: Ossetian; Ossetic- pa: Panjabi; Punjabi- fa: Persian- pi: Pali- pl: Polish- pt: Portuguese- ps: Pushto; Pashto- qu: Quechua- rm: Romansh- ro: Romanian; Moldavian; Moldovan- rn: Rundi- ru: Russian- sg: Sango- sa: Sanskrit- si: Sinhala; Sinhalese- sk: Slovak- sl: Slovenian- se: Northern Sami- sm: Samoan- sn: Shona- sd: Sindhi- so: Somali- st: Sotho, Southern- es: Spanish; Castilian- sq: Albanian- sc: Sardinian- sr: Serbian- ss: Swati- su: Sundanese- sw: Swahili- sv: Swedish- ty: Tahitian- ta: Tamil- tt: Tatar- te: Telugu- tg: Tajik- tl: Tagalog- th: Thai- bo: Tibetan- ti: Tigrinya- to: Tonga (Tonga Islands)- tn: Tswana- ts: Tsonga- tk: Turkmen- tr: Turkish- tw: Twi- ug: Uighur; Uyghur- uk: Ukrainian- ur: Urdu- uz: Uzbek- ve: Venda- vi: Vietnamese- vo: Volap\u00fck- cy: Welsh- wa: Walloon- wo: Wolof- xh: Xhosa- yi: Yiddish- yo: Yoruba- za: Zhuang; Chuang- zh: Chinese- zu: Zulu", + "examples": [ + "en" + ], + "type": [ + "LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']" + ], + "is_list": true, + "is_optional": false + }, + { + "name": "format", + "required": true, + "title": "Format", + "description": "If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format.", + "guidance": "If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml.- Please enter one format type at a time and click Add New Field to add further keywords.- Note: If your file format is not included in the current list of formats, please indicate other.- Example: text/tab-separated-values, application/sql, text/csv, image/diacom-rle", + "examples": [ + "text/tab-separated-values", + "application/sql", + "text/csv", + "image/diacom-rle" + ], + "type": [ + "Format[{'minLength': 1, 'type': 'string'}]" + ], + "is_list": true, + "is_optional": false, + "subItems": [] + } + ] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "EnrichmentAndLinkage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "derivedFrom", + "required": false, + "title": "Derived from", + "description": "If applicable, please provide DOIs or links to datasets from which data in this dataset has been derived or calculated from.", + "guidance": "", + "examples": null, + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "isPartOf", + "required": false, + "title": "Is part of", + "description": "This relationship indicates that the dataset is a component or subset of a broader collection of related datasets. For example, clinical trial data for a specific drug may be part of a larger database of pharmaceutical research data. Complete only if the dataset is part of a group or family of datasets i.e. Hospital Episode Statistics has several constituents. If your dataset is not part of a group, please enter \u201cNOT APPLICABLE\u201d Example: Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS).", + "guidance": "", + "examples": [ + "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)" + ], + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "linkableDatasets", + "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.", + "guidance": "", + "examples": null, + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "similarToDatasets", + "required": false, + "title": "Similar to datasets", + "description": "Datasets that are similar to each other in some way, collect similar patients, regional equivalent etc.", + "guidance": "", + "examples": null, + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "investigations", + "required": false, + "title": "Investigations", + "description": "Please provide link to any active projects that are using the dataset.", + "guidance": "Please provide the website address(es) which document information related to active projects utilising the dataset.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each website and press enter to add it to the list.- Example: https://dataloch.org/insights/projects-delivered/data-driven-innovation-multi-morbidity-report-partner-gps", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "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/", + "guidance": "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, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "publicationAboutDataset", + "required": false, + "title": "Publication about the dataset", + "description": "DOIs for publications which describe the dataset.", + "guidance": "Please provide the DOIs for publications which describe the dataset.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each citation and press enter to add it to the list.- Example: <10.1093/ije/dyab028>", + "examples": [ + "10.1093/ije/dyab028" + ], + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "publicationUsingDataset", + "required": false, + "title": "Publication using the dataset", + "description": "DOIs for publications which use the dataset for analysis.", + "guidance": "Please provide the DOIs for publications which have used the dataset in their analysis.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each citation and press enter to add it to the list.- Example: <10.1001/jamapediatrics.2016.3633>", + "examples": [ + "10.1001/jamapediatrics.2016.3633" + ], + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "observations", + "required": true, + "title": "Observations", + "description": "This section provides an overview of observations of your dataset linked to specific points in time. Multiple observations about the dataset are encouraged to be provided, including multiple observations of the same property at different timepoints. At least one observation is required.", + "guidance": "", + "examples": null, + "type": [ + "Observation" + ], + "is_list": true, + "is_optional": false, + "subItems": [ + { + "name": "observedNode", + "required": true, + "title": "Dataset volume measure", + "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", + "guidance": "Persons: Unique persons recorded in the dataset- Events: Unique events such as procedures and prescriptions within the dataset-Findings: Unique findings included in the dataset such as diagnoses'-Number of scans per modality: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "examples": [ + "Persons" + ], + "type": [ + "StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "measuredValue", + "required": true, + "title": "Measured value", + "description": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "disambiguatingDescription", + "required": false, + "title": "Disambiguating description", + "description": "If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters.", + "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", + "examples": null, + "type": [ + "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "observationDate", + "required": true, + "title": "Observation date", + "description": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "examples": [ + "2024-10-24" + ], + "type": [ + "date", + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "measuredProperty", + "required": true, + "title": "Measured property", + "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", + "guidance": "Descriptive term for the observation property measured.", + "examples": [ + "Count" + ], + "type": [ + "MeasuredProperty[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + } + ] + }, + { + "name": "structuralMetadata", + "required": false, + "title": "Structural Metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "guidance": "", + "examples": null, + "type": [ + "StructuralMetadata", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "tables", + "required": false, + "title": "Tables", + "description": "Tables in the dataset", + "guidance": "", + "examples": null, + "type": [ + "DataTable" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "description", + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "size", + "required": false, + "title": "Table size", + "description": "Number of Complete Entries.", + "guidance": "Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete.", + "examples": null, + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "columns", + "required": true, + "title": "Data Columns", + "description": "A list of columns contained within a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "DataColumn" + ], + "is_list": true, + "is_optional": false, + "subItems": [ + { + "name": "name", + "required": true, + "title": "Column name", + "description": "The name of a column in a table.", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "dataType", + "required": true, + "title": "Data type", + "description": "The data type of values in the column.", + "guidance": "", + "examples": null, + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "description", + "required": false, + "title": "Column description", + "description": "A description of a column in a table.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "sensitive", + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not.", + "guidance": "", + "examples": null, + "type": [ + "bool" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "values", + "required": false, + "title": "Values", + "description": "Values in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "DataValue" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": true, + "title": "Value name", + "description": "Unique value in a column.", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "description", + "required": false, + "title": "Value description", + "description": "A description of a unique value in a column.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "frequency", + "required": false, + "title": "Value frequency", + "description": "The frequency of occurrance of a value in a column.", + "guidance": "", + "examples": null, + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + } + ] + } + ] + }, + { + "name": "syntheticDataWebLink", + "required": false, + "title": "Synthetic data web links", + "description": "Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.- Please split your existing list of citations into separate fields.- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.- Example: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/", + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "demographicFrequency", + "required": false, + "title": "Demographic frequency", + "description": "The statistical characteristics of a population or group within the dataset.", + "guidance": "", + "examples": null, + "type": [ + "DemographicFrequency", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "age", + "required": false, + "title": "Age", + "description": "Array of bins, based off the UK Office for National Statistics (ONS) groupings, and their corresponding counts as represented within the dataset.", + "guidance": "", + "examples": null, + "type": [ + "Age" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "bin", + "required": true, + "title": "Age grouping", + "description": null, + "guidance": "", + "examples": [ + "30-34 years" + ], + "type": [ + "AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Age count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + }, + { + "name": "ethnicity", + "required": false, + "title": "Ethnicity", + "description": "Array of bins, based off the UK Office for National Statistics (ONS) census groupings, and their corresponding counts as represented within the dataset.", + "guidance": "Enter the count of population represented in the dataset within the ethnicity bins provided. Clearly indicate where ethnicity is not stated or not known. Ensure you apply low number suppression and rounding where appropriate.", + "examples": null, + "type": [ + "Ethnicity" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "bin", + "required": true, + "title": "Ethnicity grouping", + "description": null, + "guidance": "", + "examples": [ + "Black or Black British - Any other Black background" + ], + "type": [ + "EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Ethnicity count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + }, + { + "name": "disease", + "required": false, + "title": "Disease", + "description": "Array of health conditions or diseases (based around ICD-10, SNOMED CT and MeSH disease vocabularies) and their corresponding counts as represented within the dataset.", + "guidance": "Create bins based on standard vocabulary (ICD-10, SNOMED CT or MeSH) and disease code. Then enter the count of population represented in the dataset within the disease bins created. Ensure you apply low number suppression and rounding where appropriate.", + "examples": null, + "type": [ + "Disease" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "diseaseCode", + "required": true, + "title": "Disease code", + "description": null, + "guidance": "", + "examples": [ + "J45" + ], + "type": [ + "str", + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "diseaseCodeVocabulary", + "required": true, + "title": "Disease code vocabulary", + "description": null, + "guidance": "", + "examples": [ + "ICD10" + ], + "type": [ + "DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Disease count", + "description": null, + "guidance": "", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + } + ] + }, + { + "name": "omics", + "required": false, + "title": "Omics", + "description": "Omics", + "guidance": "", + "examples": null, + "type": [ + "Omics", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "assay", + "required": false, + "title": "Omics assay", + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "examples": null, + "type": [ + "Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "platform", + "required": false, + "title": "Omics Platform", + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "examples": null, + "type": [ + "Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "icons", + "required": false, + "title": "Icons", + "description": "Calculated categorization icons added during export.", + "guidance": "", + "examples": null, + "type": [ + "Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "project", + "required": false, + "title": "Project", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Project" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "projectName", + "required": false, + "title": "Project Title", + "description": "May or may not be different to the Dataset Title", + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "leadResearcher", + "required": false, + "title": "Lead Researcher", + "description": "", + "guidance": "", + "examples": [ + "Dr Smith" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "leadResearchInstitute", + "required": false, + "title": "Lead Research Institute", + "description": "", + "guidance": "", + "examples": [ + "Sussex University" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "grantNumbers", + "required": false, + "title": "Grant number(s)", + "description": "List of grant numbers separated by a line break", + "guidance": "Normally specified on the grant acceptance letter", + "examples": [ + "A354t", + "ropguadg" + ], + "type": [ + "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "projectStartDate", + "required": false, + "title": "Project Start Date", + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "projectEndDate", + "required": false, + "title": "Project End Date", + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "projectScope", + "required": false, + "title": "Project Scope", + "description": "data and biospecimens expected to result from the grant.", + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "datasetFilters", + "required": false, + "title": null, + "description": "Categorization tags regarding cancer type, data type, and access.", + "guidance": "", + "examples": null, + "type": [ + "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "erd", + "required": false, + "title": "Entity Relationship Diagram", + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "examples": null, + "type": [ + "Image", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "image", + "required": false, + "title": "Image", + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "description", + "required": false, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + } +] \ No newline at end of file diff --git a/docs/CRUK/1.0.0.template.json b/docs/CRUK/1.0.0.template.json new file mode 100644 index 00000000..f846b8f3 --- /dev/null +++ b/docs/CRUK/1.0.0.template.json @@ -0,0 +1,167 @@ +{ + "identifier": "Uuidv4[{'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}$', 'type': 'string'}] | Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", + "version": "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]", + "revisions": { + "version": "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]", + "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "issued": "datetime", + "modified": "datetime", + "summary": { + "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "funders": "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", + "abstract": "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", + "dataCustodian": { + "identifier": "str | int", + "name": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "logo": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", + "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", + "contactPoint": "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}] | typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]", + "memberOf": "MemberOfV2['Hub','Alliance','Other','NCS'] | null" + }, + "populationSize": "int", + "keywords": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "doiName": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}] | null", + "contactPoint": "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", + "datasetAliases": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]] | null" + }, + "documentation": { + "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "associatedMedia": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]] | null", + "inPipeline": "Pipeline['Available','Not available'] | null" + }, + "coverage": { + "spatial": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[hdr_schemata.definitions.HDRUK.Url.Url]", + "typicalAgeRangeMin": "int | null", + "typicalAgeRangeMax": "int | null", + "datasetCompleteness": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", + "materialType": "MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']", + "followUp": "FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null] | null", + "pathway": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "provenance": { + "origin": { + "purpose": "PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]", + "datasetType": "typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]", + "source": "SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']", + "collectionSource": "SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]", + "imageContrast": "Ternary['Yes','No','Not stated'] | null" + }, + "temporal": { + "publishingFrequency": "PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]", + "distributionReleaseDate": "date | datetime | null", + "startDate": "date | datetime", + "endDate": "date | datetime | EndDateEnum['CONTINUOUS',null] | null", + "timeLag": "TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']" + } + }, + "accessibility": { + "usage": { + "dataUseLimitation": "DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']", + "dataUseRequirements": "DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']", + "resourceCreator": "ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]] | null" + }, + "access": { + "accessRights": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "accessServiceCategory": "AccessService['TRE/SDE','Direct access','Open access','Varies based on project'] | null", + "accessService": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", + "accessRequestCost": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", + "deliveryLeadTime": "DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other'] | null", + "jurisdiction": "Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]", + "dataController": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", + "dataProcessor": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "formatAndStandards": { + "vocabularyEncodingScheme": "ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']", + "conformsTo": "StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']", + "language": "LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']", + "format": "Format[{'minLength': 1, 'type': 'string'}]" + } + }, + "enrichmentAndLinkage": { + "derivedFrom": { + "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "isPartOf": { + "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "linkableDatasets": { + "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "similarToDatasets": { + "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" + }, + "investigations": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "tools": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "publicationAboutDataset": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", + "publicationUsingDataset": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" + }, + "observations": { + "observedNode": "StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']", + "measuredValue": "int", + "disambiguatingDescription": "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}] | null", + "observationDate": "date | datetime", + "measuredProperty": "MeasuredProperty[{}]" + }, + "structuralMetadata": { + "tables": { + "name": "str | null", + "description": "str | null", + "size": "int | null", + "columns": { + "name": "Name[{}]", + "dataType": "str", + "description": "str | null", + "sensitive": "bool", + "values": { + "name": "Name[{}]", + "description": "str | null", + "frequency": "int | null" + } + } + }, + "syntheticDataWebLink": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" + }, + "demographicFrequency": { + "age": { + "bin": "AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']", + "count": "int" + }, + "ethnicity": { + "bin": "EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']", + "count": "int" + }, + "disease": { + "diseaseCode": "str | int", + "diseaseCodeVocabulary": "DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']", + "count": "int" + } + }, + "omics": { + "assay": "Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis'] | null", + "platform": "Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi'] | null" + }, + "icons": "Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}] | null", + "project": { + "projectName": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "leadResearcher": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "leadResearchInstitute": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", + "grantNumbers": "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}] | null", + "projectStartDate": "date | datetime | null", + "projectEndDate": "date | datetime | null", + "projectScope": "str | null" + }, + "datasetFilters": "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}] | null", + "erd": { + "image": "str | null", + "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" + } +} \ No newline at end of file From 366ec7456ff451f9d493173dc7c9d008e22c66f9 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Sun, 15 Feb 2026 12:16:54 +0000 Subject: [PATCH 06/18] chore: add CRUK to available list Include CRUK 1.0.0 in available.json. --- available.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/available.json b/available.json index 46bf168f..42e29812 100644 --- a/available.json +++ b/available.json @@ -15,6 +15,9 @@ "1.2", "2.0" ], + "CRUK": [ + "1.0.0" + ], "SchemaOrg": [ "BioSchema", "default", From 27a080083e39fab936121e70f28d842f1db16e70 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 17 Feb 2026 12:20:44 +0000 Subject: [PATCH 07/18] Fix Pydantic v2 field removal and pin deps --- examples | 1 + hdr_schemata/models/__init__.py | 27 ++++++++++++++++++++++----- requirements.txt | 4 +++- 3 files changed, 26 insertions(+), 6 deletions(-) create mode 120000 examples diff --git a/examples b/examples new file mode 120000 index 00000000..c2883924 --- /dev/null +++ b/examples @@ -0,0 +1 @@ +hdr_schemata/examples \ No newline at end of file diff --git a/hdr_schemata/models/__init__.py b/hdr_schemata/models/__init__.py index 7e72ad1d..3cb00a94 100644 --- a/hdr_schemata/models/__init__.py +++ b/hdr_schemata/models/__init__.py @@ -6,12 +6,29 @@ # - This hack means that I can inherit from the Schema.Org model but then exclude fields # that are not needed for the BioSchema +def _safe_remove_field(cls, field): + fields_set = getattr(cls, "model_fields_set", None) + if hasattr(fields_set, "deleter"): + fields_set.deleter(field) + elif hasattr(fields_set, "discard"): + fields_set.discard(field) + + computed_fields = getattr(cls, "model_computed_fields", None) + if hasattr(computed_fields, "deleter"): + computed_fields.deleter(field) + elif hasattr(computed_fields, "pop"): + computed_fields.pop(field, None) + + fields = getattr(cls, "model_fields", None) + if hasattr(fields, "pop"): + fields.pop(field, None) + + def filter_fields_in_cls(cls,fields_to_keep): all_keys = list(cls.model_fields.keys()) for field in all_keys: if field in fields_to_keep: continue - cls.model_computed_fields.pop(field, None) - cls.model_fields.pop(field, None) + _safe_remove_field(cls, field) for field in fields_to_keep: if not field in cls.model_fields.keys(): @@ -19,14 +36,14 @@ def filter_fields_in_cls(cls,fields_to_keep): #also force rebuild of model schema cls.__pydantic_complete__ = False - del cls.__pydantic_core_schema__ + if hasattr(cls, "__pydantic_core_schema__"): + del cls.__pydantic_core_schema__ cls.model_rebuild(force=True) def remove_fields_from_cls(cls,fields): for field in fields: if not field in fields: continue - cls.model_computed_fields.pop(field, None) - cls.model_fields.pop(field, None) + _safe_remove_field(cls, field) #also force rebuild of model schema cls.__pydantic_complete__ = False diff --git a/requirements.txt b/requirements.txt index 5ab24224..b522a6ab 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,6 @@ mkdocs-material PyYAML pandas tabulate -beautifulsoup4 \ No newline at end of file +beautifulsoup4 +pydantic==2.4.2 +email-validator==2.1.0.post1 \ No newline at end of file From f91fdc323e7d13f84e2b92f259b91dbffd72ae41 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 17 Feb 2026 15:18:01 +0000 Subject: [PATCH 08/18] Add HDRUK 4.0.1 and remove CRUK artifacts --- available.json | 6 +- .../4.0.1.example.json} | 11 +- .../1.0.0.form.json => HDRUK/4.0.1.form.json} | 34 ++-- docs/{CRUK/1.0.0.md => HDRUK/4.0.1.md} | 60 ++++--- .../4.0.1.structure.json} | 44 ++--- .../4.0.1.template.json} | 2 +- hdr_schemata/models/CRUK/__init__.py | 1 - .../models/CRUK/create_json_schema.py | 3 - hdr_schemata/models/HDRUK/4.0.1/.gitkeep | 0 .../{CRUK/1.0.0 => HDRUK/4.0.1}/schema.json | 158 ++++++++++++++---- hdr_schemata/models/HDRUK/__init__.py | 1 + .../models/HDRUK/create_json_schema.py | 2 + .../v1_0_0 => HDRUK/v4_0_1}/DataTable.py | 0 .../v1_0_0 => HDRUK/v4_0_1}/DatasetFilters.py | 6 +- .../{CRUK/v1_0_0 => HDRUK/v4_0_1}/Icons.py | 0 .../{CRUK/v1_0_0 => HDRUK/v4_0_1}/Image.py | 0 .../v4_0_1}/LineSeparatedValues.py | 0 .../{CRUK/v1_0_0 => HDRUK/v4_0_1}/Project.py | 0 .../v4_0_1}/StructuralMetadata.py | 0 .../{CRUK/v1_0_0 => HDRUK/v4_0_1}/Summary.py | 0 .../{CRUK/v1_0_0 => HDRUK/v4_0_1}/__init__.py | 4 +- hdr_schemata/utils/create_example.py | 4 +- hdr_schemata/utils/create_markdown.py | 3 +- 23 files changed, 227 insertions(+), 112 deletions(-) rename docs/{CRUK/1.0.0.example.json => HDRUK/4.0.1.example.json} (90%) rename docs/{CRUK/1.0.0.form.json => HDRUK/4.0.1.form.json} (97%) rename docs/{CRUK/1.0.0.md => HDRUK/4.0.1.md} (96%) rename docs/{CRUK/1.0.0.structure.json => HDRUK/4.0.1.structure.json} (97%) rename docs/{CRUK/1.0.0.template.json => HDRUK/4.0.1.template.json} (97%) delete mode 100644 hdr_schemata/models/CRUK/__init__.py delete mode 100644 hdr_schemata/models/CRUK/create_json_schema.py create mode 100644 hdr_schemata/models/HDRUK/4.0.1/.gitkeep rename hdr_schemata/models/{CRUK/1.0.0 => HDRUK/4.0.1}/schema.json (97%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/DataTable.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/DatasetFilters.py (60%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/Icons.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/Image.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/LineSeparatedValues.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/Project.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/StructuralMetadata.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/Summary.py (100%) rename hdr_schemata/models/{CRUK/v1_0_0 => HDRUK/v4_0_1}/__init__.py (95%) diff --git a/available.json b/available.json index 42e29812..1fcc6222 100644 --- a/available.json +++ b/available.json @@ -7,7 +7,8 @@ "2.2.0", "2.2.1", "3.0.0", - "4.0.0" + "4.0.0", + "4.0.1" ], "GWDM": [ "1.0", @@ -15,9 +16,6 @@ "1.2", "2.0" ], - "CRUK": [ - "1.0.0" - ], "SchemaOrg": [ "BioSchema", "default", diff --git a/docs/CRUK/1.0.0.example.json b/docs/HDRUK/4.0.1.example.json similarity index 90% rename from docs/CRUK/1.0.0.example.json rename to docs/HDRUK/4.0.1.example.json index 98a23d8c..8470c40e 100644 --- a/docs/CRUK/1.0.0.example.json +++ b/docs/HDRUK/4.0.1.example.json @@ -10,9 +10,9 @@ "issued": "2024-10-24T00:00:00.000Z", "modified": "2024-10-24T00:00:00.000Z", "summary": { - "title": "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations", + "title": "North West London COVID-19 Patient Level Situation Report", "funders": "CRUK", - "abstract": "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner.", + "abstract": "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.", "dataCustodian": { "identifier": "30f16703-28bc-4f45-9ce5-625d2d3db27d", "name": "Health Data Research UK", @@ -23,7 +23,12 @@ }, "populationSize": 1000, "keywords": [ - "Preprints,Papers,HDR UK" + "Outpatient Care", + "Socioeconomic Deprivation", + "Infant Morbidity", + "Learning disability", + "Primary Care Prescription", + "Accident and Emergency Admissions" ], "doiName": null, "contactPoint": "gateway@hdruk.ac.uk", diff --git a/docs/CRUK/1.0.0.form.json b/docs/HDRUK/4.0.1.form.json similarity index 97% rename from docs/CRUK/1.0.0.form.json rename to docs/HDRUK/4.0.1.form.json index aabf841f..5b03634d 100644 --- a/docs/CRUK/1.0.0.form.json +++ b/docs/HDRUK/4.0.1.form.json @@ -101,10 +101,11 @@ { "required": true, "title": "Title", - "description": "The main title of the dataset", + "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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", "examples": [ - "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + "North West London COVID-19 Patient Level Situation Report", + "Scottish Morbidity Record (SMR)" ], "is_list": false, "is_optional": false, @@ -136,11 +137,11 @@ }, { "required": true, - "title": "Abstract", - "description": "Longer abstract detailing the dataset.", + "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.", "guidance": "- The abstract should provide a **clear and brief descriptive** signpost for researchers who are searching for data that may be relevant to their research.\\n- The abstract should allow the reader to determine the **scope of the data collection and accurately summarise its content**.\\n- Effective abstracts should **avoid long sentences and abbreviations** where possible.\\n- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.\\n- **Abstracts should be different from the full description** for a dataset.\\n- **Example**: 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.", "examples": [ - "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + "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, @@ -253,8 +254,8 @@ }, { "required": true, - "title": "Population size", - "description": "Summary population size of the cohort", + "title": "Dataset population size", + "description": "Input the number of people captured within the dataset.", "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section.", "examples": [ 1000 @@ -267,10 +268,15 @@ { "required": false, "title": "Keywords", - "description": "Comma separated key words associated to this dataset.", + "description": "Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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.", "guidance": "- Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.\\n- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.\\n- Text from the title is automatically included in the search, there is no need to include this in the keywords.\\n- Include words that researcher may include in their searches.", "examples": [ - "Preprints,Papers,HDR UK" + "Outpatient Care", + "Socioeconomic Deprivation", + "Infant Morbidity", + "Learning disability", + "Primary Care Prescription", + "Accident and Emergency Admissions" ], "is_list": true, "is_optional": true, @@ -284,8 +290,8 @@ }, { "required": false, - "title": "DOI Name", - "description": "DOI associated to this dataset", + "title": "Digital Object Identifier (DOI) for dataset", + "description": "DOI associated to this dataset. Find out more about DOIs here: [https://www.doi.org/the-identifier/what-is-a-doi/](https://www.doi.org/the-identifier/what-is-a-doi/)", "guidance": "- Please note: This is **not** the DOI of the publication(s) associated with the dataset.\\n- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.\\n- If a DOI is available, please provide the DOI.\\n- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", "examples": [ "10.1093/ije/dyx196" @@ -301,8 +307,8 @@ }, { "required": true, - "title": "Contact Point", - "description": "email of a person who can be the main contact point of this dataset", + "title": "Contact point", + "description": "Please provide a valid email address that can be used to coordinate data access requests.", "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.\\n**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**.", "examples": [ "gateway@hdruk.ac.uk" @@ -1951,7 +1957,7 @@ "types": { "description": "A list of categorization tags (ids) for the dataset.", "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", "type": "string" }, "title": "Dataset Filters", diff --git a/docs/CRUK/1.0.0.md b/docs/HDRUK/4.0.1.md similarity index 96% rename from docs/CRUK/1.0.0.md rename to docs/HDRUK/4.0.1.md index 6cdeb3ba..59a93977 100644 --- a/docs/CRUK/1.0.0.md +++ b/docs/HDRUK/4.0.1.md @@ -98,7 +98,7 @@ Summary of metadata describing key pieces of information. ### title -The main title of the dataset +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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers. | title | guidance | is_list | required | type | |:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| @@ -106,7 +106,8 @@ The main title of the dataset Examples: - * Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations + * North West London COVID-19 Patient Level Situation Report + * Scottish Morbidity Record (SMR) ### funders @@ -125,15 +126,15 @@ Examples: ### abstract -Longer abstract detailing the dataset. +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. -| title | guidance | is_list | required | type | -|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------| -| Abstract | - The abstract should 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**.
- Effective abstracts should **avoid long sentences and abbreviations** where possible.
- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.
- **Abstracts should be different from the full description** for a dataset.
- **Example**: CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. | False | True | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]"] | +| title | guidance | is_list | required | type | +|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------| +| Dataset abstract | - The abstract should 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**.
- Effective abstracts should **avoid long sentences and abbreviations** where possible.
- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.
- **Abstracts should be different from the full description** for a dataset.
- **Example**: CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. | False | True | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]"] | Examples: - * COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner. + * CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. ### dataCustodian @@ -219,11 +220,11 @@ Please indicate if the organisation is an Alliance Member or a Hub. If this fie ### populationSize -Summary population size of the cohort +Input the number of people captured within the dataset. -| title | guidance | is_list | required | type | -|:----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| -| Population size | This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section. | False | True | ['int'] | +| title | guidance | is_list | required | type | +|:------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| +| Dataset population size | This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section. | False | True | ['int'] | Examples: @@ -232,7 +233,7 @@ Examples: ### keywords -Comma separated key words associated to this dataset. +Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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. | title | guidance | is_list | required | type | |:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| @@ -240,16 +241,21 @@ Comma separated key words associated to this dataset. Examples: - * Preprints,Papers,HDR UK + * Outpatient Care + * Socioeconomic Deprivation + * Infant Morbidity + * Learning disability + * Primary Care Prescription + * Accident and Emergency Admissions ### doiName -DOI associated to this dataset +DOI associated to this dataset. Find out more about DOIs here: [https://www.doi.org/the-identifier/what-is-a-doi/](https://www.doi.org/the-identifier/what-is-a-doi/) -| title | guidance | is_list | required | type | -|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------| -| DOI Name | - Please note: This is **not** the DOI of the publication(s) associated with the dataset.
- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.
- If a DOI is available, please provide the DOI.
- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service. | False | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | +| title | guidance | is_list | required | type | +|:--------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------| +| Digital Object Identifier (DOI) for dataset | - Please note: This is **not** the DOI of the publication(s) associated with the dataset.
- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.
- If a DOI is available, please provide the DOI.
- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service. | False | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | Examples: @@ -258,11 +264,11 @@ Examples: ### contactPoint -email of a person who can be the main contact point of this dataset +Please provide a valid email address that can be used to coordinate data access requests. | title | guidance | is_list | required | type | |:--------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------| -| Contact Point | Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.
**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**. | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]"] | +| Contact point | Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.
**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**. | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]"] | Examples: @@ -1099,7 +1105,7 @@ Examples: ## structuralMetadata -Descriptions of all tables and data elements that can be included in the dataset +Descriptions of all tables and data elements that can be included in the dataset. @@ -1121,7 +1127,7 @@ The name of a table in a dataset. | title | guidance | is_list | required | type | |:-----------|:-----------|:----------|:-----------|:----------------| -| Table Name | | False | False | ['str', 'null'] | +| Table name | | False | False | ['str', 'null'] | @@ -1130,9 +1136,9 @@ The name of a table in a dataset. A description of a table in a dataset. -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:----------------| -| Table Description' | | False | False | ['str', 'null'] | +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:----------------| +| Table description | | False | False | ['str', 'null'] | @@ -1522,9 +1528,9 @@ Examples: Categorization tags regarding cancer type, data type, and access. -| title | guidance | is_list | required | type | -|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| | | False | False | ["DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", 'null'] | +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| | | False | False | ["DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", 'null'] | diff --git a/docs/CRUK/1.0.0.structure.json b/docs/HDRUK/4.0.1.structure.json similarity index 97% rename from docs/CRUK/1.0.0.structure.json rename to docs/HDRUK/4.0.1.structure.json index f4fe5913..8167b3db 100644 --- a/docs/CRUK/1.0.0.structure.json +++ b/docs/HDRUK/4.0.1.structure.json @@ -129,10 +129,11 @@ "name": "title", "required": true, "title": "Title", - "description": "The main title of the dataset", + "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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", "guidance": "The title 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.- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.- Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.- Example: North West London COVID-19 Patient Level Situation Report", "examples": [ - "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + "North West London COVID-19 Patient Level Situation Report", + "Scottish Morbidity Record (SMR)" ], "type": [ "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" @@ -161,11 +162,11 @@ { "name": "abstract", "required": true, - "title": "Abstract", - "description": "Longer abstract detailing the dataset.", + "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.", "guidance": "The abstract should 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.- Effective abstracts should avoid long sentences and abbreviations where possible.- Note: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.- Abstracts should be different from the full description for a dataset.- Example: 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.", "examples": [ - "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + "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." ], "type": [ "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]" @@ -285,8 +286,8 @@ { "name": "populationSize", "required": true, - "title": "Population size", - "description": "Summary population size of the cohort", + "title": "Dataset population size", + "description": "Input the number of people captured within the dataset.", "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the Observations fields. The filter also allows for Researchers to search datasets which have no population size reported, but will not pull any population size captured in the Observations section.", "examples": [ 1000 @@ -301,10 +302,15 @@ "name": "keywords", "required": false, "title": "Keywords", - "description": "Comma separated key words associated to this dataset.", + "description": "Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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.", "guidance": "Please provide relevant and specific keywords that can improve the search engine optimization of your dataset.- Please enter one keyword at a time and click Add New Field to add further keywords.- Text from the title is automatically included in the search, there is no need to include this in the keywords.- Include words that researcher may include in their searches.", "examples": [ - "Preprints,Papers,HDR UK" + "Outpatient Care", + "Socioeconomic Deprivation", + "Infant Morbidity", + "Learning disability", + "Primary Care Prescription", + "Accident and Emergency Admissions" ], "type": [ "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" @@ -316,8 +322,8 @@ { "name": "doiName", "required": false, - "title": "DOI Name", - "description": "DOI associated to this dataset", + "title": "Digital Object Identifier (DOI) for dataset", + "description": "DOI associated to this dataset. Find out more about DOIs here: https://www.doi.org/the-identifier/what-is-a-doi/", "guidance": "Please note: This is not the DOI of the publication(s) associated with the dataset.- All HDR UK registered datasets should either have a (DOI) or be working towards obtaining one.- If a DOI is available, please provide the DOI.- What happens if I do not have a DOI?: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", "examples": [ "10.1093/ije/dyx196" @@ -333,8 +339,8 @@ { "name": "contactPoint", "required": true, - "title": "Contact Point", - "description": "email of a person who can be the main contact point of this dataset", + "title": "Contact point", + "description": "Please provide a valid email address that can be used to coordinate data access requests.", "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.Note: An employee's email address can only be provided on a temporary basis and if one is provided, you must obtain explicit consent for this purpose.", "examples": [ "gateway@hdruk.ac.uk" @@ -1463,8 +1469,8 @@ { "name": "structuralMetadata", "required": false, - "title": "Structural Metadata", - "description": "Descriptions of all tables and data elements that can be included in the dataset", + "title": "Structural metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset.", "guidance": "", "examples": null, "type": [ @@ -1490,7 +1496,7 @@ { "name": "name", "required": false, - "title": "Table Name", + "title": "Table name", "description": "The name of a table in a dataset.", "guidance": "", "examples": null, @@ -1504,7 +1510,7 @@ { "name": "description", "required": false, - "title": "Table Description'", + "title": "Table description", "description": "A description of a table in a dataset.", "guidance": "", "examples": null, @@ -1532,7 +1538,7 @@ { "name": "columns", "required": true, - "title": "Data Columns", + "title": "Data columns", "description": "A list of columns contained within a table in a dataset.", "guidance": "", "examples": null, @@ -2035,7 +2041,7 @@ "guidance": "", "examples": null, "type": [ - "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", + "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", "null" ], "is_list": false, diff --git a/docs/CRUK/1.0.0.template.json b/docs/HDRUK/4.0.1.template.json similarity index 97% rename from docs/CRUK/1.0.0.template.json rename to docs/HDRUK/4.0.1.template.json index f846b8f3..c7c01961 100644 --- a/docs/CRUK/1.0.0.template.json +++ b/docs/HDRUK/4.0.1.template.json @@ -159,7 +159,7 @@ "projectEndDate": "date | datetime | null", "projectScope": "str | null" }, - "datasetFilters": "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\'id\\':\\\\s*\\'(\\\\d+_){0,5}\\\\d+\\',\\\\s*\\'label\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'category\\':\\\\s*\\'.{0,150}\\',\\\\s*\\'primaryGroup\\':\\\\s*\\'(cancer-type|data-type|access-type)\\',\\\\s*\\'description\\':\\\\s*\\'.{0,150}\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}] | null", + "datasetFilters": "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}] | null", "erd": { "image": "str | null", "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" diff --git a/hdr_schemata/models/CRUK/__init__.py b/hdr_schemata/models/CRUK/__init__.py deleted file mode 100644 index 2e2b88d4..00000000 --- a/hdr_schemata/models/CRUK/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .v1_0_0 import Cruk100 diff --git a/hdr_schemata/models/CRUK/create_json_schema.py b/hdr_schemata/models/CRUK/create_json_schema.py deleted file mode 100644 index 4d2de43e..00000000 --- a/hdr_schemata/models/CRUK/create_json_schema.py +++ /dev/null @@ -1,3 +0,0 @@ -from v1_0_0 import Cruk100 - -Cruk100.save_schema("1.0.0/schema.json") diff --git a/hdr_schemata/models/HDRUK/4.0.1/.gitkeep b/hdr_schemata/models/HDRUK/4.0.1/.gitkeep new file mode 100644 index 00000000..e69de29b diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/HDRUK/4.0.1/schema.json similarity index 97% rename from hdr_schemata/models/CRUK/1.0.0/schema.json rename to hdr_schemata/models/HDRUK/4.0.1/schema.json index 382799fa..8dbb7331 100644 --- a/hdr_schemata/models/CRUK/1.0.0/schema.json +++ b/hdr_schemata/models/HDRUK/4.0.1/schema.json @@ -17,7 +17,11 @@ "additionalProperties": false, "properties": { "accessRights": { - "$ref": "#/$defs/LongDescription", + "allOf": [ + { + "$ref": "#/$defs/LongDescription" + } + ], "description": "Please provide details for the data access rights.", "examples": [ "In Progress" @@ -174,7 +178,11 @@ "title": "Usage" }, "access": { - "$ref": "#/$defs/Access", + "allOf": [ + { + "$ref": "#/$defs/Access" + } + ], "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", "title": "Accessibility" }, @@ -201,7 +209,11 @@ "Age": { "properties": { "bin": { - "$ref": "#/$defs/AgeEnum", + "allOf": [ + { + "$ref": "#/$defs/AgeEnum" + } + ], "examples": [ "30-34 years" ], @@ -460,7 +472,11 @@ "DataColumn": { "properties": { "name": { - "$ref": "#/$defs/Name", + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], "description": "The name of a column in a table.", "title": "Column name" }, @@ -616,7 +632,11 @@ "DataValue": { "properties": { "name": { - "$ref": "#/$defs/Name", + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], "description": "Unique value in a column.", "title": "Value name" }, @@ -700,7 +720,7 @@ "DatasetFilters": { "description": "A list of categorization tags (ids) for the dataset.", "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", "type": "string" }, "title": "Dataset Filters", @@ -808,7 +828,11 @@ "title": "Disease code" }, "diseaseCodeVocabulary": { - "$ref": "#/$defs/DiseaseCodeEnum", + "allOf": [ + { + "$ref": "#/$defs/DiseaseCodeEnum" + } + ], "examples": [ "ICD10" ], @@ -843,7 +867,11 @@ "additionalProperties": false, "properties": { "description": { - "$ref": "#/$defs/Description", + "allOf": [ + { + "$ref": "#/$defs/Description" + } + ], "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", "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." @@ -1112,7 +1140,11 @@ "Ethnicity": { "properties": { "bin": { - "$ref": "#/$defs/EthnicityEnum", + "allOf": [ + { + "$ref": "#/$defs/EthnicityEnum" + } + ], "examples": [ "Black or Black British - Any other Black background" ], @@ -1797,17 +1829,18 @@ "title": "Name" }, "NotApplicableSubTypes": { - "enum": [ - "Not applicable" - ], - "title": "NotApplicableSubTypes", - "type": "string" + "const": "Not applicable", + "title": "NotApplicableSubTypes" }, "Observation": { "additionalProperties": false, "properties": { "observedNode": { - "$ref": "#/$defs/StatisticalPopulationConstrainedV2", + "allOf": [ + { + "$ref": "#/$defs/StatisticalPopulationConstrainedV2" + } + ], "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", "examples": [ "Persons" @@ -1857,7 +1890,11 @@ "title": "Observation date" }, "measuredProperty": { - "$ref": "#/$defs/MeasuredProperty", + "allOf": [ + { + "$ref": "#/$defs/MeasuredProperty" + } + ], "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", "examples": [ "Count" @@ -1981,7 +2018,11 @@ "title": "identifier" }, "name": { - "$ref": "#/$defs/OneHundredFiftyCharacters", + "allOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + } + ], "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", "examples": [ "Health Data Research UK" @@ -2395,7 +2436,11 @@ "title": "Origin Coverage" }, "temporal": { - "$ref": "#/$defs/Temporal", + "allOf": [ + { + "$ref": "#/$defs/Temporal" + } + ], "description": "Dates and other temporal coverage information.", "title": "Temporal Coverage" } @@ -2465,7 +2510,11 @@ "additionalProperties": false, "properties": { "version": { - "$ref": "#/$defs/Semver", + "allOf": [ + { + "$ref": "#/$defs/Semver" + } + ], "description": "Version number used for previous version of this dataset", "examples": [ "6.0.0" @@ -2683,7 +2732,11 @@ "additionalProperties": false, "properties": { "title": { - "$ref": "#/$defs/OneHundredFiftyCharacters", + "allOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + } + ], "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. 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", @@ -2693,7 +2746,11 @@ "title": "Title" }, "funders": { - "$ref": "#/$defs/LineSeparatedValues", + "allOf": [ + { + "$ref": "#/$defs/LineSeparatedValues" + } + ], "description": "List of Funders separated by a line break", "examples": [ "CRUK", @@ -2703,7 +2760,11 @@ "title": "Funded by" }, "abstract": { - "$ref": "#/$defs/AbstractText", + "allOf": [ + { + "$ref": "#/$defs/AbstractText" + } + ], "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." @@ -2712,7 +2773,11 @@ "title": "Dataset abstract" }, "dataCustodian": { - "$ref": "#/$defs/Organisation", + "allOf": [ + { + "$ref": "#/$defs/Organisation" + } + ], "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", "title": "Dataset Custodian" }, @@ -2768,7 +2833,11 @@ "title": "Digital Object Identifier (DOI) for dataset" }, "contactPoint": { - "$ref": "#/$defs/EmailAddress", + "allOf": [ + { + "$ref": "#/$defs/EmailAddress" + } + ], "description": "Please provide a valid email address that can be used to coordinate data access requests.", "examples": [ "gateway@hdruk.ac.uk" @@ -2819,7 +2888,11 @@ "additionalProperties": false, "properties": { "publishingFrequency": { - "$ref": "#/$defs/PeriodicityV2", + "allOf": [ + { + "$ref": "#/$defs/PeriodicityV2" + } + ], "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": [ "Continuous" @@ -2893,7 +2966,11 @@ "title": "End date" }, "timeLag": { - "$ref": "#/$defs/TimeLagV2", + "allOf": [ + { + "$ref": "#/$defs/TimeLagV2" + } + ], "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.", "examples": [ "Not applicable" @@ -3088,7 +3165,11 @@ "title": "Dataset identifier" }, "version": { - "$ref": "#/$defs/Semver", + "allOf": [ + { + "$ref": "#/$defs/Semver" + } + ], "description": "Dataset metadata version.", "examples": [ "1.1.0" @@ -3123,7 +3204,11 @@ "type": "string" }, "summary": { - "$ref": "#/$defs/Summary", + "allOf": [ + { + "$ref": "#/$defs/Summary" + } + ], "description": "Summary of metadata describing key pieces of information." }, "documentation": { @@ -3166,7 +3251,11 @@ "title": "Provenance" }, "accessibility": { - "$ref": "#/$defs/Accessibility", + "allOf": [ + { + "$ref": "#/$defs/Accessibility" + } + ], "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets." }, "enrichmentAndLinkage": { @@ -3243,8 +3332,13 @@ "title": "Icons" }, "project": { - "$ref": "#/$defs/Project", - "default": null + "allOf": [ + { + "$ref": "#/$defs/Project" + } + ], + "default": null, + "title": "Project" }, "datasetFilters": { "anyOf": [ @@ -3283,6 +3377,6 @@ "accessibility", "observations" ], - "title": "Cruk100", + "title": "Hdruk401", "type": "object" } \ No newline at end of file diff --git a/hdr_schemata/models/HDRUK/__init__.py b/hdr_schemata/models/HDRUK/__init__.py index f1cd9bc2..7c49adaa 100644 --- a/hdr_schemata/models/HDRUK/__init__.py +++ b/hdr_schemata/models/HDRUK/__init__.py @@ -4,3 +4,4 @@ from .v2_2_1 import Hdruk221 from .v3_0_0 import Hdruk300 from .v4_0_0 import Hdruk400 +from .v4_0_1 import Hdruk401 diff --git a/hdr_schemata/models/HDRUK/create_json_schema.py b/hdr_schemata/models/HDRUK/create_json_schema.py index 71d80de1..5e2489f0 100644 --- a/hdr_schemata/models/HDRUK/create_json_schema.py +++ b/hdr_schemata/models/HDRUK/create_json_schema.py @@ -4,6 +4,7 @@ import v2_2_1 import v3_0_0 import v4_0_0 +import v4_0_1 v2_1_2.Hdruk212.save_schema() v2_1_3.Hdruk213.save_schema() @@ -11,3 +12,4 @@ v2_2_1.Hdruk221.save_schema() v3_0_0.Hdruk300.save_schema() v4_0_0.Hdruk400.save_schema() +v4_0_1.Hdruk401.save_schema() diff --git a/hdr_schemata/models/CRUK/v1_0_0/DataTable.py b/hdr_schemata/models/HDRUK/v4_0_1/DataTable.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/DataTable.py rename to hdr_schemata/models/HDRUK/v4_0_1/DataTable.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py b/hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py similarity index 60% rename from hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py rename to hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py index c2190594..e86b1243 100644 --- a/hdr_schemata/models/CRUK/v1_0_0/DatasetFilters.py +++ b/hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py @@ -8,9 +8,9 @@ class DatasetFilters( list[ constr( pattern=( - r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*' - r'"category":\s*".{0,150}",\s*"primaryGroup":\s*' - r'"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' + r'\{\s*\"id\":\s*\"(\d+_){0,5}\d+\",\s*\"label\":\s*\".{0,150}\",\s*' + r'\"category\":\s*\".{0,150}\",\s*\"primaryGroup\":\s*' + r'\"(cancer-type|data-type|access-type)\",\s*\"description\":\s*\".{0,150}\"\s*\}' ) ) ] diff --git a/hdr_schemata/models/CRUK/v1_0_0/Icons.py b/hdr_schemata/models/HDRUK/v4_0_1/Icons.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/Icons.py rename to hdr_schemata/models/HDRUK/v4_0_1/Icons.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/Image.py b/hdr_schemata/models/HDRUK/v4_0_1/Image.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/Image.py rename to hdr_schemata/models/HDRUK/v4_0_1/Image.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py b/hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/LineSeparatedValues.py rename to hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/Project.py b/hdr_schemata/models/HDRUK/v4_0_1/Project.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/Project.py rename to hdr_schemata/models/HDRUK/v4_0_1/Project.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py b/hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/StructuralMetadata.py rename to hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/Summary.py b/hdr_schemata/models/HDRUK/v4_0_1/Summary.py similarity index 100% rename from hdr_schemata/models/CRUK/v1_0_0/Summary.py rename to hdr_schemata/models/HDRUK/v4_0_1/Summary.py diff --git a/hdr_schemata/models/CRUK/v1_0_0/__init__.py b/hdr_schemata/models/HDRUK/v4_0_1/__init__.py similarity index 95% rename from hdr_schemata/models/CRUK/v1_0_0/__init__.py rename to hdr_schemata/models/HDRUK/v4_0_1/__init__.py index 971ef6f9..e3abc1c0 100644 --- a/hdr_schemata/models/CRUK/v1_0_0/__init__.py +++ b/hdr_schemata/models/HDRUK/v4_0_1/__init__.py @@ -17,7 +17,7 @@ from .StructuralMetadata import StructuralMetadata -class Cruk100(Hdruk400): +class Hdruk401(Hdruk400): icons: Optional[Icons] = Field( None, title="Icons", @@ -52,6 +52,6 @@ class Cruk100(Hdruk400): ) @classmethod - def save_schema(cls, location="./1.0.0/schema.json"): + def save_schema(cls, location="./4.0.1/schema.json"): with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/utils/create_example.py b/hdr_schemata/utils/create_example.py index 7983c369..2a486655 100644 --- a/hdr_schemata/utils/create_example.py +++ b/hdr_schemata/utils/create_example.py @@ -38,5 +38,5 @@ def create_example(path): with open(f"{path}.example.json", "w") as f: json.dump(example, f, indent=6) -create_template("./docs/HDRUK/4.0.0") -create_example("./docs/HDRUK/4.0.0") +create_template("./docs/HDRUK/4.0.1") +create_example("./docs/HDRUK/4.0.1") diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index 3c63fcfb..da51ee70 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -264,6 +264,7 @@ def remove_types(data): from hdr_schemata.models.HDRUK import Hdruk221 from hdr_schemata.models.HDRUK import Hdruk300 from hdr_schemata.models.HDRUK import Hdruk400 +from hdr_schemata.models.HDRUK import Hdruk401 from hdr_schemata.models.GWDM.v1_1 import Gwdm10 from hdr_schemata.models.GWDM.v1_1 import Gwdm11 @@ -276,7 +277,7 @@ def remove_types(data): # create_markdown(Hdruk212, dir_path+"/../../docs/HDRUK", "2.1.2") # create_markdown(Hdruk213, dir_path+"/../../docs/HDRUK", "2.1.3") # create_markdown(Hdruk300, dir_path+"/../../docs/HDRUK", "3.0.0") -create_markdown(Hdruk400, dir_path+"/../../docs/HDRUK", "4.0.0") +create_markdown(Hdruk401, dir_path+"/../../docs/HDRUK", "4.0.1") # from hdr_schemata.models.GWDM.v1_1 import Gwdm10 # from hdr_schemata.models.GWDM.v1_1 import Gwdm11 From 57279fa31b692061c029e3c9b557ab470a69c36a Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 17 Feb 2026 15:25:51 +0000 Subject: [PATCH 09/18] Rename HDRUK 4.0.1 to 4.1.0 --- available.json | 2 +- docs/HDRUK/{4.0.1.example.json => 4.1.0.example.json} | 0 docs/HDRUK/{4.0.1.form.json => 4.1.0.form.json} | 0 docs/HDRUK/{4.0.1.md => 4.1.0.md} | 0 docs/HDRUK/{4.0.1.structure.json => 4.1.0.structure.json} | 0 docs/HDRUK/{4.0.1.template.json => 4.1.0.template.json} | 0 hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/.gitkeep | 0 hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/schema.json | 2 +- hdr_schemata/models/HDRUK/__init__.py | 2 +- hdr_schemata/models/HDRUK/create_json_schema.py | 4 ++-- hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/DataTable.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/DatasetFilters.py | 0 hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Icons.py | 0 hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Image.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/LineSeparatedValues.py | 0 hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Project.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/StructuralMetadata.py | 0 hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Summary.py | 0 hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/__init__.py | 4 ++-- hdr_schemata/utils/create_example.py | 4 ++-- hdr_schemata/utils/create_markdown.py | 4 ++-- 21 files changed, 11 insertions(+), 11 deletions(-) rename docs/HDRUK/{4.0.1.example.json => 4.1.0.example.json} (100%) rename docs/HDRUK/{4.0.1.form.json => 4.1.0.form.json} (100%) rename docs/HDRUK/{4.0.1.md => 4.1.0.md} (100%) rename docs/HDRUK/{4.0.1.structure.json => 4.1.0.structure.json} (100%) rename docs/HDRUK/{4.0.1.template.json => 4.1.0.template.json} (100%) rename hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/.gitkeep (100%) rename hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/schema.json (99%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/DataTable.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/DatasetFilters.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Icons.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Image.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/LineSeparatedValues.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Project.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/StructuralMetadata.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Summary.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/__init__.py (95%) diff --git a/available.json b/available.json index 1fcc6222..f4c8603d 100644 --- a/available.json +++ b/available.json @@ -8,7 +8,7 @@ "2.2.1", "3.0.0", "4.0.0", - "4.0.1" + "4.1.0" ], "GWDM": [ "1.0", diff --git a/docs/HDRUK/4.0.1.example.json b/docs/HDRUK/4.1.0.example.json similarity index 100% rename from docs/HDRUK/4.0.1.example.json rename to docs/HDRUK/4.1.0.example.json diff --git a/docs/HDRUK/4.0.1.form.json b/docs/HDRUK/4.1.0.form.json similarity index 100% rename from docs/HDRUK/4.0.1.form.json rename to docs/HDRUK/4.1.0.form.json diff --git a/docs/HDRUK/4.0.1.md b/docs/HDRUK/4.1.0.md similarity index 100% rename from docs/HDRUK/4.0.1.md rename to docs/HDRUK/4.1.0.md diff --git a/docs/HDRUK/4.0.1.structure.json b/docs/HDRUK/4.1.0.structure.json similarity index 100% rename from docs/HDRUK/4.0.1.structure.json rename to docs/HDRUK/4.1.0.structure.json diff --git a/docs/HDRUK/4.0.1.template.json b/docs/HDRUK/4.1.0.template.json similarity index 100% rename from docs/HDRUK/4.0.1.template.json rename to docs/HDRUK/4.1.0.template.json diff --git a/hdr_schemata/models/HDRUK/4.0.1/.gitkeep b/hdr_schemata/models/HDRUK/4.1.0/.gitkeep similarity index 100% rename from hdr_schemata/models/HDRUK/4.0.1/.gitkeep rename to hdr_schemata/models/HDRUK/4.1.0/.gitkeep diff --git a/hdr_schemata/models/HDRUK/4.0.1/schema.json b/hdr_schemata/models/HDRUK/4.1.0/schema.json similarity index 99% rename from hdr_schemata/models/HDRUK/4.0.1/schema.json rename to hdr_schemata/models/HDRUK/4.1.0/schema.json index 8dbb7331..f1f7cbae 100644 --- a/hdr_schemata/models/HDRUK/4.0.1/schema.json +++ b/hdr_schemata/models/HDRUK/4.1.0/schema.json @@ -3377,6 +3377,6 @@ "accessibility", "observations" ], - "title": "Hdruk401", + "title": "Hdruk410", "type": "object" } \ No newline at end of file diff --git a/hdr_schemata/models/HDRUK/__init__.py b/hdr_schemata/models/HDRUK/__init__.py index 7c49adaa..1fefea66 100644 --- a/hdr_schemata/models/HDRUK/__init__.py +++ b/hdr_schemata/models/HDRUK/__init__.py @@ -4,4 +4,4 @@ from .v2_2_1 import Hdruk221 from .v3_0_0 import Hdruk300 from .v4_0_0 import Hdruk400 -from .v4_0_1 import Hdruk401 +from .v4_1_0 import Hdruk410 diff --git a/hdr_schemata/models/HDRUK/create_json_schema.py b/hdr_schemata/models/HDRUK/create_json_schema.py index 5e2489f0..86ff7e3b 100644 --- a/hdr_schemata/models/HDRUK/create_json_schema.py +++ b/hdr_schemata/models/HDRUK/create_json_schema.py @@ -4,7 +4,7 @@ import v2_2_1 import v3_0_0 import v4_0_0 -import v4_0_1 +import v4_1_0 v2_1_2.Hdruk212.save_schema() v2_1_3.Hdruk213.save_schema() @@ -12,4 +12,4 @@ v2_2_1.Hdruk221.save_schema() v3_0_0.Hdruk300.save_schema() v4_0_0.Hdruk400.save_schema() -v4_0_1.Hdruk401.save_schema() +v4_1_0.Hdruk410.save_schema() diff --git a/hdr_schemata/models/HDRUK/v4_0_1/DataTable.py b/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/DataTable.py rename to hdr_schemata/models/HDRUK/v4_1_0/DataTable.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py b/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py rename to hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Icons.py b/hdr_schemata/models/HDRUK/v4_1_0/Icons.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Icons.py rename to hdr_schemata/models/HDRUK/v4_1_0/Icons.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Image.py b/hdr_schemata/models/HDRUK/v4_1_0/Image.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Image.py rename to hdr_schemata/models/HDRUK/v4_1_0/Image.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py b/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py rename to hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Project.py b/hdr_schemata/models/HDRUK/v4_1_0/Project.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Project.py rename to hdr_schemata/models/HDRUK/v4_1_0/Project.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py b/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py rename to hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Summary.py b/hdr_schemata/models/HDRUK/v4_1_0/Summary.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Summary.py rename to hdr_schemata/models/HDRUK/v4_1_0/Summary.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/__init__.py b/hdr_schemata/models/HDRUK/v4_1_0/__init__.py similarity index 95% rename from hdr_schemata/models/HDRUK/v4_0_1/__init__.py rename to hdr_schemata/models/HDRUK/v4_1_0/__init__.py index e3abc1c0..bf628635 100644 --- a/hdr_schemata/models/HDRUK/v4_0_1/__init__.py +++ b/hdr_schemata/models/HDRUK/v4_1_0/__init__.py @@ -17,7 +17,7 @@ from .StructuralMetadata import StructuralMetadata -class Hdruk401(Hdruk400): +class Hdruk410(Hdruk400): icons: Optional[Icons] = Field( None, title="Icons", @@ -52,6 +52,6 @@ class Hdruk401(Hdruk400): ) @classmethod - def save_schema(cls, location="./4.0.1/schema.json"): + def save_schema(cls, location="./4.1.0/schema.json"): with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/utils/create_example.py b/hdr_schemata/utils/create_example.py index 2a486655..069e10d8 100644 --- a/hdr_schemata/utils/create_example.py +++ b/hdr_schemata/utils/create_example.py @@ -38,5 +38,5 @@ def create_example(path): with open(f"{path}.example.json", "w") as f: json.dump(example, f, indent=6) -create_template("./docs/HDRUK/4.0.1") -create_example("./docs/HDRUK/4.0.1") +create_template("./docs/HDRUK/4.1.0") +create_example("./docs/HDRUK/4.1.0") diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index da51ee70..68cfb7b6 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -264,7 +264,7 @@ def remove_types(data): from hdr_schemata.models.HDRUK import Hdruk221 from hdr_schemata.models.HDRUK import Hdruk300 from hdr_schemata.models.HDRUK import Hdruk400 -from hdr_schemata.models.HDRUK import Hdruk401 +from hdr_schemata.models.HDRUK import Hdruk410 from hdr_schemata.models.GWDM.v1_1 import Gwdm10 from hdr_schemata.models.GWDM.v1_1 import Gwdm11 @@ -277,7 +277,7 @@ def remove_types(data): # create_markdown(Hdruk212, dir_path+"/../../docs/HDRUK", "2.1.2") # create_markdown(Hdruk213, dir_path+"/../../docs/HDRUK", "2.1.3") # create_markdown(Hdruk300, dir_path+"/../../docs/HDRUK", "3.0.0") -create_markdown(Hdruk401, dir_path+"/../../docs/HDRUK", "4.0.1") +create_markdown(Hdruk410, dir_path+"/../../docs/HDRUK", "4.1.0") # from hdr_schemata.models.GWDM.v1_1 import Gwdm10 # from hdr_schemata.models.GWDM.v1_1 import Gwdm11 From e0841367e6cb92c5da4f06e60f1d5d5d7926f3b8 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 17 Feb 2026 16:01:14 +0000 Subject: [PATCH 10/18] Add GWDM 2.1 schema and HDRUK mapping --- available.json | 3 +- hdr_schemata/models/GWDM/2.1/schema.json | 2307 +++++++++++++++++ hdr_schemata/models/GWDM/__init__.py | 1 + .../models/GWDM/create_json_schema.py | 2 + hdr_schemata/models/GWDM/v2_1/__init__.py | 79 + 5 files changed, 2391 insertions(+), 1 deletion(-) create mode 100644 hdr_schemata/models/GWDM/2.1/schema.json create mode 100644 hdr_schemata/models/GWDM/v2_1/__init__.py diff --git a/available.json b/available.json index f4c8603d..b298ea7c 100644 --- a/available.json +++ b/available.json @@ -14,7 +14,8 @@ "1.0", "1.1", "1.2", - "2.0" + "2.0", + "2.1" ], "SchemaOrg": [ "BioSchema", diff --git a/hdr_schemata/models/GWDM/2.1/schema.json b/hdr_schemata/models/GWDM/2.1/schema.json new file mode 100644 index 00000000..72149770 --- /dev/null +++ b/hdr_schemata/models/GWDM/2.1/schema.json @@ -0,0 +1,2307 @@ +{ + "$defs": { + "AbstractText": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "AbstractText" + }, + "Access": { + "additionalProperties": false, + "properties": { + "accessRights": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide details for the data access rights", + "title": "Access Rights" + }, + "accessService": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "Access Service" + }, + "accessRequestCost": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Organisation Access Request Cost" + }, + "deliveryLeadTime": { + "anyOf": [ + { + "$ref": "#/$defs/DeliveryLeadTimeV2" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "title": "Access Request Duration" + }, + "jurisdiction": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Jurisdiction" + }, + "dataController": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Data Controller" + }, + "dataProcessor": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Data Processor" + }, + "accessServiceCategory": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Where access to data come from: TRE/SED, direct access, open acccess, varies based on project.", + "examples": [ + "TRE/SDE" + ], + "title": "Access/governance requirements" + } + }, + "title": "Access", + "type": "object" + }, + "Accessibility": { + "additionalProperties": false, + "properties": { + "usage": { + "anyOf": [ + { + "$ref": "#/$defs/Usage" + }, + { + "type": "null" + } + ], + "default": null, + "description": "This section includes information about how the data can be used and how it is currently being used", + "title": "Usage" + }, + "access": { + "allOf": [ + { + "$ref": "#/$defs/Access" + } + ], + "description": "This section includes information about data access" + }, + "formatAndStandards": { + "anyOf": [ + { + "$ref": "#/$defs/FormatAndStandards" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset.", + "title": "Format and Standards" + } + }, + "required": [ + "access" + ], + "title": "Accessibility", + "type": "object" + }, + "Age": { + "properties": { + "bin": { + "allOf": [ + { + "$ref": "#/$defs/AgeEnum" + } + ], + "title": "Age bin" + }, + "count": { + "title": "Age count", + "type": "integer" + } + }, + "required": [ + "bin", + "count" + ], + "title": "Age", + "type": "object" + }, + "AgeEnum": { + "enum": [ + "0-6 days", + "7-27 days", + "1-11 months", + "1-4 years", + "5-9 years", + "10-14 years", + "15-19 years", + "20-24 years", + "25-29 years", + "30-34 years", + "35-39 years", + "40-44 years", + "45-49 years", + "50-54 years", + "55-59 years", + "60-64 years", + "65-69 years", + "70-74 years", + "75-79 years", + "80-84 years", + "85-89 years", + "90-94 years", + "95-99 years", + "100+ years" + ], + "title": "AgeEnum", + "type": "string" + }, + "AgeRange": { + "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" + }, + "Assay": { + "enum": [ + "NMR spectroscopy", + "Mass-spectrometry", + "Whole genome sequencing", + "Exome sequencing", + "Genotyping by array", + "Transcriptome profiling by high-throughput sequencing", + "Transcriptome profiling by array", + "Amplicon sequencing", + "Methylation binding domain sequencing", + "Methylation profiling by high-throughput sequencing", + "Genomic variant calling", + "Chromatin accessibility profiling by high-throughput sequencing", + "Histone modification profiling by high-throughput sequencing", + "Chromatin immunoprecipitation sequencing", + "Whole genome shotgun sequencing", + "Whole transcriptome sequencing", + "Targeted mutation analysis" + ], + "title": "Assay", + "type": "string" + }, + "CommaSeparatedValues": { + "anyOf": [ + { + "pattern": "([^,]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "CommaSeparatedValues" + }, + "Coverage": { + "properties": { + "spatial": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "Geographic Coverage" + }, + "pathway": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Pathway" + }, + "followUp": { + "anyOf": [ + { + "$ref": "#/$defs/FollowupV2" + }, + { + "type": "null" + } + ], + "default": null, + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "title": "Followup" + }, + "typicalAgeRange": { + "anyOf": [ + { + "$ref": "#/$defs/AgeRange" + }, + { + "type": "null" + } + ], + "default": null, + "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).", + "title": "Age Range" + }, + "datasetCompleteness": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "title": "Dataset coverage/completeness/quality" + } + }, + "title": "Coverage", + "type": "object" + }, + "DataColumn": { + "properties": { + "name": { + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], + "description": "The name of a column in a table.", + "title": "Column Name" + }, + "dataType": { + "description": "The name of a column in a table.", + "title": "Column Name", + "type": "string" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a column in a table.", + "title": "Column Description" + }, + "sensitive": { + "description": "A True or False value, indicating if the field is sensitive or not", + "title": "Sensitive", + "type": "boolean" + }, + "values": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataValue" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "values in a dataset", + "title": "Values" + } + }, + "required": [ + "name", + "dataType", + "sensitive" + ], + "title": "DataColumn", + "type": "object" + }, + "DataTable": { + "additionalProperties": false, + "properties": { + "name": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The name of a table in a dataset.", + "title": "Table Name" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a table in a dataset.", + "title": "Table Description'" + }, + "columns": { + "description": "A list of columns contained within a table in a dataset.", + "items": { + "$ref": "#/$defs/DataColumn" + }, + "title": "Data Columns", + "type": "array" + } + }, + "required": [ + "columns" + ], + "title": "DataTable", + "type": "object" + }, + "DataValue": { + "properties": { + "name": { + "allOf": [ + { + "$ref": "#/$defs/Name" + } + ], + "description": "Unique value in a column .", + "title": "Value Name" + }, + "description": { + "anyOf": [ + { + "maxLength": 20000, + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A description of a unique value in a column.", + "title": "Value Description" + }, + "frequency": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The frequency of occurrance of a value in a column", + "title": "Value Frequency" + } + }, + "required": [ + "name" + ], + "title": "DataValue", + "type": "object" + }, + "DatasetDescriptor": { + "properties": { + "pid": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Persistent identifier of a dataset" + }, + "title": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Title of a dataset" + }, + "url": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Url of a dataset" + } + }, + "title": "DatasetDescriptor", + "type": "object" + }, + "DatasetLinkage": { + "additionalProperties": false, + "properties": { + "isDerivedFrom": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "Derivations" + }, + "isPartOf": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "If the dataset is part of a group or family", + "examples": [ + "UKCRC Tissue Directory and Coordination Centre" + ], + "title": "Is PartOf" + }, + "linkedDatasets": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Links to other datasets.", + "examples": [ + "Yes. To any SAIL dataset & reference data.,ALL" + ], + "title": "Linked Datasets" + }, + "isMemberOf": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DatasetDescriptor" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dataset is a member of XXX(?)", + "title": "Is MemberOf" + } + }, + "title": "DatasetLinkage", + "type": "object" + }, + "DeliveryLeadTimeV2": { + "enum": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ], + "title": "DeliveryLeadTimeV2", + "type": "string" + }, + "DemographicFrequency": { + "additionalProperties": false, + "properties": { + "age": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Age" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of age bins and their corresponding counts.", + "title": "Age" + }, + "ethnicity": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Ethnicity" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of ethnicity bins and their corresponding counts.", + "title": "Ethnicity" + }, + "disease": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Disease" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Array of diseases and their corresponding counts.", + "title": "Disease" + } + }, + "title": "DemographicFrequency", + "type": "object" + }, + "Disease": { + "properties": { + "diseaseCode": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "integer" + } + ], + "title": "Disease code" + }, + "diseaseCodeVocabulary": { + "allOf": [ + { + "$ref": "#/$defs/DiseaseCodeEnum" + } + ], + "title": "Disease code vocabulary" + }, + "count": { + "title": "Disease count", + "type": "integer" + } + }, + "required": [ + "diseaseCode", + "diseaseCodeVocabulary", + "count" + ], + "title": "Disease", + "type": "object" + }, + "DiseaseCodeEnum": { + "enum": [ + "ICD10", + "SNOMED CT", + "MeSH" + ], + "title": "DiseaseCodeEnum", + "type": "string" + }, + "Doi": { + "anyOf": [ + { + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Doi" + }, + "Ethnicity": { + "properties": { + "bin": { + "allOf": [ + { + "$ref": "#/$defs/EthnicityEnum" + } + ], + "title": "Ethnicity bin" + }, + "count": { + "title": "Ethnicity count", + "type": "integer" + } + }, + "required": [ + "bin", + "count" + ], + "title": "Ethnicity", + "type": "object" + }, + "EthnicityEnum": { + "enum": [ + "White - British", + "White - Irish", + "White - Any other White background", + "Mixed - White and Black Caribbean", + "Mixed - White and Black African", + "Mixed - White and Asian", + "Mixed - Any other mixed background", + "Asian or Asian British - Indian", + "Asian or Asian British - Pakistani", + "Asian or Asian British - Bangladeshi", + "Asian or Asian British - Any other Asian background", + "Black or Black British - Caribbean", + "Black or Black British - African", + "Black or Black British - Any other Black background", + "Other Ethnic Groups - Chinese", + "Other Ethnic Groups - Any other ethnic group", + "Not stated", + "Not known" + ], + "title": "EthnicityEnum", + "type": "string" + }, + "FollowupV2": { + "enum": [ + "0 - 6 Months", + "6 - 12 Months", + "1 - 10 Years", + "> 10 Years", + "Unknown", + "Continuous", + "Other", + null + ], + "title": "FollowupV2" + }, + "FormatAndStandards": { + "additionalProperties": false, + "properties": { + "vocabularyEncodingSchemes": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Code value of the ontology vocabulary encoding", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "title": "Controlled Vocabulary" + }, + "conformsTo": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "What the vocabulary conforms to.", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "title": "Conforms To" + }, + "languages": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "examples": [ + "en" + ], + "title": "Language Code(s)" + }, + "formats": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Format(s) the dataset can be made available in", + "examples": [ + "CSV,JSON,SQL database table" + ], + "title": "Dataset Format" + } + }, + "title": "FormatAndStandards", + "type": "object" + }, + "Linkage": { + "additionalProperties": false, + "properties": { + "isGeneratedUsing": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "??", + "title": "Is Generated Using" + }, + "associatedMedia": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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/" + ], + "title": "Associated Media" + }, + "dataUses": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "??", + "title": "Data Uses" + }, + "isReferenceIn": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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.',", + "title": "Is Reference in" + }, + "tools": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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/" + ], + "title": "Tools" + }, + "datasetLinkage": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetLinkage" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Dataset Linkage copied over from", + "title": "Dataset Linkage" + }, + "investigations": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "Investigations" + }, + "syntheticDataWebLink": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Links to locations of information and or raw downloads of synthetic data associated with this dataset", + "title": "Synthetic Data Web Links" + }, + "publicationAboutDataset": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Doi" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOIs for publications which describe the dataset.", + "title": "Publication about the dataset" + }, + "publicationUsingDataset": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Doi" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOIs for publications which use the dataset for analysis.", + "title": "Publication using the dataset" + } + }, + "title": "Linkage", + "type": "object" + }, + "LongAbstractText": { + "anyOf": [ + { + "maxLength": 5000, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongAbstractText" + }, + "LongDescription": { + "anyOf": [ + { + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LongDescription" + }, + "MeasuredProperty": { + "title": "MeasuredProperty" + }, + "Name": { + "title": "Name" + }, + "Observation": { + "additionalProperties": false, + "properties": { + "observedNode": { + "allOf": [ + { + "$ref": "#/$defs/StatisticalPopulationConstrainedV2" + } + ], + "description": "Please select one of the following statistical populations for you observation", + "examples": [ + "PERSONS" + ], + "title": "Statistical Population" + }, + "measuredValue": { + "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.", + "title": "Measured Value", + "type": "integer" + }, + "disambiguatingDescription": { + "anyOf": [ + { + "$ref": "#/$defs/AbstractText" + }, + { + "type": "null" + } + ], + "default": null, + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "title": "Disambiguating Description" + }, + "observationDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + } + ], + "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.", + "title": "Observation Date" + }, + "measuredProperty": { + "allOf": [ + { + "$ref": "#/$defs/MeasuredProperty" + } + ], + "description": "Initially this will be defaulted to \"COUNT\"", + "title": "Measured Property" + } + }, + "required": [ + "observedNode", + "measuredValue", + "observationDate", + "measuredProperty" + ], + "title": "Observation", + "type": "object" + }, + "Omics": { + "additionalProperties": false, + "properties": { + "assay": { + "anyOf": [ + { + "$ref": "#/$defs/Assay" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "title": "Omics assay" + }, + "platform": { + "anyOf": [ + { + "$ref": "#/$defs/Platform" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "title": "Omics Platform" + } + }, + "title": "Omics", + "type": "object" + }, + "OneHundredFiftyCharacters": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "Organisation": { + "properties": { + "name": { + "anyOf": [ + { + "$ref": "#/$defs/Name" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Name of the organisation", + "title": "Organisation Name" + }, + "gatewayId": { + "anyOf": [ + { + "maxLength": 50, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Identifier on the gateway", + "title": "Organisation Gateway Identifier" + }, + "rorId": { + "anyOf": [ + { + "maxLength": 9, + "minLength": 9, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "title": "Research Organization Registry Identifier" + } + }, + "title": "Organisation", + "type": "object" + }, + "Origin": { + "additionalProperties": false, + "properties": { + "purpose": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the purpose(s) that the dataset was collected.", + "title": "Purpose" + }, + "source": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the source of the data extraction", + "title": "Source" + }, + "collectionSituation": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "title": "Collection Situation Setting" + }, + "imageContrast": { + "anyOf": [ + { + "$ref": "#/$defs/Ternary" + }, + { + "type": "null" + } + ], + "default": "Not stated", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "title": "Image contrast" + } + }, + "title": "Origin", + "type": "object" + }, + "PeriodicityV2": { + "enum": [ + "Static", + "Irregular", + "Continuous", + "Biennial", + "Annual", + "Biannual", + "Quarterly", + "Bimonthly", + "Monthly", + "Biweekly", + "Weekly", + "Twice a week", + "Daily", + "Other", + null + ], + "title": "PeriodicityV2" + }, + "Pipeline": { + "enum": [ + "Available", + "Not available" + ], + "title": "Pipeline", + "type": "string" + }, + "Platform": { + "enum": [ + "Other", + "NMR Nightingale", + "Metabolon", + "Biocrates", + "Illumina", + "Oxford Nanopore", + "454", + "Hi-C", + "HiFi" + ], + "title": "Platform", + "type": "string" + }, + "Provenance": { + "additionalProperties": false, + "properties": { + "origin": { + "anyOf": [ + { + "$ref": "#/$defs/Origin" + }, + { + "type": "null" + } + ], + "default": null + }, + "temporal": { + "$ref": "#/$defs/Temporal" + } + }, + "required": [ + "temporal" + ], + "title": "Provenance", + "type": "object" + }, + "Required": { + "properties": { + "gatewayId": { + "description": "Associated identifier (number) that is the BigInt key in our SQL database for the dataset version associated with this metadata", + "maxLength": 50, + "minLength": 1, + "title": "Gateway Identifier", + "type": "string" + }, + "gatewayPid": { + "description": "A unique persistent identifier for the metadata version. This is a 128-bit unique identifiers, as 32 hexadecimal digits separated by hyphens", + "maxLength": 50, + "minLength": 2, + "title": "Gateway Persistent Identifier", + "type": "string" + }, + "issued": { + "description": "Datetime stamp of when this metadata version was initially issued", + "format": "date-time", + "title": "Metadata Issued Datetime", + "type": "string" + }, + "modified": { + "description": "Datetime stamp of when this metadata was last modified", + "format": "date-time", + "title": "Last Modified Datetime", + "type": "string" + }, + "revisions": { + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "items": { + "$ref": "#/$defs/Revision" + }, + "title": "Metadata Version Revisions", + "type": "array" + }, + "version": { + "description": "Dataset metadata version", + "examples": [ + "1.1.0" + ], + "pattern": "^\\d+\\.\\d+\\.\\d+$", + "title": "Dataset Version", + "type": "string" + } + }, + "required": [ + "gatewayId", + "gatewayPid", + "issued", + "modified", + "revisions", + "version" + ], + "title": "Required", + "type": "object" + }, + "Revision": { + "properties": { + "version": { + "description": "Version number used for previous version of this dataset", + "examples": [ + "6.0.0" + ], + "maxLength": 100, + "minLength": 2, + "title": "revision version", + "type": "string" + }, + "url": { + "anyOf": [ + { + "$ref": "#/$defs/Url" + }, + { + "type": "null" + } + ], + "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" + ], + "title": "revision url" + } + }, + "required": [ + "version", + "url" + ], + "title": "Revision", + "type": "object" + }, + "SampleDonor": { + "properties": { + "id": { + "anyOf": [ + { + "maxLength": 50, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "ID of the sample donor", + "title": "Donor ID" + }, + "sex": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Sex of the sample donor", + "title": "Donor Sex" + }, + "birthDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Date of birth of the sample donor", + "title": "Donor birth date" + }, + "dataCategories": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Data categories related to the sample donor", + "title": "Donor Data Categories" + } + }, + "title": "SampleDonor", + "type": "object" + }, + "ShortTitle": { + "anyOf": [ + { + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "ShortTitle" + }, + "StatisticalPopulationConstrainedV2": { + "enum": [ + "Persons", + "Events", + "Findings", + "Number of scans per modality" + ], + "title": "StatisticalPopulationConstrainedV2", + "type": "string" + }, + "Summary": { + "properties": { + "title": { + "allOf": [ + { + "$ref": "#/$defs/TwoHundredFiftyFiveCharacters" + } + ], + "description": "The main title of the dataset", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + ], + "title": "Title" + }, + "shortTitle": { + "anyOf": [ + { + "$ref": "#/$defs/ShortTitle" + }, + { + "type": "null" + } + ], + "default": null, + "description": "A shorter descriptive title of the dataset", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "title": "Short Title" + }, + "doiName": { + "anyOf": [ + { + "$ref": "#/$defs/Doi" + }, + { + "type": "null" + } + ], + "default": null, + "description": "DOI associated to this dataset", + "examples": [ + "10.1093/ije/dyx196" + ], + "title": "DOI Name" + }, + "abstract": { + "allOf": [ + { + "$ref": "#/$defs/LongAbstractText" + } + ], + "description": "Longer abstract detailing the dataset.", + "examples": [ + "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + ], + "title": "Abstract" + }, + "keywords": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Comma separated key words associated to this dataset.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "title": "Keywords" + }, + "controlledKeywords": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Keywords that have been filtered and limited", + "title": "Controlled Keywords" + }, + "contactPoint": { + "anyOf": [ + { + "format": "email", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "email of a person who can be the main contact point of this dataset", + "example": [ + "blah.blah@blah.com" + ], + "title": "Contact Point" + }, + "datasetType": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "What type of dataset is this?", + "title": "Dataset type" + }, + "description": { + "anyOf": [ + { + "$ref": "#/$defs/LongDescription" + }, + { + "type": "null" + } + ], + "default": null, + "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" + ], + "title": "Description" + }, + "publisher": { + "anyOf": [ + { + "$ref": "#/$defs/Organisation" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Link to details about the publisher of this dataset", + "title": "Publisher" + }, + "populationSize": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Summary population size of the cohort", + "title": "Population size" + }, + "datasetSubType": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Placeholder for dataset sub-type", + "title": "Dataset Sub-type" + }, + "inPipeline": { + "anyOf": [ + { + "$ref": "#/$defs/Pipeline" + }, + { + "type": "null" + } + ], + "default": "Not available", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "title": "Dataset pipeline status" + } + }, + "required": [ + "title", + "abstract" + ], + "title": "Summary", + "type": "object" + }, + "Temporal": { + "additionalProperties": false, + "properties": { + "startDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Start Date" + }, + "endDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "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.'", + "title": "End Date" + }, + "timeLag": { + "allOf": [ + { + "$ref": "#/$defs/TimeLagV2" + } + ], + "description": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset", + "title": "Time Lag" + }, + "accrualPeriodicity": { + "allOf": [ + { + "$ref": "#/$defs/PeriodicityV2" + } + ], + "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/", + "title": "Periodicity" + }, + "distributionReleaseDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Release Date" + } + }, + "required": [ + "timeLag", + "accrualPeriodicity" + ], + "title": "Temporal", + "type": "object" + }, + "Ternary": { + "enum": [ + "Yes", + "No", + "Not stated" + ], + "title": "Ternary", + "type": "string" + }, + "TimeLagV2": { + "enum": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ], + "title": "TimeLagV2", + "type": "string" + }, + "TissueSampleMetadata": { + "properties": { + "id": { + "anyOf": [ + { + "maxLength": 50, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "ID of the tissue sample metadata", + "title": "Metadata ID" + }, + "sampleDonor": { + "anyOf": [ + { + "$ref": "#/$defs/SampleDonor" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Information about the sample donor", + "title": "Sample Donor" + }, + "sampleType": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Type of the tissue sample", + "title": "Sample Type" + }, + "storageTemperature": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Storage temperature of the tissue sample", + "title": "Storage Temperature" + }, + "creationDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Date when the tissue sample metadata was created", + "title": "Creation Date" + }, + "anatomicalSiteOntologyCode": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "title": "Anatomical Site Ontology Code" + }, + "anatomicalSiteOntologyDescription": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Ontology description for the anatomical site", + "title": "Anatomical Site Ontology Description" + }, + "anatomicalSiteFreeText": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Free text describing the anatomical site", + "title": "Anatomical Site Free Text" + }, + "sampleContentDiagnosis": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Diagnosis related to the sample content", + "title": "Sample Content Diagnosis" + }, + "useRestrictions": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Restrictions on the use of the tissue sample", + "title": "Use Restrictions" + } + }, + "title": "TissueSampleMetadata", + "type": "object" + }, + "TissuesSampleCollection": { + "properties": { + "id": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "ID of the tissue sample collection", + "title": "ID" + }, + "dataCategories": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13", + "title": "Data Categories" + }, + "materialType": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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", + "title": "Material Type" + }, + "accessConditions": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Access conditions for the tissue sample collection", + "title": "Access Conditions" + }, + "collectionType": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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)", + "title": "Collection Type" + }, + "disease": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Disease associated with the tissue sample collection", + "title": "Disease" + }, + "storageTemperature": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Storage temperature of the tissue sample collection", + "title": "Storage Temperature" + }, + "sampleAgeRange": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Age range of the tissue sample collection", + "title": "Sample Age Range" + }, + "tissueSampleMetadata": { + "anyOf": [ + { + "$ref": "#/$defs/TissueSampleMetadata" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Metadata related to the tissue sample", + "title": "Tissue Sample Metadata" + } + }, + "title": "TissuesSampleCollection", + "type": "object" + }, + "TwoHundredFiftyFiveCharacters": { + "maxLength": 255, + "minLength": 2, + "title": "TwoHundredFiftyFiveCharacters", + "type": "string" + }, + "Url": { + "anyOf": [ + { + "format": "uri", + "minLength": 1, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Url" + }, + "Usage": { + "additionalProperties": false, + "properties": { + "dataUseLimitation": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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", + "title": "Data Use Limitation" + }, + "dataUseRequirement": { + "anyOf": [ + { + "$ref": "#/$defs/CommaSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Data Use Requirements" + }, + "resourceCreator": { + "anyOf": [ + { + "$ref": "#/$defs/Organisation" + }, + { + "type": "null" + } + ], + "default": null, + "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.'", + "title": "Citation Requirements'" + } + }, + "title": "Usage", + "type": "object" + } + }, + "additionalProperties": false, + "properties": { + "required": { + "allOf": [ + { + "$ref": "#/$defs/Required" + } + ], + "description": "Required metadata needed for the GWDM" + }, + "summary": { + "allOf": [ + { + "$ref": "#/$defs/Summary" + } + ], + "description": "Summary of metadata describing key pieces of information." + }, + "coverage": { + "anyOf": [ + { + "$ref": "#/$defs/Coverage" + }, + { + "type": "null" + } + ], + "default": null, + "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.", + "title": "Coverage" + }, + "provenance": { + "anyOf": [ + { + "$ref": "#/$defs/Provenance" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness.", + "title": "Provenance" + }, + "accessibility": { + "allOf": [ + { + "$ref": "#/$defs/Accessibility" + } + ], + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets." + }, + "linkage": { + "anyOf": [ + { + "$ref": "#/$defs/Linkage" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Metadata for various linkages with datasets and other gateway entities", + "title": "Linkage" + }, + "observations": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Observation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "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", + "title": "Observations" + }, + "structuralMetadata": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/DataTable" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "title": "Structural Metadata" + }, + "tissuesSampleCollection": { + "anyOf": [ + { + "items": { + "$ref": "#/$defs/TissuesSampleCollection" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "description": "metedata for tissue samples", + "title": "Tissue Sample Collection" + }, + "demographicFrequency": { + "anyOf": [ + { + "$ref": "#/$defs/DemographicFrequency" + }, + { + "type": "null" + } + ], + "default": null, + "description": "An object containing demographic frequency data categorised by age, ethnicity, and disease attributes.", + "title": "Demographic frequency" + }, + "omics": { + "anyOf": [ + { + "$ref": "#/$defs/Omics" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Omics", + "title": "Omics" + } + }, + "required": [ + "required", + "summary", + "accessibility" + ], + "title": "Gwdm21", + "type": "object" +} \ No newline at end of file diff --git a/hdr_schemata/models/GWDM/__init__.py b/hdr_schemata/models/GWDM/__init__.py index b1330ce8..e4851655 100644 --- a/hdr_schemata/models/GWDM/__init__.py +++ b/hdr_schemata/models/GWDM/__init__.py @@ -2,3 +2,4 @@ from .v1_1 import Gwdm11 from .v1_2 import Gwdm12 from .v2_0 import Gwdm20 +from .v2_1 import Gwdm21 diff --git a/hdr_schemata/models/GWDM/create_json_schema.py b/hdr_schemata/models/GWDM/create_json_schema.py index c18be125..04a8a5ba 100644 --- a/hdr_schemata/models/GWDM/create_json_schema.py +++ b/hdr_schemata/models/GWDM/create_json_schema.py @@ -2,8 +2,10 @@ from v1_1 import Gwdm11 from v1_2 import Gwdm12 from v2_0 import Gwdm20 +from v2_1 import Gwdm21 Gwdm10.save_schema("1.0/schema.json") Gwdm11.save_schema("1.1/schema.json") Gwdm12.save_schema("1.2/schema.json") Gwdm20.save_schema("2.0/schema.json") +Gwdm21.save_schema("2.1/schema.json") diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py new file mode 100644 index 00000000..b4856f3a --- /dev/null +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -0,0 +1,79 @@ +from __future__ import annotations + +import json +from typing import Any, Dict, Optional + +from hdr_schemata.models.GWDM.v2_0 import Gwdm20 +from hdr_schemata.models.HDRUK.v4_1_0 import Hdruk410 + + +def _truncate(value: Optional[str], max_length: int) -> Optional[str]: + if value is None: + return None + return value[:max_length] + + +class Gwdm21(Gwdm20): + @classmethod + def save_schema(cls, location: str = "./2.1/schema.json") -> None: + with open(location, "w") as f: + json.dump(cls.model_json_schema(), f, indent=6) + + def to_hdruk410_payload(self) -> Dict[str, Any]: + summary = self.summary + publisher = getattr(summary, "publisher", None) + publisher_name = getattr(publisher, "name", None) if publisher else None + publisher_id = None + if publisher: + publisher_id = getattr(publisher, "gatewayId", None) or getattr(publisher, "rorId", None) + + contact_point = getattr(summary, "contactPoint", None) or "unknown@example.com" + + keywords_value = getattr(summary, "keywords", None) + if keywords_value is not None and hasattr(keywords_value, "root"): + keywords_value = keywords_value.root + keywords = None + if isinstance(keywords_value, str): + keywords = [k.strip() for k in keywords_value.split(",") if k.strip()] or None + + data_custodian = { + "identifier": publisher_id or "unknown", + "name": publisher_name or "Unknown", + "contactPoint": contact_point, + } + + payload: Dict[str, Any] = { + "identifier": self.required.gatewayPid, + "version": self.required.version, + "revisions": self.required.revisions, + "issued": self.required.issued, + "modified": self.required.modified, + "summary": { + "title": _truncate(summary.title, 150), + "funders": publisher_name or "Unknown", + "abstract": _truncate(summary.abstract, 500), + "dataCustodian": data_custodian, + "populationSize": summary.populationSize or 0, + "keywords": keywords, + "doiName": getattr(summary, "doiName", None), + "contactPoint": contact_point, + }, + "accessibility": self.accessibility, + "observations": self.observations or [], + } + + if self.coverage is not None: + payload["coverage"] = self.coverage + if self.provenance is not None: + payload["provenance"] = self.provenance + if self.demographicFrequency is not None: + payload["demographicFrequency"] = self.demographicFrequency + if self.omics is not None: + payload["omics"] = self.omics + if self.structuralMetadata is not None: + payload["structuralMetadata"] = {"tables": self.structuralMetadata} + + return payload + + def to_hdruk410(self) -> Hdruk410: + return Hdruk410.model_validate(self.to_hdruk410_payload()) From d41507962de8bab27a27b44a60b190b4a3537eb4 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 18 Feb 2026 13:45:20 +0000 Subject: [PATCH 11/18] Add GWDM 2.1 fields and docs. Align GWDM 2.1 with HDRUK 4.1.0 extras so round-trip transforms preserve funders, project metadata, and related fields, and publish the updated docs. --- docs/GWDM/2.1.form.json | 2029 +++++++++++++++++ docs/GWDM/2.1.md | 1813 +++++++++++++++ docs/GWDM/2.1.structure.json | 2483 +++++++++++++++++++++ hdr_schemata/models/GWDM/2.1/schema.json | 277 +++ hdr_schemata/models/GWDM/v2_1/Summary.py | 18 + hdr_schemata/models/GWDM/v2_1/__init__.py | 44 +- hdr_schemata/utils/create_markdown.py | 2 + 7 files changed, 6665 insertions(+), 1 deletion(-) create mode 100644 docs/GWDM/2.1.form.json create mode 100644 docs/GWDM/2.1.md create mode 100644 docs/GWDM/2.1.structure.json create mode 100644 hdr_schemata/models/GWDM/v2_1/Summary.py diff --git a/docs/GWDM/2.1.form.json b/docs/GWDM/2.1.form.json new file mode 100644 index 00000000..7dfc6fd6 --- /dev/null +++ b/docs/GWDM/2.1.form.json @@ -0,0 +1,2029 @@ +{ + "schema_fields": [ + { + "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", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "str", + "location": "required.gatewayId" + }, + { + "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", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "str", + "location": "required.gatewayPid" + }, + { + "required": true, + "title": "Metadata Issued Datetime", + "description": "Datetime stamp of when this metadata version was initially issued", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "datetime", + "location": "required.issued" + }, + { + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "datetime", + "location": "required.modified" + }, + { + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "guidance": "", + "examples": [ + "6.0.0" + ], + "is_list": false, + "is_optional": false, + "types": "str", + "location": "required.revisions.version" + }, + { + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "guidance": "", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "required.revisions.url" + }, + { + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "guidance": "", + "examples": [ + "1.1.0" + ], + "is_list": false, + "is_optional": false, + "types": "str", + "location": "required.version" + }, + { + "required": true, + "title": "Title", + "description": "The main title of the dataset", + "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + ], + "is_list": false, + "is_optional": false, + "types": { + "maxLength": 255, + "minLength": 2, + "title": "TwoHundredFiftyFiveCharacters", + "type": "string" + }, + "location": "summary.title" + }, + { + "required": false, + "title": "Short Title", + "description": "A shorter descriptive title of the dataset", + "guidance": "", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "ShortTitle", + "maxLength": 100, + "minLength": 2, + "type": "string" + }, + "location": "summary.shortTitle" + }, + { + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "guidance": "- Please note: This is **not** the DOI of the publication(s) associated with the dataset.\\n- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.\\n- If a DOI is available, please provide the DOI.\\n- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", + "examples": [ + "10.1093/ije/dyx196" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "summary.doiName" + }, + { + "required": true, + "title": "Abstract", + "description": "Longer abstract detailing the dataset.", + "guidance": "- The abstract should provide a **clear and brief descriptive** signpost for researchers who are searching for data that may be relevant to their research.\\n- The abstract should allow the reader to determine the **scope of the data collection and accurately summarise its content**.\\n- Effective abstracts should **avoid long sentences and abbreviations** where possible.\\n- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.\\n- **Abstracts should be different from the full description** for a dataset.\\n- **Example**: 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.", + "examples": [ + "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "LongAbstractText", + "maxLength": 5000, + "minLength": 5, + "type": "string" + }, + "location": "summary.abstract" + }, + { + "required": false, + "title": "Keywords", + "description": "Comma separated key words associated to this dataset.", + "guidance": "- Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.\\n- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.\\n- Text from the title is automatically included in the search, there is no need to include this in the keywords.\\n- Include words that researcher may include in their searches.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "summary.keywords" + }, + { + "required": false, + "title": "Controlled Keywords", + "description": "Keywords that have been filtered and limited", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "summary.controlledKeywords" + }, + { + "required": false, + "title": "Contact Point", + "description": "email of a person who can be the main contact point of this dataset", + "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.\\n**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**.", + "examples": [ + "gateway@hdruk.ac.uk" + ], + "is_list": false, + "is_optional": true, + "types": "EmailStr", + "location": "summary.contactPoint" + }, + { + "required": false, + "title": "Dataset type", + "description": "What type of dataset is this?", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "summary.datasetType" + }, + { + "required": false, + "title": "Description", + "description": "Longer description of the dataset in detail", + "guidance": "", + "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": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "summary.description" + }, + { + "required": false, + "title": "Organisation Name", + "description": "Name of the organisation", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Name" + }, + "location": "summary.publisher.name" + }, + { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "summary.publisher.gatewayId" + }, + { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "summary.publisher.rorId" + }, + { + "required": false, + "title": "Population size", + "description": "Summary population size of the cohort", + "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section.", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": true, + "types": "int", + "location": "summary.populationSize" + }, + { + "required": false, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "summary.datasetSubType" + }, + { + "required": false, + "title": "Dataset pipeline status", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Available", + "Not available" + ] + }, + "location": "summary.inPipeline" + }, + { + "required": false, + "title": "Funded by", + "description": "List of Funders separated by a line break", + "guidance": "Put each funder on a new line", + "examples": [ + "CRUK", + "University of Sussex" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LineSeparatedValues", + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + "location": "summary.funders" + }, + { + "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.", + "guidance": "- The geographical area covered by the dataset.\\n- Please provide a valid location.\\n- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).\\n- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes).", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "coverage.spatial" + }, + { + "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.", + "guidance": "- Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage.\\n- 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": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "coverage.pathway" + }, + { + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).\\n-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.\\n-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.\\n-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.\\n-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.\\n-**CONTINUOUS**: Data for patients is being regularly added to and updated.\\n-**UNKNOWN**: Timespan is Unknown.\\n-**OTHER**: Data available for a patient over another time 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 + ] + }, + "location": "coverage.followUp" + }, + { + "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).", + "guidance": "", + "examples": [ + "18-90" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "AgeRange", + "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" + }, + "location": "coverage.typicalAgeRange" + }, + { + "required": false, + "title": "Dataset coverage/completeness/quality", + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.\\n**Example**: https://bhfdatasciencecentre.org/dashboard/", + "examples": [ + "https://bhfdatasciencecentre.org/dashboard/" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "coverage.datasetCompleteness" + }, + { + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "guidance": "- **Research cohort**: Data collected for a defined group of people.\\n- **Study**: Data collected for a specific research study.\\n- **Disease registry**: Data collected as part of a disease registry.\\n- **Trial**: Data collected for as part of a clinical trial.\\n- **Care**: Data collected as part of routine clinical care.\\n- **Audit**: Data collected as part of an audit programme.\\n- **Administrative**: Data collected for administrative and management information purposes.\\n- **Financial**: Data collected either for payments or for billing.\\n- **Statutory**: Data collected in compliance with statutory requirements.\\n- **Other**: Data collected for other purpose.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "provenance.origin.purpose" + }, + { + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "guidance": " - **EPR**: Data Extracted from Electronic Patient Record.\\n- **Electronic survey**: Data has been extracted from electronic surveys.\\n- **LIMS**: Data has been extracted from a laboratory information management system.\\n- **Paper-based**: Data has been extracted from paper forms.\\n- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.\\n- **Machine generated**: Data has been machine generated i.e. imaging.\\n- **Other**: Data has been extracted by other means.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "provenance.origin.source" + }, + { + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "provenance.origin.collectionSituation" + }, + { + "required": false, + "title": "Image contrast", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Yes", + "No", + "Not stated" + ] + }, + "location": "provenance.origin.imageContrast" + }, + { + "required": false, + "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.", + "guidance": "- The start of the time period that the dataset provides coverage for.\\n- 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": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": true, + "types": "date", + "location": "provenance.temporal.startDate" + }, + { + "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.'", + "guidance": "- The end of the time period that the dataset provides coverage for.\\n- If the dataset is **\u201cContinuous\u201d** and has no known end date, **please leave blank**.\\n- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**.", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": true, + "types": "date", + "location": "provenance.temporal.endDate" + }, + { + "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", + "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.\\n- **Less than 1 week**: Typical time lag of less than a week.\\n- **1-2 weeks**: Typical time-lag of one to two weeks.\\n- **2-4 weeks**: Typical time-lag of two to four weeks.\\n- **1-2 months**: Typical time-lag of one to two months.\\n- **2-6 months**: Typical time-lag of two to six months.\\n- **6 months plus**: Typical time-lag of more than six months.\\n- **Variable**: Variable time-lag.\\n- **Not applicable**: Not Applicable i.e. static dataset.\\n- **Other**: Other time-lag.", + "examples": [ + "Not applicable" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ] + }, + "location": "provenance.temporal.timeLag" + }, + { + "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/", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Static", + "Irregular", + "Continuous", + "Biennial", + "Annual", + "Biannual", + "Quarterly", + "Bimonthly", + "Monthly", + "Biweekly", + "Weekly", + "Twice a week", + "Daily", + "Other", + null + ] + }, + "location": "provenance.temporal.accrualPeriodicity" + }, + { + "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.", + "guidance": "- Please indicate the frequency the dataset is published.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see [https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/)", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "is_list": false, + "is_optional": true, + "types": "date", + "location": "provenance.temporal.distributionReleaseDate" + }, + { + "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", + "guidance": "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.\\n- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.\\n- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).\\n- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.\\n- **No restriction**: This data use limitation indicates there is no restriction on use.\\n- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.\\n- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).\\n- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.usage.dataUseLimitation" + }, + { + "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.", + "guidance": "- Please indicate if there are any additional conditions set for use if any, multiple requirements may be provided.\\n- Please ensure that these restrictions are documented in access rights information.\\n- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).\\n- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.\\n- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.\\n- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.\\n- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.\\n- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.\\n- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.\\n- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.\\n- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.\\n- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.\\n- **User-specific restriction**: This requirement indicates that use is limited to use by approved users.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.usage.dataUseRequirement" + }, + { + "required": false, + "title": "Organisation Name", + "description": "Name of the organisation", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Name" + }, + "location": "accessibility.usage.resourceCreator.name" + }, + { + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "accessibility.usage.resourceCreator.gatewayId" + }, + { + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "accessibility.usage.resourceCreator.rorId" + }, + { + "required": false, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "guidance": "- The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.\\n- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", + "examples": [ + "In Progress" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.access.accessRights" + }, + { + "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.", + "guidance": "Please provide a brief description of the data access services that are available including:\\n- environment that is currently available to researchers\\n- additional consultancy and services\\n- any indication of costs associated\\n\\n If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers.\\n **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": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.accessService" + }, + { + "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.", + "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.accessRequestCost" + }, + { + "required": false, + "title": "Access Request Duration", + "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", + "guidance": "- **Less than 1 week**: Access request process typically processed in less than a week.\\n- **1-2 weeks**: Access request process typically processed in one to two weeks.\\n- **2-4 weeks**: Access request process typically processed in two to four weeks.\\n- **1-2 months**: Access request process typically processed in one to two months.\\n- **2-6 months**: Access request process typically processed in two to six months.\\n- **More than 6 months**: Access request process typically processed in more than six months.\\n- **Variable**: Access request lead time is variable.\\n- **Not applicable**: Access request process duration is not applicable.\\n- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Less than 1 week", + "1-2 weeks", + "2-4 weeks", + "1-2 months", + "2-6 months", + "More than 6 months", + "Variable", + "Not applicable", + "Other" + ] + }, + "location": "accessibility.access.deliveryLeadTime" + }, + { + "required": false, + "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.", + "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.access.jurisdiction" + }, + { + "required": false, + "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.", + "guidance": "- 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.\\n- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.\\n- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.\\n- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.\\n- Example: NHS England", + "examples": [ + "NHS England" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.dataController" + }, + { + "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.", + "guidance": "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.\\n- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.\\n- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.\\n- Examples: Not Applicable, SAIL", + "examples": [ + "Not Applicable", + "SAIL" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LongDescription", + "maxLength": 50000, + "minLength": 2, + "type": "string" + }, + "location": "accessibility.access.dataProcessor" + }, + { + "required": false, + "title": "Access/governance requirements", + "description": "Where access to data come from: TRE/SED, direct access, open acccess, varies based on project.", + "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", + "examples": [ + "TRE/SDE" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.access.accessServiceCategory" + }, + { + "required": false, + "title": "Controlled Vocabulary", + "description": "Code value of the ontology vocabulary encoding", + "guidance": "", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.formatAndStandards.vocabularyEncodingSchemes" + }, + { + "required": false, + "title": "Conforms To", + "description": "What the vocabulary conforms to.", + "guidance": "- List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.\\n- If the data is only available in a local format, 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.\\n- [**HL7 FHIR**](https://www.hl7.org/fhir/)\\n- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)\\n- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)\\n- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)\\n- [**DICOM**](https://www.dicomstandard.org/)\\n- [**I2B2**](https://www.i2b2.org/)\\n- [**IHE**](https://www.ihe.net/resources/profiles/)\\n- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)\\n- [**openEHR**](https://www.openehr.org/)\\n- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)\\n- [**PCORnet**](https://pcornet.org/data-driven-common-model/)\\n- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)\\n- **Local**: In-house developed data model.\\n- **Other**: Other standardised data model.\\n- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)\\n- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/)", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.formatAndStandards.conformsTo" + }, + { + "required": false, + "title": "Language Code(s)", + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "guidance": "", + "examples": [ + "en" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.formatAndStandards.languages" + }, + { + "required": false, + "title": "Dataset Format", + "description": "Format(s) the dataset can be made available in", + "guidance": "", + "examples": [ + "CSV,JSON,SQL database table" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "accessibility.formatAndStandards.formats" + }, + { + "required": false, + "title": "Is Generated Using", + "description": "??", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.isGeneratedUsing" + }, + { + "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", + "guidance": "", + "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": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.associatedMedia" + }, + { + "required": false, + "title": "Data Uses", + "description": "??", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.dataUses" + }, + { + "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.',", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.isReferenceIn" + }, + { + "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", + "guidance": "", + "examples": [ + "https://conceptlibrary.saildatabank.com/" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.tools" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isDerivedFrom.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isDerivedFrom.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "linkage.datasetLinkage.isDerivedFrom.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isPartOf.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isPartOf.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "linkage.datasetLinkage.isPartOf.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.linkedDatasets.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.linkedDatasets.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "linkage.datasetLinkage.linkedDatasets.url" + }, + { + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isMemberOf.pid" + }, + { + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "linkage.datasetLinkage.isMemberOf.title" + }, + { + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Url", + "format": "uri", + "minLength": 1, + "type": "string" + }, + "location": "linkage.datasetLinkage.isMemberOf.url" + }, + { + "required": false, + "title": "Investigations", + "description": "Please provide the keystone paper associated with the dataset.", + "guidance": "", + "examples": [ + "https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.investigations" + }, + { + "required": false, + "title": "Synthetic Data Web Links", + "description": "Links to locations of information and or raw downloads of synthetic data associated with this dataset", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "linkage.syntheticDataWebLink" + }, + { + "required": false, + "title": "Publication about the dataset", + "description": "DOIs for publications which describe the dataset.", + "guidance": "", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "linkage.publicationAboutDataset" + }, + { + "required": false, + "title": "Publication using the dataset", + "description": "DOIs for publications which use the dataset for analysis.", + "guidance": "", + "examples": null, + "is_list": true, + "is_optional": true, + "types": { + "title": "Doi", + "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", + "type": "string" + }, + "location": "linkage.publicationUsingDataset" + }, + { + "required": true, + "title": "Statistical Population", + "description": "Please select one of the following statistical populations for you observation", + "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "examples": [ + "PERSONS" + ], + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "Persons", + "Events", + "Findings", + "Number of scans per modality" + ] + }, + "location": "observations.observedNode" + }, + { + "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.", + "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "examples": [ + 1000 + ], + "is_list": false, + "is_optional": false, + "types": "int", + "location": "observations.measuredValue" + }, + { + "required": false, + "title": "Disambiguating Description", + "description": "If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type.", + "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "AbstractText", + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + "location": "observations.disambiguatingDescription" + }, + { + "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.", + "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "examples": [ + "2024-10-24" + ], + "is_list": false, + "is_optional": false, + "types": "date", + "location": "observations.observationDate" + }, + { + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "guidance": "Descriptive term for the observation property measured.", + "examples": [ + "Count" + ], + "is_list": false, + "is_optional": false, + "types": { + "title": "MeasuredProperty" + }, + "location": "observations.measuredProperty" + }, + { + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "structuralMetadata.name" + }, + { + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "structuralMetadata.description" + }, + { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "title": "Name" + }, + "location": "structuralMetadata.columns.name" + }, + { + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "str", + "location": "structuralMetadata.columns.dataType" + }, + { + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "structuralMetadata.columns.description" + }, + { + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "bool", + "location": "structuralMetadata.columns.sensitive" + }, + { + "required": true, + "title": "Value Name", + "description": "Unique value in a column .", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "title": "Name" + }, + "location": "structuralMetadata.columns.values.name" + }, + { + "required": false, + "title": "Value Description", + "description": "A description of a unique value in a column.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "structuralMetadata.columns.values.description" + }, + { + "required": false, + "title": "Value Frequency", + "description": "The frequency of occurrance of a value in a column", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "int", + "location": "structuralMetadata.columns.values.frequency" + }, + { + "required": false, + "title": "ID", + "description": "ID of the tissue sample collection", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.id" + }, + { + "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", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.dataCategories" + }, + { + "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", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.materialType" + }, + { + "required": false, + "title": "Access Conditions", + "description": "Access conditions for the tissue sample collection", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.accessConditions" + }, + { + "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)", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.collectionType" + }, + { + "required": false, + "title": "Disease", + "description": "Disease associated with the tissue sample collection", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.disease" + }, + { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample collection", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.storageTemperature" + }, + { + "required": false, + "title": "Sample Age Range", + "description": "Age range of the tissue sample collection", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.sampleAgeRange" + }, + { + "required": false, + "title": "Metadata ID", + "description": "ID of the tissue sample metadata", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "tissuesSampleCollection.tissueSampleMetadata.id" + }, + { + "required": false, + "title": "Donor ID", + "description": "ID of the sample donor", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.id" + }, + { + "required": false, + "title": "Donor Sex", + "description": "Sex of the sample donor", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.sex" + }, + { + "required": false, + "title": "Donor birth date", + "description": "Date of birth of the sample donor", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.birthDate" + }, + { + "required": false, + "title": "Donor Data Categories", + "description": "Data categories related to the sample donor", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleDonor.dataCategories" + }, + { + "required": false, + "title": "Sample Type", + "description": "Type of the tissue sample", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleType" + }, + { + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "tissuesSampleCollection.tissueSampleMetadata.storageTemperature" + }, + { + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "tissuesSampleCollection.tissueSampleMetadata.creationDate" + }, + { + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyCode" + }, + { + "required": false, + "title": "Anatomical Site Ontology Description", + "description": "Ontology description for the anatomical site", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteOntologyDescription" + }, + { + "required": false, + "title": "Anatomical Site Free Text", + "description": "Free text describing the anatomical site", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.anatomicalSiteFreeText" + }, + { + "required": false, + "title": "Sample Content Diagnosis", + "description": "Diagnosis related to the sample content", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.sampleContentDiagnosis" + }, + { + "required": false, + "title": "Use Restrictions", + "description": "Restrictions on the use of the tissue sample", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "CommaSeparatedValues", + "pattern": "([^,]+)", + "type": "string" + }, + "location": "tissuesSampleCollection.tissueSampleMetadata.useRestrictions" + }, + { + "required": true, + "title": "Age bin", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "0-6 days", + "7-27 days", + "1-11 months", + "1-4 years", + "5-9 years", + "10-14 years", + "15-19 years", + "20-24 years", + "25-29 years", + "30-34 years", + "35-39 years", + "40-44 years", + "45-49 years", + "50-54 years", + "55-59 years", + "60-64 years", + "65-69 years", + "70-74 years", + "75-79 years", + "80-84 years", + "85-89 years", + "90-94 years", + "95-99 years", + "100+ years" + ] + }, + "location": "demographicFrequency.age.bin" + }, + { + "required": true, + "title": "Age count", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.age.count" + }, + { + "required": true, + "title": "Ethnicity bin", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "White - British", + "White - Irish", + "White - Any other White background", + "Mixed - White and Black Caribbean", + "Mixed - White and Black African", + "Mixed - White and Asian", + "Mixed - Any other mixed background", + "Asian or Asian British - Indian", + "Asian or Asian British - Pakistani", + "Asian or Asian British - Bangladeshi", + "Asian or Asian British - Any other Asian background", + "Black or Black British - Caribbean", + "Black or Black British - African", + "Black or Black British - Any other Black background", + "Other Ethnic Groups - Chinese", + "Other Ethnic Groups - Any other ethnic group", + "Not stated", + "Not known" + ] + }, + "location": "demographicFrequency.ethnicity.bin" + }, + { + "required": true, + "title": "Ethnicity count", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.ethnicity.count" + }, + { + "required": true, + "title": "Disease code", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "str", + "location": "demographicFrequency.disease.diseaseCode" + }, + { + "required": true, + "title": "Disease code vocabulary", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": { + "type": "string", + "options": [ + "ICD10", + "SNOMED CT", + "MeSH" + ] + }, + "location": "demographicFrequency.disease.diseaseCodeVocabulary" + }, + { + "required": true, + "title": "Disease count", + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": false, + "types": "int", + "location": "demographicFrequency.disease.count" + }, + { + "required": false, + "title": "Omics assay", + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "NMR spectroscopy", + "Mass-spectrometry", + "Whole genome sequencing", + "Exome sequencing", + "Genotyping by array", + "Transcriptome profiling by high-throughput sequencing", + "Transcriptome profiling by array", + "Amplicon sequencing", + "Methylation binding domain sequencing", + "Methylation profiling by high-throughput sequencing", + "Genomic variant calling", + "Chromatin accessibility profiling by high-throughput sequencing", + "Histone modification profiling by high-throughput sequencing", + "Chromatin immunoprecipitation sequencing", + "Whole genome shotgun sequencing", + "Whole transcriptome sequencing", + "Targeted mutation analysis" + ] + }, + "location": "omics.assay" + }, + { + "required": false, + "title": "Omics Platform", + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "type": "string", + "options": [ + "Other", + "NMR Nightingale", + "Metabolon", + "Biocrates", + "Illumina", + "Oxford Nanopore", + "454", + "Hi-C", + "HiFi" + ] + }, + "location": "omics.platform" + }, + { + "required": false, + "title": "Icons", + "description": "Calculated categorization icons added during export.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Icons", + "items": { + "type": "string" + }, + "type": "array" + }, + "location": "icons" + }, + { + "required": false, + "title": "Project Title", + "description": "May or may not be different to the Dataset Title", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.projectName" + }, + { + "required": false, + "title": "Lead Researcher", + "description": "", + "guidance": "", + "examples": [ + "Dr Smith" + ], + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.leadResearcher" + }, + { + "required": false, + "title": "Lead Research Institute", + "description": "", + "guidance": "", + "examples": [ + "Sussex University" + ], + "is_list": false, + "is_optional": true, + "types": { + "maxLength": 150, + "minLength": 2, + "title": "OneHundredFiftyCharacters", + "type": "string" + }, + "location": "project.leadResearchInstitute" + }, + { + "required": false, + "title": "Grant number(s)", + "description": "List of grant numbers separated by a line break", + "guidance": "Normally specified on the grant acceptance letter", + "examples": [ + "A354t", + "ropguadg" + ], + "is_list": false, + "is_optional": true, + "types": { + "title": "LineSeparatedValues", + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + "location": "project.grantNumbers" + }, + { + "required": false, + "title": "Project Start Date", + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "project.projectStartDate" + }, + { + "required": false, + "title": "Project End Date", + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "date", + "location": "project.projectEndDate" + }, + { + "required": false, + "title": "Project Scope", + "description": "data and biospecimens expected to result from the grant.", + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "is_list": false, + "is_optional": true, + "types": "str", + "location": "project.projectScope" + }, + { + "required": false, + "title": null, + "description": "Categorization tags regarding cancer type, data type, and access.", + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "description": "A list of categorization tags (ids) for the dataset.", + "items": { + "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", + "type": "string" + }, + "title": "Dataset Filters", + "type": "array" + }, + "location": "datasetFilters" + }, + { + "required": false, + "title": "Image", + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "examples": null, + "is_list": false, + "is_optional": true, + "types": "str", + "location": "erd.image" + }, + { + "required": false, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "is_list": false, + "is_optional": true, + "types": { + "title": "Description", + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + "location": "erd.description" + } + ], + "url_regex": "^\\s*((https?:\\/\\/)*([a-zA-Z0-9-]+\\.?)+[a-zA-Z]{2,}(:\\d+)?(\\/[^\\s]*)?(\n)?)+$" +} \ No newline at end of file diff --git a/docs/GWDM/2.1.md b/docs/GWDM/2.1.md new file mode 100644 index 00000000..ecb6298e --- /dev/null +++ b/docs/GWDM/2.1.md @@ -0,0 +1,1813 @@ + +## required + +Required metadata needed for the GWDM + + + + + + +### gatewayId + +Associated identifier (number) that is the BigInt key in our SQL database for the dataset version associated with this metadata + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------| +| Gateway Identifier | | False | True | ['str'] | + + + + +### gatewayPid + +A unique persistent identifier for the metadata version. This is a 128-bit unique identifiers, as 32 hexadecimal digits separated by hyphens + +| title | guidance | is_list | required | type | +|:------------------------------|:-----------|:----------|:-----------|:--------| +| Gateway Persistent Identifier | | False | True | ['str'] | + + + + +### issued + +Datetime stamp of when this metadata version was initially issued + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:-------------| +| Metadata Issued Datetime | | False | True | ['datetime'] | + + + + +### modified + +Datetime stamp of when this metadata was last modified + +| title | guidance | is_list | required | type | +|:-----------------------|:-----------|:----------|:-----------|:-------------| +| Last Modified Datetime | | False | True | ['datetime'] | + + + + +### revisions + +A list of persistent identifiers and version numbers for previous versions of metadata for this dataset + + + + + + +#### version + +Version number used for previous version of this dataset + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:--------| +| revision version | | False | True | ['str'] | + +Examples: + + * 6.0.0 + + +#### url + +Some url with a reference to the record of a previous version of this dataset + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| revision url | | False | True | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561 + + +### version + +Dataset metadata version + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:--------| +| Dataset Version | | False | True | ['str'] | + +Examples: + + * 1.1.0 + + +## summary + +Summary of metadata describing key pieces of information. + + + + + + +### title + +The main title of the dataset + +| title | guidance | is_list | required | type | +|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------| +| Title | - The **title** 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.
- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.
- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.
- **Example**: North West London COVID-19 Patient Level Situation Report | False | True | ["TwoHundredFiftyFiveCharacters[{'maxLength': 255, 'minLength': 2, 'type': 'string'}]"] | + +Examples: + + * Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations + + +### shortTitle + +A shorter descriptive title of the dataset + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------| +| Short Title | | False | False | ["ShortTitle[{'anyOf': [{'maxLength': 100, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * ONS 2011 Census Wales (CENW) + + +### doiName + +DOI associated to this dataset + +| title | guidance | is_list | required | type | +|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------| +| DOI Name | - Please note: This is **not** the DOI of the publication(s) associated with the dataset.
- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.
- If a DOI is available, please provide the DOI.
- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service. | False | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * 10.1093/ije/dyx196 + + +### abstract + +Longer abstract detailing the dataset. + +| title | guidance | is_list | required | type | +|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------| +| Abstract | - The abstract should 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**.
- Effective abstracts should **avoid long sentences and abbreviations** where possible.
- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.
- **Abstracts should be different from the full description** for a dataset.
- **Example**: CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. | False | True | ["LongAbstractText[{'anyOf': [{'maxLength': 5000, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]"] | + +Examples: + + * COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner. + + +### keywords + +Comma separated key words associated to this dataset. + +| title | guidance | is_list | required | type | +|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Keywords | - Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.
- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.
- Text from the title is automatically included in the search, there is no need to include this in the keywords.
- Include words that researcher may include in their searches. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * Preprints,Papers,HDR UK + + +### controlledKeywords + +Keywords that have been filtered and limited + +| title | guidance | is_list | required | type | +|:--------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Controlled Keywords | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### contactPoint + +email of a person who can be the main contact point of this dataset + +| title | guidance | is_list | required | type | +|:--------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| +| Contact Point | Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.
**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**. | False | False | ['EmailStr', 'null'] | + +Examples: + + * gateway@hdruk.ac.uk + + +### datasetType + +What type of dataset is this? + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Dataset type | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### description + +Longer description of the dataset in detail + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Description | | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations

This will include:
- Papers
- COVID-19 Papers
- COVID-19 Preprint + + +### publisher + +Link to details about the publisher of this dataset + + + + + + +#### name + +Name of the organisation + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:---------------------| +| Organisation Name | | False | False | ['Name[{}]', 'null'] | + + + + +#### gatewayId + +Identifier on the gateway + +| title | guidance | is_list | required | type | +|:--------------------------------|:-----------|:----------|:-----------|:----------------| +| Organisation Gateway Identifier | | False | False | ['str', 'null'] | + + + + +#### rorId + +The Research Organization Registry (ROR) for the organisation, if applicable + +| title | guidance | is_list | required | type | +|:------------------------------------------|:-----------|:----------|:-----------|:----------------| +| Research Organization Registry Identifier | | False | False | ['str', 'null'] | + + + + +### populationSize + +Summary population size of the cohort + +| title | guidance | is_list | required | type | +|:----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Population size | This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section. | False | False | ['int', 'null'] | + +Examples: + + * 1000 + + +### datasetSubType + +Placeholder for dataset sub-type + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Dataset Sub-type | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### inPipeline + +Indicate whether this dataset is currently available for Researchers to request access. + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:--------------------------------------------------| +| Dataset pipeline status | | False | False | ["Pipeline['Available','Not available']", 'null'] | + + + + +### funders + +List of Funders separated by a line break + +| title | guidance | is_list | required | type | +|:----------|:------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------| +| Funded by | Put each funder on a new line | False | False | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * CRUK + * University of Sussex + + +## coverage + +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. + + + + + + +### spatial + +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. + +| title | guidance | is_list | required | type | +|:--------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Geographic Coverage | - The geographical area covered by the dataset.
- Please provide a valid location.
- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).
- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes). | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html + + +### pathway + +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. + +| title | guidance | is_list | required | type | +|:--------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Pathway | - 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. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### followUp + +If known, what is the typical time span that a patient appears in the dataset (follow up period) + +| title | guidance | is_list | required | type | +|:---------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------| +| Followup | If known, please indicate the typical time span that a patient appears in the dataset (follow up period).
-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.
-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.
-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.
-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.
-**CONTINUOUS**: Data for patients is being regularly added to and updated.
-**UNKNOWN**: Timespan is Unknown.
-**OTHER**: Data available for a patient over another time period. | False | False | ["FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", 'null'] | + + + + +### typicalAgeRange + +Please indicate the age range in whole years of participants in the dataset. Please provide range in the following format '[min age] – [max age]' where both the minimum and maximum are whole numbers (integers). + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Age Range | | False | False | ["AgeRange[{'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'}]}]", 'null'] | + +Examples: + + * 18-90 + + +### datasetCompleteness + +The URL where a Researcher can learn more about the completeness of the dataset. + +| title | guidance | is_list | required | type | +|:--------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Dataset coverage/completeness/quality | If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.
**Example**: https://bhfdatasciencecentre.org/dashboard/ | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://bhfdatasciencecentre.org/dashboard/ + + +## provenance + +Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness. + + + + + + +### origin + +None + + + + + + +#### purpose + +Please indicate the purpose(s) that the dataset was collected. + +| title | guidance | is_list | required | type | +|:--------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Purpose | - **Research cohort**: Data collected for a defined group of people.
- **Study**: Data collected for a specific research study.
- **Disease registry**: Data collected as part of a disease registry.
- **Trial**: Data collected for as part of a clinical trial.
- **Care**: Data collected as part of routine clinical care.
- **Audit**: Data collected as part of an audit programme.
- **Administrative**: Data collected for administrative and management information purposes.
- **Financial**: Data collected either for payments or for billing.
- **Statutory**: Data collected in compliance with statutory requirements.
- **Other**: Data collected for other purpose. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### source + +Please indicate the source of the data extraction + +| title | guidance | is_list | required | type | +|:--------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Source | - **EPR**: Data Extracted from Electronic Patient Record.
- **Electronic survey**: Data has been extracted from electronic surveys.
- **LIMS**: Data has been extracted from a laboratory information management system.
- **Paper-based**: Data has been extracted from paper forms.
- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.
- **Machine generated**: Data has been machine generated i.e. imaging.
- **Other**: Data has been extracted by other means. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### collectionSituation + +Please indicate the setting(s) where data was collected. Multiple settings may be provided + +| title | guidance | is_list | required | type | +|:-----------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Collection Situation Setting | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### imageContrast + +Indicate whether usage of imaging contrast is captured within the dataset. + +| title | guidance | is_list | required | type | +|:---------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------| +| Image contrast | If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'. | False | False | ["Ternary['Yes','No','Not stated']", 'null'] | + + + + +### temporal + +None + + + + + + +#### startDate + +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. + +| title | guidance | is_list | required | type | +|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Start Date | - 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. | False | False | ['date', 'datetime', 'null'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +#### endDate + +The end of the time period that the dataset provides coverage for. If the dataset is “Continuous” 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.' + +| title | guidance | is_list | required | type | +|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| End Date | - The end of the time period that the dataset provides coverage for.
- If the dataset is **“Continuous”** and has no known end date, **please leave blank**.
- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**. | False | False | ['date', 'datetime', 'null'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +#### timeLag + +Please indicate the typical time-lag between an event and the data for that event appearing in the dataset + +| title | guidance | is_list | required | type | +|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------| +| Time Lag | Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.
- **Less than 1 week**: Typical time lag of less than a week.
- **1-2 weeks**: Typical time-lag of one to two weeks.
- **2-4 weeks**: Typical time-lag of two to four weeks.
- **1-2 months**: Typical time-lag of one to two months.
- **2-6 months**: Typical time-lag of two to six months.
- **6 months plus**: Typical time-lag of more than six months.
- **Variable**: Variable time-lag.
- **Not applicable**: Not Applicable i.e. static dataset.
- **Other**: Other time-lag. | False | True | ["TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']"] | + +Examples: + + * Not applicable + + +#### accrualPeriodicity + +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 “on-demand” 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/ + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Periodicity | | False | True | ["PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]"] | + + + + +#### distributionReleaseDate + +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. + +| title | guidance | is_list | required | type | +|:-------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Release Date | - Please indicate the frequency the dataset is published.
- If a dataset is published regularly please choose a publishing 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 indicate when it was released.
- If a dataset is released on an irregular basis or “on-demand” 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/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/) | False | False | ['date', 'datetime', 'null'] | + +Examples: + + * 2024-10-24T00:00:00.000Z + + +## accessibility + +Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets. + + + + + + +### usage + +This section includes information about how the data can be used and how it is currently being used + + + + + + +#### dataUseLimitation + +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 + +| title | guidance | is_list | required | type | +|:--------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Data Use Limitation | 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.
- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.
- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).
- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.
- **No restriction**: This data use limitation indicates there is no restriction on use.
- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.
- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).
- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### dataUseRequirement + +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. + +| title | guidance | is_list | required | type | +|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Data Use Requirements | - Please indicate if there 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.
- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).
- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.
- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.
- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.
- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.
- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.
- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.
- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.
- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.
- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.
- **User-specific restriction**: This requirement indicates that use is limited to use by approved users. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### resourceCreator + +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: + + * National Services Scotland + + +##### name + +Name of the organisation + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:---------------------| +| Organisation Name | | False | False | ['Name[{}]', 'null'] | + + + + +##### gatewayId + +Identifier on the gateway + +| title | guidance | is_list | required | type | +|:--------------------------------|:-----------|:----------|:-----------|:----------------| +| Organisation Gateway Identifier | | False | False | ['str', 'null'] | + + + + +##### rorId + +The Research Organization Registry (ROR) for the organisation, if applicable + +| title | guidance | is_list | required | type | +|:------------------------------------------|:-----------|:----------|:-----------|:----------------| +| Research Organization Registry Identifier | | False | False | ['str', 'null'] | + + + + +### access + +This section includes information about data access + + + + + + +#### accessRights + +Please provide details for the data access rights + +| title | guidance | is_list | required | type | +|:--------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Access Rights | - The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.
- If such a resource or the underlying process doesn’t exist, please provide “In Progress”, until both the process and the documentation are ready. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * In Progress + + +#### accessService + +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. + +| title | guidance | is_list | required | type | +|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Access Service | 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. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://cnfl.extge.co.uk/display/GERE/Research+Environment+User+Guide + + +#### accessRequestCost + +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. + +| title | guidance | is_list | required | type | +|:---------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Organisation Access Request Cost | This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### deliveryLeadTime + +Please provide an indication of the typical processing times based on the types of requests typically received. + +| title | guidance | is_list | required | type | +|:------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Access Request Duration | - **Less than 1 week**: Access request process typically processed in less than a week.
- **1-2 weeks**: Access request process typically processed in one to two weeks.
- **2-4 weeks**: Access request process typically processed in two to four weeks.
- **1-2 months**: Access request process typically processed in one to two months.
- **2-6 months**: Access request process typically processed in two to six months.
- **More than 6 months**: Access request process typically processed in more than six months.
- **Variable**: Access request lead time is variable.
- **Not applicable**: Access request process duration is not applicable.
- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose “Other” and indicate the typical timeframe within the description for the dataset. | False | False | ["DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", 'null'] | + + + + +#### jurisdiction + +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. + +| title | guidance | is_list | required | type | +|:-------------|:----------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Jurisdiction | A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/ | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### dataController + +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. + +| title | guidance | is_list | required | type | +|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Data Controller | - 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.
- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.
- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.
- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.
- Example: NHS England | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * NHS England + + +#### dataProcessor + +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. + +| title | guidance | is_list | required | type | +|:---------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| +| Data Processor | 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.
- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.
- If the Publisher is also the Data Controller please provide “Not Applicable”.
- Examples: Not Applicable, SAIL | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * Not Applicable + * SAIL + + +#### accessServiceCategory + +Where access to data come from: TRE/SED, direct access, open acccess, varies based on project. + +| title | guidance | is_list | required | type | +|:-------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Access/governance requirements | Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * TRE/SDE + + +### formatAndStandards + +Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset. + + + + + + +#### vocabularyEncodingSchemes + +Code value of the ontology vocabulary encoding + +| title | guidance | is_list | required | type | +|:----------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Controlled Vocabulary | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * OPCS4,NHS NATIONAL CODES,ICD10,OTHER + + +#### conformsTo + +What the vocabulary conforms to. + +| title | guidance | is_list | required | type | +|:------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Conforms To | - List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.
- If the data is only available in a local format, please make that explicit. If you are using a standard that has not been included in the list, please use “other” and contact support desk to ask for an addition.
- [**HL7 FHIR**](https://www.hl7.org/fhir/)
- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)
- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)
- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)
- [**DICOM**](https://www.dicomstandard.org/)
- [**I2B2**](https://www.i2b2.org/)
- [**IHE**](https://www.ihe.net/resources/profiles/)
- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)
- [**openEHR**](https://www.openehr.org/)
- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)
- [**PCORnet**](https://pcornet.org/data-driven-common-model/)
- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)
- **Local**: In-house developed data model.
- **Other**: Other standardised data model.
- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)
- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)
- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/) | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * LOCAL,NHS DATA DICTIONARY + + +#### languages + +Language code(s) of the language of the dataset metadata and underlying data is made available. + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Language Code(s) | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * en + + +#### formats + +Format(s) the dataset can be made available in + +| title | guidance | is_list | required | type | +|:---------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Dataset Format | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * CSV,JSON,SQL database table + + +## linkage + +Metadata for various linkages with datasets and other gateway entities + + + + + + +### isGeneratedUsing + +?? + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Is Generated Using | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### associatedMedia + +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 + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Associated Media | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +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/ + + +### dataUses + +?? + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Data Uses | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### isReferenceIn + +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.', + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Is Reference in | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### tools + +URL of any analysis tools or models that have been created for this dataset and are available for further use + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Tools | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://conceptlibrary.saildatabank.com/ + + +### datasetLinkage + +Dataset Linkage copied over from + + + + + + +#### isDerivedFrom + +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 + + +##### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### isPartOf + +If the dataset is part of a group or family + + + +Examples: + + * UKCRC Tissue Directory and Coordination Centre + + +##### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### linkedDatasets + +Links to other datasets. + + + +Examples: + + * Yes. To any SAIL dataset & reference data.,ALL + + +##### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### isMemberOf + +Dataset is a member of XXX(?) + + + + + + +##### pid + +None + +| title | guidance | is_list | required | type | +|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### title + +None + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +##### url + +None + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| +| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### investigations + +Please provide the keystone paper associated with the dataset. + +| title | guidance | is_list | required | type | +|:---------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Investigations | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases + + +### syntheticDataWebLink + +Links to locations of information and or raw downloads of synthetic data associated with this dataset + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Synthetic Data Web Links | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### publicationAboutDataset + +DOIs for publications which describe the dataset. + +| title | guidance | is_list | required | type | +|:------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Publication about the dataset | | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | + + + + +### publicationUsingDataset + +DOIs for publications which use the dataset for analysis. + +| title | guidance | is_list | required | type | +|:------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Publication using the dataset | | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | + + + + +## observations + +Multiple observations about the dataset may be provided and users are expected to provide at least one observation
(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.
Example:
<b> Statistical Population 1
</b> type: StatisticalPopulation populationType: Persons numConstraints: 0
<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: “2017”"
+ + + + + + +### observedNode + +Please select one of the following statistical populations for you observation + +| title | guidance | is_list | required | type | +|:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------| +| Statistical Population | - **Persons**: Unique persons recorded in the dataset
- **Events**: Unique events such as procedures and prescriptions within the dataset
-**Findings**: Unique findings included in the dataset such as diagnoses'
-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays) | False | True | ["StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']"] | + +Examples: + + * PERSONS + + +### measuredValue + +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. + +| title | guidance | is_list | required | type | +|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| +| Measured Value | An integer value size of the measured property, such as ‘1000’ for 1000 people in the study or ‘87’ for 87 MRI scans in the dataset. | False | True | ['int'] | + +Examples: + + * 1000 + + +### disambiguatingDescription + +If SNOMED CT term does not provide sufficient detail, please provide a description that disambiguates the population type. + +| title | guidance | is_list | required | type | +|:---------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| +| Disambiguating Description | If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. | False | False | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### observationDate + +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. + +| title | guidance | is_list | required | type | +|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| +| Observation Date | Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000. | False | True | ['date', 'datetime'] | + +Examples: + + * 2024-10-24 + + +### measuredProperty + +Initially this will be defaulted to "COUNT" + +| title | guidance | is_list | required | type | +|:------------------|:--------------------------------------------------------|:----------|:-----------|:-------------------------| +| Measured Property | Descriptive term for the observation property measured. | False | True | ['MeasuredProperty[{}]'] | + +Examples: + + * Count + + +## structuralMetadata + +Descriptions of all tables and data elements that can be included in the dataset + + + + + + +### name + +The name of a table in a dataset. + +| title | guidance | is_list | required | type | +|:-----------|:-----------|:----------|:-----------|:----------------| +| Table Name | | False | False | ['str', 'null'] | + + + + +### description + +A description of a table in a dataset. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------| +| Table Description' | | False | False | ['str', 'null'] | + + + + +### columns + +A list of columns contained within a table in a dataset. + + + + + + +#### name + +The name of a column in a table. + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:-------------| +| Column Name | | False | True | ['Name[{}]'] | + + + + +#### dataType + +The name of a column in a table. + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:--------| +| Column Name | | False | True | ['str'] | + + + + +#### description + +A description of a column in a table. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------|:----------|:-----------|:----------------| +| Column Description | | False | False | ['str', 'null'] | + + + + +#### sensitive + +A True or False value, indicating if the field is sensitive or not + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:---------| +| Sensitive | | False | True | ['bool'] | + + + + +#### values + +values in a dataset + + + + + + +##### name + +Unique value in a column . + +| title | guidance | is_list | required | type | +|:-----------|:-----------|:----------|:-----------|:-------------| +| Value Name | | False | True | ['Name[{}]'] | + + + + +##### description + +A description of a unique value in a column. + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:----------------| +| Value Description | | False | False | ['str', 'null'] | + + + + +##### frequency + +The frequency of occurrance of a value in a column + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:----------------| +| Value Frequency | | False | False | ['int', 'null'] | + + + + +## tissuesSampleCollection + +metedata for tissue samples + + + + + + +### id + +ID of the tissue sample collection + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| ID | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### dataCategories + +The type of data that is associated with the samples in the study. Can be several values MIABIS-2.0-13 + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Data Categories | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### materialType + +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 + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Material Type | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### accessConditions + +Access conditions for the tissue sample collection + +| title | guidance | is_list | required | type | +|:------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Access Conditions | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### collectionType + +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) + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Collection Type | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### disease + +Disease associated with the tissue sample collection + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Disease | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### storageTemperature + +Storage temperature of the tissue sample collection + +| title | guidance | is_list | required | type | +|:--------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Storage Temperature | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### sampleAgeRange + +Age range of the tissue sample collection + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Sample Age Range | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +### tissueSampleMetadata + +Metadata related to the tissue sample + + + + + + +#### id + +ID of the tissue sample metadata + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:----------------| +| Metadata ID | | False | False | ['str', 'null'] | + + + + +#### sampleDonor + +Information about the sample donor + + + + + + +##### id + +ID of the sample donor + +| title | guidance | is_list | required | type | +|:---------|:-----------|:----------|:-----------|:----------------| +| Donor ID | | False | False | ['str', 'null'] | + + + + +##### sex + +Sex of the sample donor + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:----------------| +| Donor Sex | | False | False | ['str', 'null'] | + + + + +##### birthDate + +Date of birth of the sample donor + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:-----------------------------| +| Donor birth date | | False | False | ['date', 'datetime', 'null'] | + + + + +##### dataCategories + +Data categories related to the sample donor + +| title | guidance | is_list | required | type | +|:----------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Donor Data Categories | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### sampleType + +Type of the tissue sample + +| title | guidance | is_list | required | type | +|:------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Sample Type | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### storageTemperature + +Storage temperature of the tissue sample + +| title | guidance | is_list | required | type | +|:--------------------|:-----------|:----------|:-----------|:----------------| +| Storage Temperature | | False | False | ['str', 'null'] | + + + + +#### creationDate + +Date when the tissue sample metadata was created + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:-----------------------------| +| Creation Date | | False | False | ['date', 'datetime', 'null'] | + + + + +#### anatomicalSiteOntologyCode + +Ontology code for the anatomical site, this code must match an ICD-0-3 format + +| title | guidance | is_list | required | type | +|:------------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Anatomical Site Ontology Code | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### anatomicalSiteOntologyDescription + +Ontology description for the anatomical site + +| title | guidance | is_list | required | type | +|:-------------------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Anatomical Site Ontology Description | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### anatomicalSiteFreeText + +Free text describing the anatomical site + +| title | guidance | is_list | required | type | +|:--------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Anatomical Site Free Text | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### sampleContentDiagnosis + +Diagnosis related to the sample content + +| title | guidance | is_list | required | type | +|:-------------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Sample Content Diagnosis | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +#### useRestrictions + +Restrictions on the use of the tissue sample + +| title | guidance | is_list | required | type | +|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------| +| Use Restrictions | | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + + + + +## demographicFrequency + +An object containing demographic frequency data categorised by age, ethnicity, and disease attributes. + + + + + + +### age + +Array of age bins and their corresponding counts. + + + + + + +#### bin + +None + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Age bin | | False | True | ["AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']"] | + + + + +#### count + +None + +| title | guidance | is_list | required | type | +|:----------|:-----------|:----------|:-----------|:--------| +| Age count | | False | True | ['int'] | + + + + +### ethnicity + +Array of ethnicity bins and their corresponding counts. + + + + + + +#### bin + +None + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Ethnicity bin | | False | True | ["EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']"] | + + + + +#### count + +None + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:--------| +| Ethnicity count | | False | True | ['int'] | + + + + +### disease + +Array of diseases and their corresponding counts. + + + + + + +#### diseaseCode + +None + +| title | guidance | is_list | required | type | +|:-------------|:-----------|:----------|:-----------|:---------------| +| Disease code | | False | True | ['str', 'int'] | + + + + +#### diseaseCodeVocabulary + +None + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:------------------------------------------------| +| Disease code vocabulary | | False | True | ["DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']"] | + + + + +#### count + +None + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:--------| +| Disease count | | False | True | ['int'] | + + + + +## omics + +Omics + + + + + + +### assay + +The specific 'omics assay that generated the dataset. + +| title | guidance | is_list | required | type | +|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Omics assay | The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry. | False | False | ["Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", 'null'] | + + + + +### platform + +The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. + +| title | guidance | is_list | required | type | +|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------------| +| Omics Platform | The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. | False | False | ["Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", 'null'] | + + + + +## icons + +Calculated categorization icons added during export. + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Icons | | False | False | ["Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", 'null'] | + + + + +## project + +None + + + + + + +### projectName + +May or may not be different to the Dataset Title + +| title | guidance | is_list | required | type | +|:--------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Project Title | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + + + + +### leadResearcher + + + +| title | guidance | is_list | required | type | +|:----------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Lead Researcher | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + +Examples: + + * Dr Smith + + +### leadResearchInstitute + + + +| title | guidance | is_list | required | type | +|:------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| +| Lead Research Institute | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | + +Examples: + + * Sussex University + + +### grantNumbers + +List of grant numbers separated by a line break + +| title | guidance | is_list | required | type | +|:----------------|:--------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------| +| Grant number(s) | Normally specified on the grant acceptance letter | False | False | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | + +Examples: + + * A354t + * ropguadg + + +### projectStartDate + +Starting date of project grant. + +| title | guidance | is_list | required | type | +|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Project Start Date | Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection | False | False | ['date', 'datetime', 'null'] | + + + + +### projectEndDate + +Current end date of project grant. + +| title | guidance | is_list | required | type | +|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| +| Project End Date | Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection | False | False | ['date', 'datetime', 'null'] | + + + + +### projectScope + +data and biospecimens expected to result from the grant. + +| title | guidance | is_list | required | type | +|:--------------|:---------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| +| Project Scope | Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered | False | False | ['str', 'null'] | + +Examples: + + * Longitudinal genomic data including somatic mutations + + +## datasetFilters + +Categorization tags regarding cancer type, data type, and access. + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| | | False | False | ["DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", 'null'] | + + + + +## erd + +Visual representation of data table relationships. + + + + + + +### image + +An image file. + +| title | guidance | is_list | required | type | +|:--------|:---------------------------------------------------------|:----------|:-----------|:----------------| +| Image | Upload an image file (PNG, JPG, SVG) Max file size: 5MB. | False | False | ['str', 'null'] | + + + + +### description + +None + +| title | guidance | is_list | required | type | +|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| +| | | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | diff --git a/docs/GWDM/2.1.structure.json b/docs/GWDM/2.1.structure.json new file mode 100644 index 00000000..843bcc51 --- /dev/null +++ b/docs/GWDM/2.1.structure.json @@ -0,0 +1,2483 @@ +[ + { + "name": "required", + "required": true, + "title": "Required", + "description": "Required metadata needed for the GWDM", + "guidance": "", + "examples": null, + "type": [ + "Required" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "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", + "guidance": "", + "examples": null, + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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", + "guidance": "", + "examples": null, + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "issued", + "required": true, + "title": "Metadata Issued Datetime", + "description": "Datetime stamp of when this metadata version was initially issued", + "guidance": "", + "examples": null, + "type": [ + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "modified", + "required": true, + "title": "Last Modified Datetime", + "description": "Datetime stamp of when this metadata was last modified", + "guidance": "", + "examples": null, + "type": [ + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "revisions", + "required": true, + "title": "Metadata Version Revisions", + "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", + "guidance": "", + "examples": null, + "type": [ + "Revision" + ], + "is_list": true, + "is_optional": false, + "subItems": [ + { + "name": "version", + "required": true, + "title": "revision version", + "description": "Version number used for previous version of this dataset", + "guidance": "", + "examples": [ + "6.0.0" + ], + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "url", + "required": true, + "title": "revision url", + "description": "Some url with a reference to the record of a previous version of this dataset", + "guidance": "", + "examples": [ + "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" + ], + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "version", + "required": true, + "title": "Dataset Version", + "description": "Dataset metadata version", + "guidance": "", + "examples": [ + "1.1.0" + ], + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + } + ] + }, + { + "name": "summary", + "required": true, + "title": null, + "description": "Summary of metadata describing key pieces of information.", + "guidance": "", + "examples": null, + "type": [ + "Summary" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "title", + "required": true, + "title": "Title", + "description": "The main title of the dataset", + "guidance": "The title 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.- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.- Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.- Example: North West London COVID-19 Patient Level Situation Report", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author Affiliations" + ], + "type": [ + "TwoHundredFiftyFiveCharacters[{'maxLength': 255, 'minLength': 2, 'type': 'string'}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "shortTitle", + "required": false, + "title": "Short Title", + "description": "A shorter descriptive title of the dataset", + "guidance": "", + "examples": [ + "ONS 2011 Census Wales (CENW)" + ], + "type": [ + "ShortTitle[{'anyOf': [{'maxLength': 100, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "doiName", + "required": false, + "title": "DOI Name", + "description": "DOI associated to this dataset", + "guidance": "Please note: This is not the DOI of the publication(s) associated with the dataset.- All HDR UK registered datasets should either have a (DOI) or be working towards obtaining one.- If a DOI is available, please provide the DOI.- What happens if I do not have a DOI?: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", + "examples": [ + "10.1093/ije/dyx196" + ], + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "abstract", + "required": true, + "title": "Abstract", + "description": "Longer abstract detailing the dataset.", + "guidance": "The abstract should 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.- Effective abstracts should avoid long sentences and abbreviations where possible.- Note: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.- Abstracts should be different from the full description for a dataset.- Example: 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.", + "examples": [ + "COVID-19 Key Worker Testing Results data is required by NHS Digital to support COVID-19 requests for linkage, analysis and dissemination to other organisations who require the data in a timely manner." + ], + "type": [ + "LongAbstractText[{'anyOf': [{'maxLength': 5000, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "keywords", + "required": false, + "title": "Keywords", + "description": "Comma separated key words associated to this dataset.", + "guidance": "Please provide relevant and specific keywords that can improve the search engine optimization of your dataset.- Please enter one keyword at a time and click Add New Field to add further keywords.- Text from the title is automatically included in the search, there is no need to include this in the keywords.- Include words that researcher may include in their searches.", + "examples": [ + "Preprints,Papers,HDR UK" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "controlledKeywords", + "required": false, + "title": "Controlled Keywords", + "description": "Keywords that have been filtered and limited", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "contactPoint", + "required": false, + "title": "Contact Point", + "description": "email of a person who can be the main contact point of this dataset", + "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.Note: An employee's email address can only be provided on a temporary basis and if one is provided, you must obtain explicit consent for this purpose.", + "examples": [ + "gateway@hdruk.ac.uk" + ], + "type": [ + "EmailStr", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "datasetType", + "required": false, + "title": "Dataset type", + "description": "What type of dataset is this?", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "description", + "required": false, + "title": "Description", + "description": "Longer description of the dataset in detail", + "guidance": "", + "examples": [ + "Publications that mention HDR-UK (or any variant thereof) in Acknowledgements or Author AffiliationsThis will include:- Papers- COVID-19 Papers- COVID-19 Preprint" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "publisher", + "required": false, + "title": "Publisher", + "description": "Link to details about the publisher of this dataset", + "guidance": "", + "examples": null, + "type": [ + "Organisation", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": false, + "title": "Organisation Name", + "description": "Name of the organisation", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "gatewayId", + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "rorId", + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "populationSize", + "required": false, + "title": "Population size", + "description": "Summary population size of the cohort", + "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the Observations fields. The filter also allows for Researchers to search datasets which have no population size reported, but will not pull any population size captured in the Observations section.", + "examples": [ + 1000 + ], + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "datasetSubType", + "required": false, + "title": "Dataset Sub-type", + "description": "Placeholder for dataset sub-type", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "inPipeline", + "required": false, + "title": "Dataset pipeline status", + "description": "Indicate whether this dataset is currently available for Researchers to request access.", + "guidance": "", + "examples": null, + "type": [ + "Pipeline['Available','Not available']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "funders", + "required": false, + "title": "Funded by", + "description": "List of Funders separated by a line break", + "guidance": "Put each funder on a new line", + "examples": [ + "CRUK", + "University of Sussex" + ], + "type": [ + "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "Coverage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "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.", + "guidance": "The geographical area covered by the dataset.- Please provide a valid location.- For locations in the UK, this location should conform to ONS standards.- For locations in other countries we use ISO 3166-1 & ISO 3166-2.", + "examples": [ + "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "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, + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "followUp", + "required": false, + "title": "Followup", + "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period)", + "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).-0 - 6 MONTHS: Data typically available for a patient over a 0-6 month period.-6 - 12 MONTHS: Data typically available for a patient over a 6-12 month period.-1 - 10 YEARS: Data typically available for a patient over a 1-10 year period.-> 10 YEARS: Data typically available for a patient for over a 10 year period.-CONTINUOUS: Data for patients is being regularly added to and updated.-UNKNOWN: Timespan is Unknown.-OTHER: Data available for a patient over another time period.", + "examples": null, + "type": [ + "FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "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).", + "guidance": "", + "examples": [ + "18-90" + ], + "type": [ + "AgeRange[{'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'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "datasetCompleteness", + "required": false, + "title": "Dataset coverage/completeness/quality", + "description": "The URL where a Researcher can learn more about the completeness of the dataset.", + "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.Example: https://bhfdatasciencecentre.org/dashboard/", + "examples": [ + "https://bhfdatasciencecentre.org/dashboard/" + ], + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "Provenance", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "origin", + "required": false, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Origin", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "purpose", + "required": false, + "title": "Purpose", + "description": "Please indicate the purpose(s) that the dataset was collected.", + "guidance": "Research cohort: Data collected for a defined group of people.- Study: Data collected for a specific research study.- Disease registry: Data collected as part of a disease registry.- Trial: Data collected for as part of a clinical trial.- Care: Data collected as part of routine clinical care.- Audit: Data collected as part of an audit programme.- Administrative: Data collected for administrative and management information purposes.- Financial: Data collected either for payments or for billing.- Statutory: Data collected in compliance with statutory requirements.- Other: Data collected for other purpose.", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "source", + "required": false, + "title": "Source", + "description": "Please indicate the source of the data extraction", + "guidance": "EPR: Data Extracted from Electronic Patient Record.- Electronic survey: Data has been extracted from electronic surveys.- LIMS: Data has been extracted from a laboratory information management system.- Paper-based: Data has been extracted from paper forms.- Free text NLP: Data has been extracted from unstructured freetext using natural language processing.- Machine generated: Data has been machine generated i.e. imaging.- Other: Data has been extracted by other means.", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "collectionSituation", + "required": false, + "title": "Collection Situation Setting", + "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "imageContrast", + "required": false, + "title": "Image contrast", + "description": "Indicate whether usage of imaging contrast is captured within the dataset.", + "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", + "examples": null, + "type": [ + "Ternary['Yes','No','Not stated']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "temporal", + "required": true, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Temporal" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "startDate", + "required": false, + "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.", + "guidance": "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": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "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.'", + "guidance": "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 leave blank.- If there are multiple cohorts in the dataset with varying end dates, please provide the latest date.", + "examples": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "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", + "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.- Less than 1 week: Typical time lag of less than a week.- 1-2 weeks: Typical time-lag of one to two weeks.- 2-4 weeks: Typical time-lag of two to four weeks.- 1-2 months: Typical time-lag of one to two months.- 2-6 months: Typical time-lag of two to six months.- 6 months plus: Typical time-lag of more than six months.- Variable: Variable time-lag.- Not applicable: Not Applicable i.e. static dataset.- Other: Other time-lag.", + "examples": [ + "Not applicable" + ], + "type": [ + "TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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/", + "guidance": "", + "examples": null, + "type": [ + "PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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.", + "guidance": "Please indicate the frequency the dataset is published.- If a dataset is published regularly please choose a publishing 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 indicate 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": [ + "2024-10-24T00:00:00.000Z" + ], + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + } + ] + }, + { + "name": "accessibility", + "required": true, + "title": "Accessibility", + "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", + "guidance": "", + "examples": null, + "type": [ + "Accessibility" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "usage", + "required": false, + "title": "Usage", + "description": "This section includes information about how the data can be used and how it is currently being used", + "guidance": "", + "examples": null, + "type": [ + "Usage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "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", + "guidance": "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.- General research use: This data use limitation indicates that use is allowed for general research use for any research purpose.- Genetic studies only: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).- No general methods research: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.- No restriction: This data use limitation indicates there is no restriction on use.- Research-specific restrictions: This data use limitation indicates that use is limited to studies of a certain research type.- Research use only: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).- No linkage: This data use limitation indicates there is a restriction on linking to any other datasets", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "dataUseRequirement", + "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.", + "guidance": "Please indicate if there 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.- Collaboration required: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).- Ethics approval required: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.- Geographical restrictions: This requirement indicates that use is limited to within a specific geographic region.- Institution-specific restrictions: This requirement indicates that use is limited to use within an approved institution.- Not for profit use: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.- Project-specific restrictions: This requirement indicates that use is limited to use within an approved project.- Publication moratorium: This requirement indicates that requestor agrees not to publish results of studies until a specific date.- Publication required: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.- Return to database or resource: This requirement indicates that the requestor must return derived/enriched data to the database/resource.- Time limit on use: This requirement indicates that use is approved for a specific number of months.- User-specific restriction: This requirement indicates that use is limited to use by approved users.", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.'", + "guidance": "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.- To add multiple entries, please click on '+' symbol to enter each separate website.- Example: National Services Scotland", + "examples": [ + "National Services Scotland" + ], + "type": [ + "Organisation", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": false, + "title": "Organisation Name", + "description": "Name of the organisation", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "gatewayId", + "required": false, + "title": "Organisation Gateway Identifier", + "description": "Identifier on the gateway", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "rorId", + "required": false, + "title": "Research Organization Registry Identifier", + "description": "The Research Organization Registry (ROR) for the organisation, if applicable", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + } + ] + }, + { + "name": "access", + "required": true, + "title": "Access", + "description": "This section includes information about data access", + "guidance": "", + "examples": null, + "type": [ + "Access" + ], + "is_list": false, + "is_optional": false, + "subItems": [ + { + "name": "accessRights", + "required": false, + "title": "Access Rights", + "description": "Please provide details for the data access rights", + "guidance": "The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", + "examples": [ + "In Progress" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "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" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", + "examples": null, + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "Less than 1 week: Access request process typically processed in less than a week.- 1-2 weeks: Access request process typically processed in one to two weeks.- 2-4 weeks: Access request process typically processed in two to four weeks.- 1-2 months: Access request process typically processed in one to two months.- 2-6 months: Access request process typically processed in two to six months.- More than 6 months: Access request process typically processed in more than six months.- Variable: Access request lead time is variable.- Not applicable: Access request process duration is not applicable.- Other: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", + "examples": null, + "type": [ + "DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "jurisdiction", + "required": false, + "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.", + "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "dataController", + "required": false, + "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.", + "guidance": "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.- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.- Example: NHS England", + "examples": [ + "NHS England" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "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.- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.- Examples: Not Applicable, SAIL", + "examples": [ + "Not Applicable", + "SAIL" + ], + "type": [ + "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "accessServiceCategory", + "required": false, + "title": "Access/governance requirements", + "description": "Where access to data come from: TRE/SED, direct access, open acccess, varies based on project.", + "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", + "examples": [ + "TRE/SDE" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "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.", + "guidance": "", + "examples": null, + "type": [ + "FormatAndStandards", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "vocabularyEncodingSchemes", + "required": false, + "title": "Controlled Vocabulary", + "description": "Code value of the ontology vocabulary encoding", + "guidance": "", + "examples": [ + "OPCS4,NHS NATIONAL CODES,ICD10,OTHER" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "conformsTo", + "required": false, + "title": "Conforms To", + "description": "What the vocabulary conforms to.", + "guidance": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.- If the data is only available in a local format, 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.- HL7 FHIR- HL7 V2- HL7 CDA- HL7 CCOW- DICOM- I2B2- IHE- OMOP- openEHR- Sentinel- PCORnet- CDISC- Local: In-house developed data model.- Other: Other standardised data model.- NHS Data Dictionary- NHS Scotland Data Dictionary- NHS Wales Data Dictionary", + "examples": [ + "LOCAL,NHS DATA DICTIONARY" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "languages", + "required": false, + "title": "Language Code(s)", + "description": "Language code(s) of the language of the dataset metadata and underlying data is made available.", + "guidance": "", + "examples": [ + "en" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "formats", + "required": false, + "title": "Dataset Format", + "description": "Format(s) the dataset can be made available in", + "guidance": "", + "examples": [ + "CSV,JSON,SQL database table" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + } + ] + }, + { + "name": "linkage", + "required": false, + "title": "Linkage", + "description": "Metadata for various linkages with datasets and other gateway entities", + "guidance": "", + "examples": null, + "type": [ + "Linkage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "isGeneratedUsing", + "required": false, + "title": "Is Generated Using", + "description": "??", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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", + "guidance": "", + "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/" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "dataUses", + "required": false, + "title": "Data Uses", + "description": "??", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.',", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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", + "guidance": "", + "examples": [ + "https://conceptlibrary.saildatabank.com/" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "datasetLinkage", + "required": false, + "title": "Dataset Linkage", + "description": "Dataset Linkage copied over from", + "guidance": "", + "examples": null, + "type": [ + "DatasetLinkage", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "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", + "guidance": "", + "examples": [ + "Data will be minimised as appropriate relative to the data access application" + ], + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "isPartOf", + "required": false, + "title": "Is PartOf", + "description": "If the dataset is part of a group or family", + "guidance": "", + "examples": [ + "UKCRC Tissue Directory and Coordination Centre" + ], + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "linkedDatasets", + "required": false, + "title": "Linked Datasets", + "description": "Links to other datasets.", + "guidance": "", + "examples": [ + "Yes. To any SAIL dataset & reference data.,ALL" + ], + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "isMemberOf", + "required": false, + "title": "Is MemberOf", + "description": "Dataset is a member of XXX(?)", + "guidance": "", + "examples": null, + "type": [ + "DatasetDescriptor" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "pid", + "required": false, + "title": "Persistent identifier of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "title", + "required": false, + "title": "Title of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "url", + "required": false, + "title": "Url of a dataset", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + } + ] + }, + { + "name": "investigations", + "required": false, + "title": "Investigations", + "description": "Please provide the keystone paper associated with the dataset.", + "guidance": "", + "examples": [ + "https://digital.nhs.uk/services/data-access-request-service-dars/register-of-approved-data-releases" + ], + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "publicationAboutDataset", + "required": false, + "title": "Publication about the dataset", + "description": "DOIs for publications which describe the dataset.", + "guidance": "", + "examples": null, + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + }, + { + "name": "publicationUsingDataset", + "required": false, + "title": "Publication using the dataset", + "description": "DOIs for publications which use the dataset for analysis.", + "guidance": "", + "examples": null, + "type": [ + "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" + ], + "is_list": true, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "observations", + "required": false, + "title": "Observations", + "description": "Multiple observations about the dataset may be provided and users are expected to provide at least one observation (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. Example: Statistical Population 1 type: StatisticalPopulation populationType: Persons numConstraints: 0 Statistical Population 2 type: StatisticalPopulation populationType: Events numConstraints: 0 Statistical Population 3 type: StatisticalPopulation populationType: Findings numConstraints: 0 typeOf: Observation observedNode: Statistical Population 1 measuredProperty: count measuredValue: 32937 observationDate: \u201c2017\u201d\"", + "guidance": "", + "examples": null, + "type": [ + "Observation" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "observedNode", + "required": true, + "title": "Statistical Population", + "description": "Please select one of the following statistical populations for you observation", + "guidance": "Persons: Unique persons recorded in the dataset- Events: Unique events such as procedures and prescriptions within the dataset-Findings: Unique findings included in the dataset such as diagnoses'-Number of scans per modality: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", + "examples": [ + "PERSONS" + ], + "type": [ + "StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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.", + "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", + "examples": [ + 1000 + ], + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "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.", + "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", + "examples": null, + "type": [ + "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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.", + "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", + "examples": [ + "2024-10-24" + ], + "type": [ + "date", + "datetime" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "measuredProperty", + "required": true, + "title": "Measured Property", + "description": "Initially this will be defaulted to \"COUNT\"", + "guidance": "Descriptive term for the observation property measured.", + "examples": [ + "Count" + ], + "type": [ + "MeasuredProperty[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + } + ] + }, + { + "name": "structuralMetadata", + "required": false, + "title": "Structural Metadata", + "description": "Descriptions of all tables and data elements that can be included in the dataset", + "guidance": "", + "examples": null, + "type": [ + "DataTable" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": false, + "title": "Table Name", + "description": "The name of a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "description", + "required": false, + "title": "Table Description'", + "description": "A description of a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "columns", + "required": true, + "title": "Data Columns", + "description": "A list of columns contained within a table in a dataset.", + "guidance": "", + "examples": null, + "type": [ + "DataColumn" + ], + "is_list": true, + "is_optional": false, + "subItems": [ + { + "name": "name", + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "dataType", + "required": true, + "title": "Column Name", + "description": "The name of a column in a table.", + "guidance": "", + "examples": null, + "type": [ + "str" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "description", + "required": false, + "title": "Column Description", + "description": "A description of a column in a table.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "sensitive", + "required": true, + "title": "Sensitive", + "description": "A True or False value, indicating if the field is sensitive or not", + "guidance": "", + "examples": null, + "type": [ + "bool" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "values", + "required": false, + "title": "Values", + "description": "values in a dataset", + "guidance": "", + "examples": null, + "type": [ + "DataValue" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "name", + "required": true, + "title": "Value Name", + "description": "Unique value in a column .", + "guidance": "", + "examples": null, + "type": [ + "Name[{}]" + ], + "is_list": false, + "is_optional": false, + "subItems": [] + }, + { + "name": "description", + "required": false, + "title": "Value Description", + "description": "A description of a unique value in a column.", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "frequency", + "required": false, + "title": "Value Frequency", + "description": "The frequency of occurrance of a value in a column", + "guidance": "", + "examples": null, + "type": [ + "int", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + } + ] + } + ] + }, + { + "name": "tissuesSampleCollection", + "required": false, + "title": "Tissue Sample Collection", + "description": "metedata for tissue samples", + "guidance": "", + "examples": null, + "type": [ + "TissuesSampleCollection" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "id", + "required": false, + "title": "ID", + "description": "ID of the tissue sample collection", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "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", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "accessConditions", + "required": false, + "title": "Access Conditions", + "description": "Access conditions for the tissue sample collection", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "collectionType", + "required": false, + "title": "Collection Type", + "description": "The type of the sample collection. Can be several values MIABIS-2.0-16", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "disease", + "required": false, + "title": "Disease", + "description": "Disease associated with the tissue sample collection", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "storageTemperature", + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample collection", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "sampleAgeRange", + "required": false, + "title": "Sample Age Range", + "description": "Age range of the tissue sample collection", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "tissueSampleMetadata", + "required": false, + "title": "Tissue Sample Metadata", + "description": "Metadata related to the tissue sample", + "guidance": "", + "examples": null, + "type": [ + "TissueSampleMetadata", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "id", + "required": false, + "title": "Metadata ID", + "description": "ID of the tissue sample metadata", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "sampleDonor", + "required": false, + "title": "Sample Donor", + "description": "Information about the sample donor", + "guidance": "", + "examples": null, + "type": [ + "SampleDonor", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "id", + "required": false, + "title": "Donor ID", + "description": "ID of the sample donor", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "sex", + "required": false, + "title": "Donor Sex", + "description": "Sex of the sample donor", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "birthDate", + "required": false, + "title": "Donor birth date", + "description": "Date of birth of the sample donor", + "guidance": "", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "dataCategories", + "required": false, + "title": "Donor Data Categories", + "description": "Data categories related to the sample donor", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + }, + { + "name": "sampleType", + "required": false, + "title": "Sample Type", + "description": "Type of the tissue sample", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "storageTemperature", + "required": false, + "title": "Storage Temperature", + "description": "Storage temperature of the tissue sample", + "guidance": "", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "creationDate", + "required": false, + "title": "Creation Date", + "description": "Date when the tissue sample metadata was created", + "guidance": "", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "anatomicalSiteOntologyCode", + "required": false, + "title": "Anatomical Site Ontology Code", + "description": "Ontology code for the anatomical site, this code must match an ICD-0-3 format", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "anatomicalSiteOntologyDescription", + "required": false, + "title": "Anatomical Site Ontology Description", + "description": "Ontology description for the anatomical site", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "anatomicalSiteFreeText", + "required": false, + "title": "Anatomical Site Free Text", + "description": "Free text describing the anatomical site", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "sampleContentDiagnosis", + "required": false, + "title": "Sample Content Diagnosis", + "description": "Diagnosis related to the sample content", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "useRestrictions", + "required": false, + "title": "Use Restrictions", + "description": "Restrictions on the use of the tissue sample", + "guidance": "", + "examples": null, + "type": [ + "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + } + ] + }, + { + "name": "demographicFrequency", + "required": false, + "title": "Demographic frequency", + "description": "An object containing demographic frequency data categorised by age, ethnicity, and disease attributes.", + "guidance": "", + "examples": null, + "type": [ + "DemographicFrequency", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "age", + "required": false, + "title": "Age", + "description": "Array of age bins and their corresponding counts.", + "guidance": "", + "examples": null, + "type": [ + "Age" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "bin", + "required": true, + "title": "Age bin", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Age count", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + }, + { + "name": "ethnicity", + "required": false, + "title": "Ethnicity", + "description": "Array of ethnicity bins and their corresponding counts.", + "guidance": "", + "examples": null, + "type": [ + "Ethnicity" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "bin", + "required": true, + "title": "Ethnicity bin", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Ethnicity count", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + }, + { + "name": "disease", + "required": false, + "title": "Disease", + "description": "Array of diseases and their corresponding counts.", + "guidance": "", + "examples": null, + "type": [ + "Disease" + ], + "is_list": true, + "is_optional": true, + "subItems": [ + { + "name": "diseaseCode", + "required": true, + "title": "Disease code", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "str", + "int" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "diseaseCodeVocabulary", + "required": true, + "title": "Disease code vocabulary", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']" + ], + "is_list": false, + "is_optional": false + }, + { + "name": "count", + "required": true, + "title": "Disease count", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "int" + ], + "is_list": false, + "is_optional": false + } + ] + } + ] + }, + { + "name": "omics", + "required": false, + "title": "Omics", + "description": "Omics", + "guidance": "", + "examples": null, + "type": [ + "Omics", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "assay", + "required": false, + "title": "Omics assay", + "description": "The specific 'omics assay that generated the dataset.", + "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", + "examples": null, + "type": [ + "Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "platform", + "required": false, + "title": "Omics Platform", + "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", + "examples": null, + "type": [ + "Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "icons", + "required": false, + "title": "Icons", + "description": "Calculated categorization icons added during export.", + "guidance": "", + "examples": null, + "type": [ + "Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "project", + "required": false, + "title": "Project", + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Project", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "projectName", + "required": false, + "title": "Project Title", + "description": "May or may not be different to the Dataset Title", + "guidance": "", + "examples": null, + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "leadResearcher", + "required": false, + "title": "Lead Researcher", + "description": "", + "guidance": "", + "examples": [ + "Dr Smith" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "leadResearchInstitute", + "required": false, + "title": "Lead Research Institute", + "description": "", + "guidance": "", + "examples": [ + "Sussex University" + ], + "type": [ + "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "grantNumbers", + "required": false, + "title": "Grant number(s)", + "description": "List of grant numbers separated by a line break", + "guidance": "Normally specified on the grant acceptance letter", + "examples": [ + "A354t", + "ropguadg" + ], + "type": [ + "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "projectStartDate", + "required": false, + "title": "Project Start Date", + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "projectEndDate", + "required": false, + "title": "Project End Date", + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "examples": null, + "type": [ + "date", + "datetime", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "projectScope", + "required": false, + "title": "Project Scope", + "description": "data and biospecimens expected to result from the grant.", + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + } + ] + }, + { + "name": "datasetFilters", + "required": false, + "title": null, + "description": "Categorization tags regarding cancer type, data type, and access.", + "guidance": "", + "examples": null, + "type": [ + "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + }, + { + "name": "erd", + "required": false, + "title": "Entity Relationship Diagram", + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "examples": null, + "type": [ + "Image", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [ + { + "name": "image", + "required": false, + "title": "Image", + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "examples": null, + "type": [ + "str", + "null" + ], + "is_list": false, + "is_optional": true + }, + { + "name": "description", + "required": false, + "title": null, + "description": null, + "guidance": "", + "examples": null, + "type": [ + "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", + "null" + ], + "is_list": false, + "is_optional": true, + "subItems": [] + } + ] + } +] \ No newline at end of file diff --git a/hdr_schemata/models/GWDM/2.1/schema.json b/hdr_schemata/models/GWDM/2.1/schema.json index 72149770..de261ce0 100644 --- a/hdr_schemata/models/GWDM/2.1/schema.json +++ b/hdr_schemata/models/GWDM/2.1/schema.json @@ -544,6 +544,15 @@ "title": "DatasetDescriptor", "type": "object" }, + "DatasetFilters": { + "description": "A list of categorization tags (ids) for the dataset.", + "items": { + "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", + "type": "string" + }, + "title": "Dataset Filters", + "type": "array" + }, "DatasetLinkage": { "additionalProperties": false, "properties": { @@ -694,6 +703,19 @@ "title": "DemographicFrequency", "type": "object" }, + "Description": { + "anyOf": [ + { + "maxLength": 10000, + "minLength": 2, + "type": "string" + }, + { + "type": "null" + } + ], + "title": "Description" + }, "Disease": { "properties": { "diseaseCode": { @@ -1044,6 +1066,18 @@ ], "title": "LongAbstractText" }, + "LineSeparatedValues": { + "anyOf": [ + { + "pattern": "([^\\\\r\\\\n]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "title": "LineSeparatedValues" + }, "LongDescription": { "anyOf": [ { @@ -1057,6 +1091,54 @@ ], "title": "LongDescription" }, + "Icons": { + "anyOf": [ + { + "items": { + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", + "title": "Icons" + }, + "Image": { + "additionalProperties": false, + "properties": { + "image": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "contentMediaType": "image/*", + "default": null, + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "title": "Image" + }, + "description": { + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "title": "Image", + "type": "object" + }, "MeasuredProperty": { "title": "MeasuredProperty" }, @@ -1306,6 +1388,132 @@ "title": "Pipeline", "type": "string" }, + "Project": { + "additionalProperties": false, + "properties": { + "projectName": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "May or may not be different to the Dataset Title", + "title": "Project Title" + }, + "leadResearcher": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "", + "examples": [ + "Dr Smith" + ], + "title": "Lead Researcher" + }, + "leadResearchInstitute": { + "anyOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "", + "examples": [ + "Sussex University" + ], + "title": "Lead Research Institute" + }, + "grantNumbers": { + "anyOf": [ + { + "$ref": "#/$defs/LineSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "List of grant numbers separated by a line break", + "examples": [ + "A354t", + "ropguadg" + ], + "guidance": "Normally specified on the grant acceptance letter", + "title": "Grant number(s)" + }, + "projectStartDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Starting date of project grant.", + "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "title": "Project Start Date" + }, + "projectEndDate": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "format": "date-time", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Current end date of project grant.", + "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", + "title": "Project End Date" + }, + "projectScope": { + "anyOf": [ + { + "maxLength": 500, + "minLength": 5, + "type": "string" + }, + { + "type": "null" + } + ], + "description": "data and biospecimens expected to result from the grant.", + "examples": [ + "Longitudinal genomic data including somatic mutations" + ], + "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", + "title": "Project Scope" + } + }, + "title": "Project", + "type": "object" + }, "Platform": { "enum": [ "Other", @@ -1539,6 +1747,24 @@ ], "title": "Title" }, + "funders": { + "anyOf": [ + { + "$ref": "#/$defs/LineSeparatedValues" + }, + { + "type": "null" + } + ], + "default": null, + "description": "List of Funders separated by a line break", + "examples": [ + "CRUK", + "University of Sussex" + ], + "guidance": "Put each funder on a new line", + "title": "Funded by" + }, "shortTitle": { "anyOf": [ { @@ -2295,6 +2521,57 @@ "default": null, "description": "Omics", "title": "Omics" + }, + "icons": { + "anyOf": [ + { + "$ref": "#/$defs/Icons" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Calculated categorization icons added during export.", + "title": "Icons" + }, + "project": { + "anyOf": [ + { + "$ref": "#/$defs/Project" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Project" + }, + "datasetFilters": { + "anyOf": [ + { + "$ref": "#/$defs/DatasetFilters" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Categorization tags regarding cancer type, data type, and access." + }, + "erd": { + "anyOf": [ + { + "$ref": "#/$defs/Image" + }, + { + "type": "null" + } + ], + "default": null, + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "title": "Entity Relationship Diagram" } }, "required": [ diff --git a/hdr_schemata/models/GWDM/v2_1/Summary.py b/hdr_schemata/models/GWDM/v2_1/Summary.py new file mode 100644 index 00000000..ec0e303d --- /dev/null +++ b/hdr_schemata/models/GWDM/v2_1/Summary.py @@ -0,0 +1,18 @@ +from __future__ import annotations + +from typing import Optional + +from pydantic import Field + +from hdr_schemata.models.GWDM.v2_0.Summary import Summary as Gwdm20Summary +from hdr_schemata.models.HDRUK.v4_1_0.LineSeparatedValues import LineSeparatedValues + + +class Summary(Gwdm20Summary): + funders: Optional[LineSeparatedValues] = Field( + None, + title="Funded by", + description="List of Funders separated by a line break", + examples=["CRUK", "University of Sussex"], + json_schema_extra={"guidance": "Put each funder on a new line"}, + ) diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index b4856f3a..41ab6db1 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -3,8 +3,16 @@ import json from typing import Any, Dict, Optional +from pydantic import Field + from hdr_schemata.models.GWDM.v2_0 import Gwdm20 from hdr_schemata.models.HDRUK.v4_1_0 import Hdruk410 +from hdr_schemata.models.HDRUK.v4_1_0.DatasetFilters import DatasetFilters +from hdr_schemata.models.HDRUK.v4_1_0.Icons import Icons +from hdr_schemata.models.HDRUK.v4_1_0.Image import Image +from hdr_schemata.models.HDRUK.v4_1_0.Project import Project + +from .Summary import Summary def _truncate(value: Optional[str], max_length: int) -> Optional[str]: @@ -14,6 +22,28 @@ def _truncate(value: Optional[str], max_length: int) -> Optional[str]: class Gwdm21(Gwdm20): + summary: Summary = Field(..., description="Summary of metadata describing key pieces of information.") + icons: Optional[Icons] = Field( + None, + title="Icons", + description="Calculated categorization icons added during export.", + ) + project: Optional[Project] = Field(None, title="Project") + datasetFilters: Optional[DatasetFilters] = Field( + None, + description="Categorization tags regarding cancer type, data type, and access.", + ) + erd: Optional[Image] = Field( + None, + title="Entity Relationship Diagram", + description="Visual representation of data table relationships.", + json_schema_extra={ + "guidance": ( + "Please upload an image file (max 5MB) showing the relationship between the different tables" + ) + }, + ) + @classmethod def save_schema(cls, location: str = "./2.1/schema.json") -> None: with open(location, "w") as f: @@ -42,6 +72,10 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: "contactPoint": contact_point, } + funders_value = getattr(summary, "funders", None) + if funders_value is not None and hasattr(funders_value, "root"): + funders_value = funders_value.root + payload: Dict[str, Any] = { "identifier": self.required.gatewayPid, "version": self.required.version, @@ -50,7 +84,7 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: "modified": self.required.modified, "summary": { "title": _truncate(summary.title, 150), - "funders": publisher_name or "Unknown", + "funders": funders_value or publisher_name or "Unknown", "abstract": _truncate(summary.abstract, 500), "dataCustodian": data_custodian, "populationSize": summary.populationSize or 0, @@ -72,6 +106,14 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: payload["omics"] = self.omics if self.structuralMetadata is not None: payload["structuralMetadata"] = {"tables": self.structuralMetadata} + if self.icons is not None: + payload["icons"] = self.icons + if self.project is not None: + payload["project"] = self.project + if self.datasetFilters is not None: + payload["datasetFilters"] = self.datasetFilters + if self.erd is not None: + payload["erd"] = self.erd return payload diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index 68cfb7b6..fed0cd6b 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -270,6 +270,7 @@ def remove_types(data): from hdr_schemata.models.GWDM.v1_1 import Gwdm11 from hdr_schemata.models.GWDM.v1_2 import Gwdm12 from hdr_schemata.models.GWDM.v2_0 import Gwdm20 +from hdr_schemata.models.GWDM.v2_1 import Gwdm21 # create_markdown(Hdruk220, dir_path+"/../../docs/HDRUK", "2.2.0") @@ -288,3 +289,4 @@ def remove_types(data): # create_markdown(Gwdm11, dir_path+"/../../docs/GWDM", "1.1") # create_markdown(Gwdm12, dir_path+"/../../docs/GWDM", "1.2") # create_markdown(Gwdm20, dir_path+"/../../docs/GWDM", "2.0") +create_markdown(Gwdm21, dir_path+"/../../docs/GWDM", "2.1") From 4ecd603f266a8db649503463e5b928b97d97dec4 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 18 Feb 2026 14:25:01 +0000 Subject: [PATCH 12/18] Normalize dataset filters pattern. Align GWDM 2.1 datasetFilters regex escaping with the latest schema output. --- hdr_schemata/models/GWDM/2.1/schema.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hdr_schemata/models/GWDM/2.1/schema.json b/hdr_schemata/models/GWDM/2.1/schema.json index de261ce0..1d96d8fa 100644 --- a/hdr_schemata/models/GWDM/2.1/schema.json +++ b/hdr_schemata/models/GWDM/2.1/schema.json @@ -547,7 +547,7 @@ "DatasetFilters": { "description": "A list of categorization tags (ids) for the dataset.", "items": { - "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", "type": "string" }, "title": "Dataset Filters", From 55cf7aeb1d57c65f49b5492a055d167e08a39542 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 11 Mar 2026 11:24:25 +0000 Subject: [PATCH 13/18] Rename HDRUK 4.1.0 to 4.0.1 --- available.json | 2 +- .../{4.1.0.example.json => 4.0.1.example.json} | 0 docs/HDRUK/{4.1.0.form.json => 4.0.1.form.json} | 0 docs/HDRUK/{4.1.0.md => 4.0.1.md} | 0 ...4.1.0.structure.json => 4.0.1.structure.json} | 0 .../{4.1.0.template.json => 4.0.1.template.json} | 0 hdr_schemata/models/GWDM/v2_1/Summary.py | 2 +- hdr_schemata/models/GWDM/v2_1/__init__.py | 16 ++++++++-------- .../models/HDRUK/{4.1.0 => 4.0.1}/.gitkeep | 0 .../models/HDRUK/{4.1.0 => 4.0.1}/schema.json | 2 +- hdr_schemata/models/HDRUK/__init__.py | 2 +- hdr_schemata/models/HDRUK/create_json_schema.py | 4 ++-- .../models/HDRUK/{v4_1_0 => v4_0_1}/DataTable.py | 0 .../HDRUK/{v4_1_0 => v4_0_1}/DatasetFilters.py | 0 .../models/HDRUK/{v4_1_0 => v4_0_1}/Icons.py | 0 .../models/HDRUK/{v4_1_0 => v4_0_1}/Image.py | 0 .../{v4_1_0 => v4_0_1}/LineSeparatedValues.py | 0 .../models/HDRUK/{v4_1_0 => v4_0_1}/Project.py | 0 .../{v4_1_0 => v4_0_1}/StructuralMetadata.py | 0 .../models/HDRUK/{v4_1_0 => v4_0_1}/Summary.py | 0 .../models/HDRUK/{v4_1_0 => v4_0_1}/__init__.py | 4 ++-- hdr_schemata/utils/create_example.py | 4 ++-- hdr_schemata/utils/create_markdown.py | 4 ++-- 23 files changed, 20 insertions(+), 20 deletions(-) rename docs/HDRUK/{4.1.0.example.json => 4.0.1.example.json} (100%) rename docs/HDRUK/{4.1.0.form.json => 4.0.1.form.json} (100%) rename docs/HDRUK/{4.1.0.md => 4.0.1.md} (100%) rename docs/HDRUK/{4.1.0.structure.json => 4.0.1.structure.json} (100%) rename docs/HDRUK/{4.1.0.template.json => 4.0.1.template.json} (100%) rename hdr_schemata/models/HDRUK/{4.1.0 => 4.0.1}/.gitkeep (100%) rename hdr_schemata/models/HDRUK/{4.1.0 => 4.0.1}/schema.json (99%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/DataTable.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/DatasetFilters.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/Icons.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/Image.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/LineSeparatedValues.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/Project.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/StructuralMetadata.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/Summary.py (100%) rename hdr_schemata/models/HDRUK/{v4_1_0 => v4_0_1}/__init__.py (95%) diff --git a/available.json b/available.json index b298ea7c..c0d9f981 100644 --- a/available.json +++ b/available.json @@ -8,7 +8,7 @@ "2.2.1", "3.0.0", "4.0.0", - "4.1.0" + "4.0.1" ], "GWDM": [ "1.0", diff --git a/docs/HDRUK/4.1.0.example.json b/docs/HDRUK/4.0.1.example.json similarity index 100% rename from docs/HDRUK/4.1.0.example.json rename to docs/HDRUK/4.0.1.example.json diff --git a/docs/HDRUK/4.1.0.form.json b/docs/HDRUK/4.0.1.form.json similarity index 100% rename from docs/HDRUK/4.1.0.form.json rename to docs/HDRUK/4.0.1.form.json diff --git a/docs/HDRUK/4.1.0.md b/docs/HDRUK/4.0.1.md similarity index 100% rename from docs/HDRUK/4.1.0.md rename to docs/HDRUK/4.0.1.md diff --git a/docs/HDRUK/4.1.0.structure.json b/docs/HDRUK/4.0.1.structure.json similarity index 100% rename from docs/HDRUK/4.1.0.structure.json rename to docs/HDRUK/4.0.1.structure.json diff --git a/docs/HDRUK/4.1.0.template.json b/docs/HDRUK/4.0.1.template.json similarity index 100% rename from docs/HDRUK/4.1.0.template.json rename to docs/HDRUK/4.0.1.template.json diff --git a/hdr_schemata/models/GWDM/v2_1/Summary.py b/hdr_schemata/models/GWDM/v2_1/Summary.py index ec0e303d..554e4207 100644 --- a/hdr_schemata/models/GWDM/v2_1/Summary.py +++ b/hdr_schemata/models/GWDM/v2_1/Summary.py @@ -5,7 +5,7 @@ from pydantic import Field from hdr_schemata.models.GWDM.v2_0.Summary import Summary as Gwdm20Summary -from hdr_schemata.models.HDRUK.v4_1_0.LineSeparatedValues import LineSeparatedValues +from hdr_schemata.models.HDRUK.v4_0_1.LineSeparatedValues import LineSeparatedValues class Summary(Gwdm20Summary): diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 41ab6db1..14504c71 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -6,11 +6,11 @@ from pydantic import Field from hdr_schemata.models.GWDM.v2_0 import Gwdm20 -from hdr_schemata.models.HDRUK.v4_1_0 import Hdruk410 -from hdr_schemata.models.HDRUK.v4_1_0.DatasetFilters import DatasetFilters -from hdr_schemata.models.HDRUK.v4_1_0.Icons import Icons -from hdr_schemata.models.HDRUK.v4_1_0.Image import Image -from hdr_schemata.models.HDRUK.v4_1_0.Project import Project +from hdr_schemata.models.HDRUK.v4_0_1 import Hdruk401 +from hdr_schemata.models.HDRUK.v4_0_1.DatasetFilters import DatasetFilters +from hdr_schemata.models.HDRUK.v4_0_1.Icons import Icons +from hdr_schemata.models.HDRUK.v4_0_1.Image import Image +from hdr_schemata.models.HDRUK.v4_0_1.Project import Project from .Summary import Summary @@ -49,7 +49,7 @@ def save_schema(cls, location: str = "./2.1/schema.json") -> None: with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) - def to_hdruk410_payload(self) -> Dict[str, Any]: + def to_hdruk401_payload(self) -> Dict[str, Any]: summary = self.summary publisher = getattr(summary, "publisher", None) publisher_name = getattr(publisher, "name", None) if publisher else None @@ -117,5 +117,5 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: return payload - def to_hdruk410(self) -> Hdruk410: - return Hdruk410.model_validate(self.to_hdruk410_payload()) + def to_hdruk401(self) -> Hdruk401: + return Hdruk401.model_validate(self.to_hdruk401_payload()) diff --git a/hdr_schemata/models/HDRUK/4.1.0/.gitkeep b/hdr_schemata/models/HDRUK/4.0.1/.gitkeep similarity index 100% rename from hdr_schemata/models/HDRUK/4.1.0/.gitkeep rename to hdr_schemata/models/HDRUK/4.0.1/.gitkeep diff --git a/hdr_schemata/models/HDRUK/4.1.0/schema.json b/hdr_schemata/models/HDRUK/4.0.1/schema.json similarity index 99% rename from hdr_schemata/models/HDRUK/4.1.0/schema.json rename to hdr_schemata/models/HDRUK/4.0.1/schema.json index f1f7cbae..8dbb7331 100644 --- a/hdr_schemata/models/HDRUK/4.1.0/schema.json +++ b/hdr_schemata/models/HDRUK/4.0.1/schema.json @@ -3377,6 +3377,6 @@ "accessibility", "observations" ], - "title": "Hdruk410", + "title": "Hdruk401", "type": "object" } \ No newline at end of file diff --git a/hdr_schemata/models/HDRUK/__init__.py b/hdr_schemata/models/HDRUK/__init__.py index 1fefea66..7c49adaa 100644 --- a/hdr_schemata/models/HDRUK/__init__.py +++ b/hdr_schemata/models/HDRUK/__init__.py @@ -4,4 +4,4 @@ from .v2_2_1 import Hdruk221 from .v3_0_0 import Hdruk300 from .v4_0_0 import Hdruk400 -from .v4_1_0 import Hdruk410 +from .v4_0_1 import Hdruk401 diff --git a/hdr_schemata/models/HDRUK/create_json_schema.py b/hdr_schemata/models/HDRUK/create_json_schema.py index 86ff7e3b..5e2489f0 100644 --- a/hdr_schemata/models/HDRUK/create_json_schema.py +++ b/hdr_schemata/models/HDRUK/create_json_schema.py @@ -4,7 +4,7 @@ import v2_2_1 import v3_0_0 import v4_0_0 -import v4_1_0 +import v4_0_1 v2_1_2.Hdruk212.save_schema() v2_1_3.Hdruk213.save_schema() @@ -12,4 +12,4 @@ v2_2_1.Hdruk221.save_schema() v3_0_0.Hdruk300.save_schema() v4_0_0.Hdruk400.save_schema() -v4_1_0.Hdruk410.save_schema() +v4_0_1.Hdruk401.save_schema() diff --git a/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py b/hdr_schemata/models/HDRUK/v4_0_1/DataTable.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/DataTable.py rename to hdr_schemata/models/HDRUK/v4_0_1/DataTable.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py b/hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py rename to hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Icons.py b/hdr_schemata/models/HDRUK/v4_0_1/Icons.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/Icons.py rename to hdr_schemata/models/HDRUK/v4_0_1/Icons.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Image.py b/hdr_schemata/models/HDRUK/v4_0_1/Image.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/Image.py rename to hdr_schemata/models/HDRUK/v4_0_1/Image.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py b/hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py rename to hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Project.py b/hdr_schemata/models/HDRUK/v4_0_1/Project.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/Project.py rename to hdr_schemata/models/HDRUK/v4_0_1/Project.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py b/hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py rename to hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Summary.py b/hdr_schemata/models/HDRUK/v4_0_1/Summary.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_1_0/Summary.py rename to hdr_schemata/models/HDRUK/v4_0_1/Summary.py diff --git a/hdr_schemata/models/HDRUK/v4_1_0/__init__.py b/hdr_schemata/models/HDRUK/v4_0_1/__init__.py similarity index 95% rename from hdr_schemata/models/HDRUK/v4_1_0/__init__.py rename to hdr_schemata/models/HDRUK/v4_0_1/__init__.py index bf628635..e3abc1c0 100644 --- a/hdr_schemata/models/HDRUK/v4_1_0/__init__.py +++ b/hdr_schemata/models/HDRUK/v4_0_1/__init__.py @@ -17,7 +17,7 @@ from .StructuralMetadata import StructuralMetadata -class Hdruk410(Hdruk400): +class Hdruk401(Hdruk400): icons: Optional[Icons] = Field( None, title="Icons", @@ -52,6 +52,6 @@ class Hdruk410(Hdruk400): ) @classmethod - def save_schema(cls, location="./4.1.0/schema.json"): + def save_schema(cls, location="./4.0.1/schema.json"): with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/utils/create_example.py b/hdr_schemata/utils/create_example.py index 069e10d8..2a486655 100644 --- a/hdr_schemata/utils/create_example.py +++ b/hdr_schemata/utils/create_example.py @@ -38,5 +38,5 @@ def create_example(path): with open(f"{path}.example.json", "w") as f: json.dump(example, f, indent=6) -create_template("./docs/HDRUK/4.1.0") -create_example("./docs/HDRUK/4.1.0") +create_template("./docs/HDRUK/4.0.1") +create_example("./docs/HDRUK/4.0.1") diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index fed0cd6b..a6146ac5 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -264,7 +264,7 @@ def remove_types(data): from hdr_schemata.models.HDRUK import Hdruk221 from hdr_schemata.models.HDRUK import Hdruk300 from hdr_schemata.models.HDRUK import Hdruk400 -from hdr_schemata.models.HDRUK import Hdruk410 +from hdr_schemata.models.HDRUK import Hdruk401 from hdr_schemata.models.GWDM.v1_1 import Gwdm10 from hdr_schemata.models.GWDM.v1_1 import Gwdm11 @@ -278,7 +278,7 @@ def remove_types(data): # create_markdown(Hdruk212, dir_path+"/../../docs/HDRUK", "2.1.2") # create_markdown(Hdruk213, dir_path+"/../../docs/HDRUK", "2.1.3") # create_markdown(Hdruk300, dir_path+"/../../docs/HDRUK", "3.0.0") -create_markdown(Hdruk410, dir_path+"/../../docs/HDRUK", "4.1.0") +create_markdown(Hdruk401, dir_path+"/../../docs/HDRUK", "4.0.1") # from hdr_schemata.models.GWDM.v1_1 import Gwdm10 # from hdr_schemata.models.GWDM.v1_1 import Gwdm11 From 69ac2f5c7e3a6290db878253d7d602f365b59d73 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Mon, 13 Apr 2026 09:55:20 +0100 Subject: [PATCH 14/18] Revert "Rename HDRUK 4.1.0 to 4.0.1" This reverts commit 7db2c6f7bdbabe4265a511742bc0629ccd5b2407. --- available.json | 2 +- .../{4.0.1.example.json => 4.1.0.example.json} | 0 docs/HDRUK/{4.0.1.form.json => 4.1.0.form.json} | 0 docs/HDRUK/{4.0.1.md => 4.1.0.md} | 0 ...4.0.1.structure.json => 4.1.0.structure.json} | 0 .../{4.0.1.template.json => 4.1.0.template.json} | 0 hdr_schemata/models/GWDM/v2_1/Summary.py | 2 +- hdr_schemata/models/GWDM/v2_1/__init__.py | 16 ++++++++-------- .../models/HDRUK/{4.0.1 => 4.1.0}/.gitkeep | 0 .../models/HDRUK/{4.0.1 => 4.1.0}/schema.json | 2 +- hdr_schemata/models/HDRUK/__init__.py | 2 +- hdr_schemata/models/HDRUK/create_json_schema.py | 4 ++-- .../models/HDRUK/{v4_0_1 => v4_1_0}/DataTable.py | 0 .../HDRUK/{v4_0_1 => v4_1_0}/DatasetFilters.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/Icons.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/Image.py | 0 .../{v4_0_1 => v4_1_0}/LineSeparatedValues.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/Project.py | 0 .../{v4_0_1 => v4_1_0}/StructuralMetadata.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/Summary.py | 0 .../models/HDRUK/{v4_0_1 => v4_1_0}/__init__.py | 4 ++-- hdr_schemata/utils/create_example.py | 4 ++-- hdr_schemata/utils/create_markdown.py | 4 ++-- 23 files changed, 20 insertions(+), 20 deletions(-) rename docs/HDRUK/{4.0.1.example.json => 4.1.0.example.json} (100%) rename docs/HDRUK/{4.0.1.form.json => 4.1.0.form.json} (100%) rename docs/HDRUK/{4.0.1.md => 4.1.0.md} (100%) rename docs/HDRUK/{4.0.1.structure.json => 4.1.0.structure.json} (100%) rename docs/HDRUK/{4.0.1.template.json => 4.1.0.template.json} (100%) rename hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/.gitkeep (100%) rename hdr_schemata/models/HDRUK/{4.0.1 => 4.1.0}/schema.json (99%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/DataTable.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/DatasetFilters.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Icons.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Image.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/LineSeparatedValues.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Project.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/StructuralMetadata.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/Summary.py (100%) rename hdr_schemata/models/HDRUK/{v4_0_1 => v4_1_0}/__init__.py (95%) diff --git a/available.json b/available.json index c0d9f981..b298ea7c 100644 --- a/available.json +++ b/available.json @@ -8,7 +8,7 @@ "2.2.1", "3.0.0", "4.0.0", - "4.0.1" + "4.1.0" ], "GWDM": [ "1.0", diff --git a/docs/HDRUK/4.0.1.example.json b/docs/HDRUK/4.1.0.example.json similarity index 100% rename from docs/HDRUK/4.0.1.example.json rename to docs/HDRUK/4.1.0.example.json diff --git a/docs/HDRUK/4.0.1.form.json b/docs/HDRUK/4.1.0.form.json similarity index 100% rename from docs/HDRUK/4.0.1.form.json rename to docs/HDRUK/4.1.0.form.json diff --git a/docs/HDRUK/4.0.1.md b/docs/HDRUK/4.1.0.md similarity index 100% rename from docs/HDRUK/4.0.1.md rename to docs/HDRUK/4.1.0.md diff --git a/docs/HDRUK/4.0.1.structure.json b/docs/HDRUK/4.1.0.structure.json similarity index 100% rename from docs/HDRUK/4.0.1.structure.json rename to docs/HDRUK/4.1.0.structure.json diff --git a/docs/HDRUK/4.0.1.template.json b/docs/HDRUK/4.1.0.template.json similarity index 100% rename from docs/HDRUK/4.0.1.template.json rename to docs/HDRUK/4.1.0.template.json diff --git a/hdr_schemata/models/GWDM/v2_1/Summary.py b/hdr_schemata/models/GWDM/v2_1/Summary.py index 554e4207..ec0e303d 100644 --- a/hdr_schemata/models/GWDM/v2_1/Summary.py +++ b/hdr_schemata/models/GWDM/v2_1/Summary.py @@ -5,7 +5,7 @@ from pydantic import Field from hdr_schemata.models.GWDM.v2_0.Summary import Summary as Gwdm20Summary -from hdr_schemata.models.HDRUK.v4_0_1.LineSeparatedValues import LineSeparatedValues +from hdr_schemata.models.HDRUK.v4_1_0.LineSeparatedValues import LineSeparatedValues class Summary(Gwdm20Summary): diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 14504c71..41ab6db1 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -6,11 +6,11 @@ from pydantic import Field from hdr_schemata.models.GWDM.v2_0 import Gwdm20 -from hdr_schemata.models.HDRUK.v4_0_1 import Hdruk401 -from hdr_schemata.models.HDRUK.v4_0_1.DatasetFilters import DatasetFilters -from hdr_schemata.models.HDRUK.v4_0_1.Icons import Icons -from hdr_schemata.models.HDRUK.v4_0_1.Image import Image -from hdr_schemata.models.HDRUK.v4_0_1.Project import Project +from hdr_schemata.models.HDRUK.v4_1_0 import Hdruk410 +from hdr_schemata.models.HDRUK.v4_1_0.DatasetFilters import DatasetFilters +from hdr_schemata.models.HDRUK.v4_1_0.Icons import Icons +from hdr_schemata.models.HDRUK.v4_1_0.Image import Image +from hdr_schemata.models.HDRUK.v4_1_0.Project import Project from .Summary import Summary @@ -49,7 +49,7 @@ def save_schema(cls, location: str = "./2.1/schema.json") -> None: with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) - def to_hdruk401_payload(self) -> Dict[str, Any]: + def to_hdruk410_payload(self) -> Dict[str, Any]: summary = self.summary publisher = getattr(summary, "publisher", None) publisher_name = getattr(publisher, "name", None) if publisher else None @@ -117,5 +117,5 @@ def to_hdruk401_payload(self) -> Dict[str, Any]: return payload - def to_hdruk401(self) -> Hdruk401: - return Hdruk401.model_validate(self.to_hdruk401_payload()) + def to_hdruk410(self) -> Hdruk410: + return Hdruk410.model_validate(self.to_hdruk410_payload()) diff --git a/hdr_schemata/models/HDRUK/4.0.1/.gitkeep b/hdr_schemata/models/HDRUK/4.1.0/.gitkeep similarity index 100% rename from hdr_schemata/models/HDRUK/4.0.1/.gitkeep rename to hdr_schemata/models/HDRUK/4.1.0/.gitkeep diff --git a/hdr_schemata/models/HDRUK/4.0.1/schema.json b/hdr_schemata/models/HDRUK/4.1.0/schema.json similarity index 99% rename from hdr_schemata/models/HDRUK/4.0.1/schema.json rename to hdr_schemata/models/HDRUK/4.1.0/schema.json index 8dbb7331..f1f7cbae 100644 --- a/hdr_schemata/models/HDRUK/4.0.1/schema.json +++ b/hdr_schemata/models/HDRUK/4.1.0/schema.json @@ -3377,6 +3377,6 @@ "accessibility", "observations" ], - "title": "Hdruk401", + "title": "Hdruk410", "type": "object" } \ No newline at end of file diff --git a/hdr_schemata/models/HDRUK/__init__.py b/hdr_schemata/models/HDRUK/__init__.py index 7c49adaa..1fefea66 100644 --- a/hdr_schemata/models/HDRUK/__init__.py +++ b/hdr_schemata/models/HDRUK/__init__.py @@ -4,4 +4,4 @@ from .v2_2_1 import Hdruk221 from .v3_0_0 import Hdruk300 from .v4_0_0 import Hdruk400 -from .v4_0_1 import Hdruk401 +from .v4_1_0 import Hdruk410 diff --git a/hdr_schemata/models/HDRUK/create_json_schema.py b/hdr_schemata/models/HDRUK/create_json_schema.py index 5e2489f0..86ff7e3b 100644 --- a/hdr_schemata/models/HDRUK/create_json_schema.py +++ b/hdr_schemata/models/HDRUK/create_json_schema.py @@ -4,7 +4,7 @@ import v2_2_1 import v3_0_0 import v4_0_0 -import v4_0_1 +import v4_1_0 v2_1_2.Hdruk212.save_schema() v2_1_3.Hdruk213.save_schema() @@ -12,4 +12,4 @@ v2_2_1.Hdruk221.save_schema() v3_0_0.Hdruk300.save_schema() v4_0_0.Hdruk400.save_schema() -v4_0_1.Hdruk401.save_schema() +v4_1_0.Hdruk410.save_schema() diff --git a/hdr_schemata/models/HDRUK/v4_0_1/DataTable.py b/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/DataTable.py rename to hdr_schemata/models/HDRUK/v4_1_0/DataTable.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py b/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/DatasetFilters.py rename to hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Icons.py b/hdr_schemata/models/HDRUK/v4_1_0/Icons.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Icons.py rename to hdr_schemata/models/HDRUK/v4_1_0/Icons.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Image.py b/hdr_schemata/models/HDRUK/v4_1_0/Image.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Image.py rename to hdr_schemata/models/HDRUK/v4_1_0/Image.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py b/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/LineSeparatedValues.py rename to hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Project.py b/hdr_schemata/models/HDRUK/v4_1_0/Project.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Project.py rename to hdr_schemata/models/HDRUK/v4_1_0/Project.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py b/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/StructuralMetadata.py rename to hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/Summary.py b/hdr_schemata/models/HDRUK/v4_1_0/Summary.py similarity index 100% rename from hdr_schemata/models/HDRUK/v4_0_1/Summary.py rename to hdr_schemata/models/HDRUK/v4_1_0/Summary.py diff --git a/hdr_schemata/models/HDRUK/v4_0_1/__init__.py b/hdr_schemata/models/HDRUK/v4_1_0/__init__.py similarity index 95% rename from hdr_schemata/models/HDRUK/v4_0_1/__init__.py rename to hdr_schemata/models/HDRUK/v4_1_0/__init__.py index e3abc1c0..bf628635 100644 --- a/hdr_schemata/models/HDRUK/v4_0_1/__init__.py +++ b/hdr_schemata/models/HDRUK/v4_1_0/__init__.py @@ -17,7 +17,7 @@ from .StructuralMetadata import StructuralMetadata -class Hdruk401(Hdruk400): +class Hdruk410(Hdruk400): icons: Optional[Icons] = Field( None, title="Icons", @@ -52,6 +52,6 @@ class Hdruk401(Hdruk400): ) @classmethod - def save_schema(cls, location="./4.0.1/schema.json"): + def save_schema(cls, location="./4.1.0/schema.json"): with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/utils/create_example.py b/hdr_schemata/utils/create_example.py index 2a486655..069e10d8 100644 --- a/hdr_schemata/utils/create_example.py +++ b/hdr_schemata/utils/create_example.py @@ -38,5 +38,5 @@ def create_example(path): with open(f"{path}.example.json", "w") as f: json.dump(example, f, indent=6) -create_template("./docs/HDRUK/4.0.1") -create_example("./docs/HDRUK/4.0.1") +create_template("./docs/HDRUK/4.1.0") +create_example("./docs/HDRUK/4.1.0") diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index a6146ac5..fed0cd6b 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -264,7 +264,7 @@ def remove_types(data): from hdr_schemata.models.HDRUK import Hdruk221 from hdr_schemata.models.HDRUK import Hdruk300 from hdr_schemata.models.HDRUK import Hdruk400 -from hdr_schemata.models.HDRUK import Hdruk401 +from hdr_schemata.models.HDRUK import Hdruk410 from hdr_schemata.models.GWDM.v1_1 import Gwdm10 from hdr_schemata.models.GWDM.v1_1 import Gwdm11 @@ -278,7 +278,7 @@ def remove_types(data): # create_markdown(Hdruk212, dir_path+"/../../docs/HDRUK", "2.1.2") # create_markdown(Hdruk213, dir_path+"/../../docs/HDRUK", "2.1.3") # create_markdown(Hdruk300, dir_path+"/../../docs/HDRUK", "3.0.0") -create_markdown(Hdruk401, dir_path+"/../../docs/HDRUK", "4.0.1") +create_markdown(Hdruk410, dir_path+"/../../docs/HDRUK", "4.1.0") # from hdr_schemata.models.GWDM.v1_1 import Gwdm10 # from hdr_schemata.models.GWDM.v1_1 import Gwdm11 From 6332a3c8033b3e2e6258290dc7e3f03a5eb4d645 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 14 Apr 2026 12:55:09 +0100 Subject: [PATCH 15/18] feat(CRUK): add 1.0.0 model and align GWDM 2.1 - Add CRUK 1.0.0 schema, Python model (subclassing HDRUK 4.0.0), and example\n- Remove HDRUK 4.1.0 artifacts and references\n- Add GWDM 2.1 -> CRUK conversion helper --- available.json | 6 +- docs/HDRUK/4.1.0.example.json | 193 -- docs/HDRUK/4.1.0.form.json | 1997 ---------------- docs/HDRUK/4.1.0.md | 1564 ------------ docs/HDRUK/4.1.0.structure.json | 2096 ----------------- docs/HDRUK/4.1.0.template.json | 167 -- hdr_schemata/examples/CRUK/1.0.0/example.json | 97 + .../{HDRUK/4.1.0 => CRUK/1.0.0}/schema.json | 294 +-- hdr_schemata/models/CRUK/__init__.py | 2 + .../models/CRUK/create_json_schema.py | 4 + hdr_schemata/models/CRUK/v1_0_0/__init__.py | 172 ++ hdr_schemata/models/GWDM/v2_1/Summary.py | 5 +- hdr_schemata/models/GWDM/v2_1/__init__.py | 159 +- hdr_schemata/models/HDRUK/4.1.0/.gitkeep | 0 hdr_schemata/models/HDRUK/__init__.py | 1 - .../models/HDRUK/create_json_schema.py | 2 - hdr_schemata/models/HDRUK/v4_1_0/DataTable.py | 39 - .../models/HDRUK/v4_1_0/DatasetFilters.py | 22 - hdr_schemata/models/HDRUK/v4_1_0/Icons.py | 14 - hdr_schemata/models/HDRUK/v4_1_0/Image.py | 24 - .../HDRUK/v4_1_0/LineSeparatedValues.py | 9 - hdr_schemata/models/HDRUK/v4_1_0/Project.py | 81 - .../models/HDRUK/v4_1_0/StructuralMetadata.py | 27 - hdr_schemata/models/HDRUK/v4_1_0/Summary.py | 65 - hdr_schemata/models/HDRUK/v4_1_0/__init__.py | 57 - hdr_schemata/utils/create_example.py | 4 +- hdr_schemata/utils/create_markdown.py | 4 +- 27 files changed, 548 insertions(+), 6557 deletions(-) delete mode 100644 docs/HDRUK/4.1.0.example.json delete mode 100644 docs/HDRUK/4.1.0.form.json delete mode 100644 docs/HDRUK/4.1.0.md delete mode 100644 docs/HDRUK/4.1.0.structure.json delete mode 100644 docs/HDRUK/4.1.0.template.json create mode 100644 hdr_schemata/examples/CRUK/1.0.0/example.json rename hdr_schemata/models/{HDRUK/4.1.0 => CRUK/1.0.0}/schema.json (96%) create mode 100644 hdr_schemata/models/CRUK/__init__.py create mode 100644 hdr_schemata/models/CRUK/create_json_schema.py create mode 100644 hdr_schemata/models/CRUK/v1_0_0/__init__.py delete mode 100644 hdr_schemata/models/HDRUK/4.1.0/.gitkeep delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/DataTable.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/Icons.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/Image.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/Project.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/Summary.py delete mode 100644 hdr_schemata/models/HDRUK/v4_1_0/__init__.py diff --git a/available.json b/available.json index b298ea7c..e1d172ac 100644 --- a/available.json +++ b/available.json @@ -7,8 +7,7 @@ "2.2.0", "2.2.1", "3.0.0", - "4.0.0", - "4.1.0" + "4.0.0" ], "GWDM": [ "1.0", @@ -17,6 +16,9 @@ "2.0", "2.1" ], + "CRUK": [ + "1.0.0" + ], "SchemaOrg": [ "BioSchema", "default", diff --git a/docs/HDRUK/4.1.0.example.json b/docs/HDRUK/4.1.0.example.json deleted file mode 100644 index 8470c40e..00000000 --- a/docs/HDRUK/4.1.0.example.json +++ /dev/null @@ -1,193 +0,0 @@ -{ - "identifier": null, - "version": "1.1.0", - "revisions": [ - { - "version": "6.0.0", - "url": null - } - ], - "issued": "2024-10-24T00:00:00.000Z", - "modified": "2024-10-24T00:00:00.000Z", - "summary": { - "title": "North West London COVID-19 Patient Level Situation Report", - "funders": "CRUK", - "abstract": "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.", - "dataCustodian": { - "identifier": "30f16703-28bc-4f45-9ce5-625d2d3db27d", - "name": "Health Data Research UK", - "logo": null, - "description": null, - "contactPoint": "test@test.co.uk", - "memberOf": null - }, - "populationSize": 1000, - "keywords": [ - "Outpatient Care", - "Socioeconomic Deprivation", - "Infant Morbidity", - "Learning disability", - "Primary Care Prescription", - "Accident and Emergency Admissions" - ], - "doiName": null, - "contactPoint": "gateway@hdruk.ac.uk", - "datasetAliases": null - }, - "documentation": { - "description": "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.", - "associatedMedia": null, - "inPipeline": null - }, - "coverage": { - "spatial": "United Kingdom", - "typicalAgeRangeMin": null, - "typicalAgeRangeMax": null, - "datasetCompleteness": null, - "materialType": null, - "followUp": null, - "pathway": null - }, - "provenance": { - "origin": { - "purpose": null, - "datasetType": [ - "Health and disease" - ], - "source": null, - "collectionSource": null, - "imageContrast": null - }, - "temporal": { - "publishingFrequency": "Continuous", - "distributionReleaseDate": null, - "startDate": "2024-10-24T00:00:00.000Z", - "endDate": null, - "timeLag": "Not applicable" - } - }, - "accessibility": { - "usage": { - "dataUseLimitation": null, - "dataUseRequirements": null, - "resourceCreator": null - }, - "access": { - "accessRights": "In Progress", - "accessServiceCategory": null, - "accessService": null, - "accessRequestCost": null, - "deliveryLeadTime": null, - "jurisdiction": null, - "dataController": null, - "dataProcessor": null - }, - "formatAndStandards": { - "vocabularyEncodingScheme": [ - "LOCAL", - "ICD10" - ], - "conformsTo": [ - "LOCAL", - "NHS DATA DICTIONARY" - ], - "language": [ - "en" - ], - "format": [ - "text/tab-separated-values", - "application/sql", - "text/csv", - "image/diacom-rle" - ] - } - }, - "enrichmentAndLinkage": { - "derivedFrom": [ - { - "pid": null, - "title": null, - "url": null - } - ], - "isPartOf": [ - { - "pid": null, - "title": null, - "url": null - } - ], - "linkableDatasets": [ - { - "pid": null, - "title": null, - "url": null - } - ], - "similarToDatasets": [ - { - "pid": null, - "title": null, - "url": null - } - ], - "investigations": null, - "tools": null, - "publicationAboutDataset": [ - "10.1093/ije/dyab028" - ], - "publicationUsingDataset": [ - "10.1001/jamapediatrics.2016.3633" - ] - }, - "observations": [ - { - "observedNode": "Persons", - "measuredValue": 1000, - "disambiguatingDescription": null, - "observationDate": "2024-10-24", - "measuredProperty": "Count" - } - ], - "structuralMetadata": null, - "demographicFrequency": { - "age": [ - { - "bin": "30-34 years", - "count": 1000 - } - ], - "ethnicity": [ - { - "bin": "Black or Black British - Any other Black background", - "count": 1000 - } - ], - "disease": [ - { - "diseaseCode": "J45", - "diseaseCodeVocabulary": "ICD10", - "count": 1000 - } - ] - }, - "omics": { - "assay": null, - "platform": null - }, - "icons": null, - "project": { - "projectName": null, - "leadResearcher": null, - "leadResearchInstitute": null, - "grantNumbers": null, - "projectStartDate": null, - "projectEndDate": null, - "projectScope": null - }, - "datasetFilters": null, - "erd": { - "image": null, - "description": null - } -} \ No newline at end of file diff --git a/docs/HDRUK/4.1.0.form.json b/docs/HDRUK/4.1.0.form.json deleted file mode 100644 index 5b03634d..00000000 --- a/docs/HDRUK/4.1.0.form.json +++ /dev/null @@ -1,1997 +0,0 @@ -{ - "schema_fields": [ - { - "required": true, - "title": "Dataset identifier", - "description": "System dataset identifier.", - "guidance": "N/A", - "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" - }, - "location": "identifier" - }, - { - "required": true, - "title": "Dataset Version", - "description": "Dataset metadata version.", - "guidance": "Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.\\nMajor: Significant/breaking changes.\\nMinor: New features and bug fixes.\\nPatch: Minor fixes without new features.", - "examples": [ - "1.1.0" - ], - "is_list": false, - "is_optional": false, - "types": { - "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", - "title": "Semver", - "type": "string" - }, - "location": "version" - }, - { - "required": true, - "title": "revision version", - "description": "Version number used for previous version of this dataset", - "guidance": "", - "examples": [ - "6.0.0" - ], - "is_list": false, - "is_optional": false, - "types": { - "pattern": "^([0-9]+)\\.([0-9]+)\\.([0-9]+)$", - "title": "Semver", - "type": "string" - }, - "location": "revisions.version" - }, - { - "required": false, - "title": "revision url", - "description": "Some url with a reference to the record of a previous version of this dataset", - "guidance": "", - "examples": [ - "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "revisions.url" - }, - { - "required": true, - "title": "Metadata Issued Datetime", - "description": "Datetime stamp of when this metadata version was initially issued", - "guidance": "", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "is_list": false, - "is_optional": false, - "types": "datetime", - "location": "issued" - }, - { - "required": true, - "title": "Last Modified Datetime", - "description": "Datetime stamp of when this metadata was last modified", - "guidance": "", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "is_list": false, - "is_optional": false, - "types": "datetime", - "location": "modified" - }, - { - "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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", - "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", - "examples": [ - "North West London COVID-19 Patient Level Situation Report", - "Scottish Morbidity Record (SMR)" - ], - "is_list": false, - "is_optional": false, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "summary.title" - }, - { - "required": true, - "title": "Funded by", - "description": "List of Funders separated by a line break", - "guidance": "Put each funder on a new line", - "examples": [ - "CRUK", - "University of Sussex" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "LineSeparatedValues", - "pattern": "([^\\\\r\\\\n]+)", - "type": "string" - }, - "location": "summary.funders" - }, - { - "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.", - "guidance": "- The abstract should provide a **clear and brief descriptive** signpost for researchers who are searching for data that may be relevant to their research.\\n- The abstract should allow the reader to determine the **scope of the data collection and accurately summarise its content**.\\n- Effective abstracts should **avoid long sentences and abbreviations** where possible.\\n- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.\\n- **Abstracts should be different from the full description** for a dataset.\\n- **Example**: 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.", - "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": { - "title": "AbstractText", - "maxLength": 500, - "minLength": 5, - "type": "string" - }, - "location": "summary.abstract" - }, - { - "required": true, - "title": "identifier", - "description": "Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation.", - "guidance": "**Example**: https://ror.org/053fq8t95\\nIf your organisation does not have a ROR identifier please use the \u201csuggest and institute\u201d function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform", - "examples": [ - "30f16703-28bc-4f45-9ce5-625d2d3db27d" - ], - "is_list": false, - "is_optional": false, - "types": "str", - "location": "summary.dataCustodian.identifier" - }, - { - "required": true, - "title": "Name of Data Custodian", - "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", - "guidance": "In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank.", - "examples": [ - "Health Data Research UK" - ], - "is_list": false, - "is_optional": false, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "summary.dataCustodian.name" - }, - { - "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. If a logo is not submitted this will default to the logo for the team submitting the metadata.", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "summary.dataCustodian.logo" - }, - { - "required": false, - "title": "Organisation Description", - "description": "Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata.", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Description", - "maxLength": 10000, - "minLength": 2, - "type": "string" - }, - "location": "summary.dataCustodian.description" - }, - { - "required": true, - "title": "contact point", - "description": "Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata.", - "guidance": "", - "examples": [ - "test@test.co.uk" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "EmailAddress", - "format": "email", - "type": "string" - }, - "location": "summary.dataCustodian.contactPoint" - }, - { - "required": false, - "title": "Organisation Membership", - "description": "Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata.", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Hub", - "Alliance", - "Other", - "NCS" - ] - }, - "location": "summary.dataCustodian.memberOf" - }, - { - "required": true, - "title": "Dataset population size", - "description": "Input the number of people captured within the dataset.", - "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section.", - "examples": [ - 1000 - ], - "is_list": false, - "is_optional": false, - "types": "int", - "location": "summary.populationSize" - }, - { - "required": false, - "title": "Keywords", - "description": "Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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.", - "guidance": "- Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.\\n- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.\\n- Text from the title is automatically included in the search, there is no need to include this in the keywords.\\n- Include words that researcher may include in their searches.", - "examples": [ - "Outpatient Care", - "Socioeconomic Deprivation", - "Infant Morbidity", - "Learning disability", - "Primary Care Prescription", - "Accident and Emergency Admissions" - ], - "is_list": true, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "summary.keywords" - }, - { - "required": false, - "title": "Digital Object Identifier (DOI) for dataset", - "description": "DOI associated to this dataset. Find out more about DOIs here: [https://www.doi.org/the-identifier/what-is-a-doi/](https://www.doi.org/the-identifier/what-is-a-doi/)", - "guidance": "- Please note: This is **not** the DOI of the publication(s) associated with the dataset.\\n- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.\\n- If a DOI is available, please provide the DOI.\\n- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", - "examples": [ - "10.1093/ije/dyx196" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "Doi", - "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", - "type": "string" - }, - "location": "summary.doiName" - }, - { - "required": true, - "title": "Contact point", - "description": "Please provide a valid email address that can be used to coordinate data access requests.", - "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.\\n**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**.", - "examples": [ - "gateway@hdruk.ac.uk" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "EmailAddress", - "format": "email", - "type": "string" - }, - "location": "summary.contactPoint" - }, - { - "required": false, - "title": "Dataset & BioSample alias", - "description": "Dataset & BioSample alias or alternate names.", - "guidance": "Alternate name, acronym or other identifier for the Dataset and/or BioSamples.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "CommaSeparatedValues", - "pattern": "([^,]+)", - "type": "string" - }, - "location": "summary.datasetAliases" - }, - { - "required": true, - "title": "Description", - "description": "A free-text description of the dataset.\\nA URL can also be provided as the description of the dataset.\\nGateway Feature: Keywords and text may be extracted out of the description and indexed for search.", - "guidance": "- An HTML account of the data that **provides context and scope** of the data, **limited to 10000 characters, and/or a resolvable URL** that describes the dataset.\\n- Additional information can be recorded and included using the Associated media field.", - "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": { - "title": "Description", - "maxLength": 10000, - "minLength": 2, - "type": "string" - }, - "location": "documentation.description" - }, - { - "required": false, - "title": "Associated media", - "description": "Please provide any media associated with the Gateway Organisation using a valid URL 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.", - "guidance": "- Please provide any media associated with the Gateway Organisation **using a valid URL** for the content.\\n- 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.\\n- Note: media assets should be hosted by the organisation.\n- **Example**: This could be a **link to a PDF Document** that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.\\n- If you are providing multiple links for associated media, we recommend that you separate these with a comma.", - "examples": [ - "PDF document that describes study protocol - https://link.to/document.pdf" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "CommaSeparatedValues", - "pattern": "([^,]+)", - "type": "string" - }, - "location": "documentation.associatedMedia" - }, - { - "required": false, - "title": "Dataset pipeline status", - "description": "Indicate whether this dataset is currently available for Researchers to request access.", - "guidance": "If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Available", - "Not available" - ] - }, - "location": "documentation.inPipeline" - }, - { - "required": true, - "title": "Geographic coverage", - "description": "The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:\\n- For locations in the UK: [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about)\\n- For locations in other countries: [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes)", - "guidance": "- The geographical area covered by the dataset.\\n- Please provide a valid location.\\n- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).\\n- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes).", - "examples": [ - "United Kingdom", - "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "CommaSeparatedValues", - "pattern": "([^,]+)", - "type": "string" - }, - "location": "coverage.spatial" - }, - { - "required": false, - "title": "Minimum age range", - "description": "Please indicate the minimum age in years of participants in the dataset as a whole number (integer).", - "guidance": "- Please indicate the minimum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 0.", - "examples": [ - 18 - ], - "is_list": false, - "is_optional": true, - "types": "int", - "location": "coverage.typicalAgeRangeMin" - }, - { - "required": false, - "title": "Maximum age range", - "description": "Please indicate the maximum age in years of participants in the dataset as a whole number (integer).", - "guidance": "- Please indicate the maximum of the age range in whole years of participants in the dataset.\\n- **What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?**: In that case, please enter 150.", - "examples": [ - 90 - ], - "is_list": false, - "is_optional": true, - "types": "int", - "location": "coverage.typicalAgeRangeMax" - }, - { - "required": false, - "title": "Dataset coverage/completeness/quality", - "description": "The URL where a Researcher can learn more about the completeness of the dataset.", - "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.\\n**Example**: https://bhfdatasciencecentre.org/dashboard/", - "examples": [ - "https://bhfdatasciencecentre.org/dashboard/" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "coverage.datasetCompleteness" - }, - { - "required": false, - "title": "Biological sample availability", - "description": "The type of biospecimen saved from a biological entity.", - "guidance": "Indicate the specimen type, can be several values from the list below:\\n- Availability of physical samples associated with the dataset.\\n- If samples are available, please indicate the types of samples that are available.\\n- More than one type may be provided.\\n- If samples are not yet available, please provide **\u201cAvailability to be confirmed\u201d**.\\n- If samples are not available, then please provide **\u201cNot available\u201d**.\\n- **Not available**: Samples associated with the dataset are not available.\\n- **Bone marrow**: Bone marrow samples associated with the data are available.\\n- **Cancer cell lines**: Cancer cell line samples associated with the data are available.\\n- **CDNA/MRNA**: CDNA/MRNA samples associated with the data are available.\\n- **Core biopsy**: Core biopsy samples associated with the data are available.\\n- **DNA**: DNA samples associated with the data are available.\\n- **Entire body organ**: Entire body organ associated with the data are available.\\n- **Faeces**: Faeces samples associated with the data are available.\\n- **Immortalized cell lines**: Immortalized cell line samples associated with the data are available.\\n- **Isolated pathogen**: Isolated pathogen associated with the data are available.\\n- **MicroRNA**: MicroRNA samples associated with the data are available.\\n- **Peripheral blood cells**: Peripheral blood cell samples associated with the data are available.\\n- **Plasma**: Plasma samples associated with the data are available.\\n- **PM Tissue**: PM Tissue samples associated with the data are available.\\n- **Primary cells**: Primary cell samples associated with the data are available.\\n- **RNA**: RNA samples associated with the data are available.\\n- **Saliva**: Saliva samples associated with the data are available.\\n- **Serum**: Serum samples associated with the data are available.\\n- **Swabs**: Swab samples associated with the data are available.\\n- **Tissue**: Tissue samples associated with the data are available.\\n- **Urine**: Urine samples associated with the data are available.\\n- **Whole blood**: Whole blood samples associated with the data are available.\\n- **Availability to be confirmed**: Availability of samples is currently being confirmed.\\n- **Other**: Other types of sample available.", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "None/not available", - "Bone marrow", - "Cancer cell lines", - "CDNA/MRNA", - "Core biopsy", - "DNA", - "Entire body organ", - "Faeces", - "Immortalized cell lines", - "Isolated pathogen", - "MicroRNA", - "Peripheral blood cells", - "Plasma", - "PM Tissue", - "Primary cells", - "RNA", - "Saliva", - "Serum", - "Swabs", - "Tissue", - "Urine", - "Whole blood", - "Availability to be confirmed", - "Other" - ] - }, - "location": "coverage.materialType" - }, - { - "required": false, - "title": "Follow-up", - "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed \u201clongitudinally\u201d i.e. new information is collected about them for a period of time afterward. This is known as the \u201cfollow up period\u201d. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period.", - "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).\\n-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.\\n-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.\\n-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.\\n-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.\\n-**CONTINUOUS**: Data for patients is being regularly added to and updated.\\n-**UNKNOWN**: Timespan is Unknown.\\n-**OTHER**: Data available for a patient over another time 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 - ] - }, - "location": "coverage.followUp" - }, - { - "required": false, - "title": "Patient pathway description", - "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.", - "guidance": "- Please indicate if the dataset is representative of the patient pathway and any limitations the dataset may have with respect to pathway coverage.\\n- 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": { - "title": "Description", - "maxLength": 10000, - "minLength": 2, - "type": "string" - }, - "location": "coverage.pathway" - }, - { - "required": false, - "title": "Purpose of dataset collection", - "description": "Please indicate the purpose(s) that the dataset was collected.", - "guidance": "- **Research cohort**: Data collected for a defined group of people.\\n- **Study**: Data collected for a specific research study.\\n- **Disease registry**: Data collected as part of a disease registry.\\n- **Trial**: Data collected for as part of a clinical trial.\\n- **Care**: Data collected as part of routine clinical care.\\n- **Audit**: Data collected as part of an audit programme.\\n- **Administrative**: Data collected for administrative and management information purposes.\\n- **Financial**: Data collected either for payments or for billing.\\n- **Statutory**: Data collected in compliance with statutory requirements.\\n- **Other**: Data collected for other purpose.", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Research cohort", - "Study", - "Disease registry", - "Trial", - "Care", - "Audit", - "Administrative", - "Financial", - "Statutory", - "Other", - null - ] - }, - "location": "provenance.origin.purpose" - }, - { - "required": false, - "title": "Source of data extraction", - "description": "Please indicate the source of the data extraction.", - "guidance": " - **EPR**: Data Extracted from Electronic Patient Record.\\n- **Electronic survey**: Data has been extracted from electronic surveys.\\n- **LIMS**: Data has been extracted from a laboratory information management system.\\n- **Paper-based**: Data has been extracted from paper forms.\\n- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.\\n- **Machine generated**: Data has been machine generated i.e. imaging.\\n- **Other**: Data has been extracted by other means.", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "EPR", - "Electronic survey", - "LIMS", - "Paper-based", - "Free text NLP", - "Machine generated", - "Other" - ] - }, - "location": "provenance.origin.source" - }, - { - "required": false, - "title": "Collection source setting", - "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided.", - "guidance": "- **Cohort, study, trial**: Cohort, study or trial data collection as part of protocol.\\n- **Clinic**: Specific clinic such as antenatal clinic.\\n- **Primary care - Referrals**: General medical practitioner referral to another service.\\n- **Primary care - Clinic**: General medical practitioner practice.\\n- **Primary care - Out of hours**: General medical practitioner care or advice outside of standard hours.\\n- **Secondary care - Accident and emergency**: Accident emergency department.\\n- **Secondary care - Outpatients**: Outpatient care.\\n- **Secondary care - In-patients**: In-patient care.\\n- **Secondary care - Ambulance**: Care provided in association with ambulance service.\\n- **Secondary care - ICU**: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).\\n- **Prescribing - Community pharmacy**: Pharmacy based in the community.\\n- **Prescribing - Community pharmacy**: Pharmacy based in a hospital setting.\\n- **Patient report outcome**: Reported by patient.\\n- **Wearables**: Data collection devices worn on the body.\\n- **Local authority**: Local authority or entity associated with a local authority.\\n- **National government**: National government or entity associated with the national government.\\n- **Community**: Community settings.\\n- **Services**: Services such as drug misuse or blood transfusion.\\n- **Home**: Home setting.\\n- **Private**: Private medical clinic.\\n- **Social care - Health care at home**: service provided in the home or residence of a person.\\n- **Social care - Other social data**: service provided in a setting outside of the person's home or residence.\\n- **Census**: collected as part of census.\\n- **Other**: Other setting.", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Cohort, study, trial", - "Clinic", - "Primary care - Referrals", - "Primary care - Clinic", - "Primary care - Out of hours", - "Secondary care - Accident and Emergency", - "Secondary care - Outpatients", - "Secondary care - In-patients", - "Secondary care - Ambulance", - "Secondary care - ICU", - "Prescribing - Community pharmacy", - "Prescribing - Hospital", - "Patient report outcome", - "Wearables", - "Local authority", - "National government", - "Community", - "Services", - "Home", - "Private", - "Social care - Health care at home", - "Social care - Other social data", - "Census", - "Other", - null - ] - }, - "location": "provenance.origin.collectionSource" - }, - { - "required": false, - "title": "Image contrast", - "description": "Indicate whether usage of imaging contrast is captured within the dataset.", - "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Yes", - "No", - "Not stated" - ] - }, - "location": "provenance.origin.imageContrast" - }, - { - "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/", - "guidance": "Please indicate the frequency of publishing.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/.\\n\\n Options:\\n- **Static**: Dataset published once.\\n- **Irregular**: Dataset published at uneven intervals.\\n- **Continuous**: Dataset published without interruption.\\n- **Biennial**: Dataset published every two years.\\n- **Annual**: Dataset published occurs once a year.\\n- **Biannual**: Dataset published twice a year.\\n- **Quarterly**: Dataset published every three months.\\n- **Bimonthly**: Dataset published every two months.\\n- **Monthly**: Dataset published once a month.\\n- **Biweekly**: Dataset published every two weeks.\\n- **Weekly**: Dataset published once a week.\\n- **Twice weekly**: Dataset published twice a week.\\n- **Daily**: Dataset published once a day.\\n- **Other**: Dataset published using other interval.", - "examples": [ - "Continuous" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "Static", - "Irregular", - "Continuous", - "Biennial", - "Annual", - "Biannual", - "Quarterly", - "Bimonthly", - "Monthly", - "Biweekly", - "Weekly", - "Twice a week", - "Daily", - "Other", - null - ] - }, - "location": "provenance.temporal.publishingFrequency" - }, - { - "required": false, - "title": "Distribution 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.", - "guidance": "- Please indicate the frequency the dataset is published.\\n- If a dataset is published regularly please choose a publishing periodicity from the constrained list and indicate the next release date.\\n- When the release date becomes historical, a new release date will be calculated based on the publishing periodicity.\\n- If a dataset has been published and will remain static please indicate that it is static and indicate when it was released.\\n- 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.\\n- 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.\\n- Notes: see [https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/)", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "is_list": false, - "is_optional": true, - "types": "date", - "location": "provenance.temporal.distributionReleaseDate" - }, - { - "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.", - "guidance": "- The start of the time period that the dataset provides coverage for.\\n- 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": [ - "2024-10-24T00:00:00.000Z" - ], - "is_list": false, - "is_optional": false, - "types": "date", - "location": "provenance.temporal.startDate" - }, - { - "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.", - "guidance": "- The end of the time period that the dataset provides coverage for.\\n- If the dataset is **\u201cContinuous\u201d** and has no known end date, **please leave blank**.\\n- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**.", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "is_list": false, - "is_optional": true, - "types": "date", - "location": "provenance.temporal.endDate" - }, - { - "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.", - "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.\\n- **Less than 1 week**: Typical time lag of less than a week.\\n- **1-2 weeks**: Typical time-lag of one to two weeks.\\n- **2-4 weeks**: Typical time-lag of two to four weeks.\\n- **1-2 months**: Typical time-lag of one to two months.\\n- **2-6 months**: Typical time-lag of two to six months.\\n- **6 months plus**: Typical time-lag of more than six months.\\n- **Variable**: Variable time-lag.\\n- **Not applicable**: Not Applicable i.e. static dataset.\\n- **Other**: Other time-lag.", - "examples": [ - "Not applicable" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "Less than 1 week", - "1-2 weeks", - "2-4 weeks", - "1-2 months", - "2-6 months", - "More than 6 months", - "Variable", - "Not applicable", - "Other" - ] - }, - "location": "provenance.temporal.timeLag" - }, - { - "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 Data Use Ontology to include a value for NO LINKAGE.", - "guidance": "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.\\n- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.\\n- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).\\n- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.\\n- **No restriction**: This data use limitation indicates there is no restriction on use.\\n- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.\\n- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).\\n- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "General research use", - "Commercial research use", - "Genetic studies only", - "No general methods research", - "No restriction", - "Geographical restrictions", - "Institution-specific restrictions", - "Not for profit use", - "Project-specific restrictions", - "Research-specific restrictions", - "User-specific restrictions", - "Research use only", - "No linkage" - ] - }, - "location": "accessibility.usage.dataUseLimitation" - }, - { - "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.", - "guidance": "- Please indicate if there are any additional conditions set for use if any, multiple requirements may be provided.\\n- Please ensure that these restrictions are documented in access rights information.\\n- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).\\n- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.\\n- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.\\n- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.\\n- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.\\n- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.\\n- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.\\n- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.\\n- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.\\n- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.\\n- **User-specific restriction**: This requirement indicates that use is limited to use by approved users.", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Collaboration required", - "Project-specific restrictions", - "Ethics approval required", - "Institution-specific restrictions", - "Geographical restrictions", - "Publication moratorium", - "Publication required", - "Return to database or resource", - "Time limit on use", - "Disclosure control", - "Not for profit use", - "User-specific restriction" - ] - }, - "location": "accessibility.usage.dataUseRequirements" - }, - { - "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.", - "guidance": "- Please provide the text that you would like included as part of any citation that credits this dataset.\\n- This is typically just the name of the publisher. No employee details should be provided.\\n- To add multiple entries, please click on **'+' symbol** to enter each separate website.\\n- **Example**: National Services Scotland", - "examples": [ - "National Services Scotland" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "ShortDescription", - "maxLength": 1000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.usage.resourceCreator" - }, - { - "required": true, - "title": "Access rights", - "description": "Please provide details for the data access rights.", - "guidance": "- The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.\\n- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", - "examples": [ - "In Progress" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "LongDescription", - "maxLength": 50000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.access.accessRights" - }, - { - "required": false, - "title": "Access method category", - "description": "The method a Researcher will use to access the dataset, if approved.", - "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", - "examples": [ - "TRE/SDE" - ], - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "TRE/SDE", - "Direct access", - "Open access", - "Varies based on project" - ] - }, - "location": "accessibility.access.accessServiceCategory" - }, - { - "required": false, - "title": "Access service description", - "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.", - "guidance": "Please provide a brief description of the data access services that are available including:\\n- environment that is currently available to researchers\\n- additional consultancy and services\\n- any indication of costs associated\\n\\n If no environment is currently available, please indicate the current plans and timelines when and how data will be made available to researchers.\\n **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://re-docs.genomicsengland.co.uk/tutorials/", - "https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "LongDescription", - "maxLength": 50000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.access.accessService" - }, - { - "required": false, - "title": "Access request cost", - "description": "Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests.", - "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "LongDescription", - "maxLength": 50000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.access.accessRequestCost" - }, - { - "required": false, - "title": "Time to dataset access", - "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", - "guidance": "- **Less than 1 week**: Access request process typically processed in less than a week.\\n- **1-2 weeks**: Access request process typically processed in one to two weeks.\\n- **2-4 weeks**: Access request process typically processed in two to four weeks.\\n- **1-2 months**: Access request process typically processed in one to two months.\\n- **2-6 months**: Access request process typically processed in two to six months.\\n- **More than 6 months**: Access request process typically processed in more than six months.\\n- **Variable**: Access request lead time is variable.\\n- **Not applicable**: Access request process duration is not applicable.\\n- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Less than 1 week", - "1-2 weeks", - "2-4 weeks", - "1-2 months", - "2-6 months", - "More than 6 months", - "Variable", - "Not applicable", - "Other" - ] - }, - "location": "accessibility.access.deliveryLeadTime" - }, - { - "required": false, - "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.", - "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "pattern": "^[A-Z]{2}(-[A-Z]{2,3})?$", - "title": "Isocountrycode", - "type": "string" - }, - "location": "accessibility.access.jurisdiction" - }, - { - "required": false, - "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.", - "guidance": "- 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.\\n- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.\\n- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.\\n- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.\\n- Example: NHS England", - "examples": [ - "NHS England" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "LongDescription", - "maxLength": 50000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.access.dataController" - }, - { - "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.", - "guidance": "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.\\n- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.\\n- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.\\n- Examples: Not Applicable, SAIL", - "examples": [ - "Not Applicable", - "SAIL" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "LongDescription", - "maxLength": 50000, - "minLength": 2, - "type": "string" - }, - "location": "accessibility.access.dataProcessor" - }, - { - "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.", - "guidance": "- 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.\\n- 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.\\n- Notes: More than one vocabulary may be provided.\\n- **Local**: Local Coding Standard.\\n- [**OPCS4**](https://digital.nhs.uk/data-and-information/information-standards/governance/latest-activity/standards-and-collections/dapb0084-opcs-classification-of-interventions-and-procedures/)\\n- [**READ**](https://digital.nhs.uk/services/terminology-and-classifications/read-codes)\\n- [**SNOMED CT**](http://www.snomed.org/)\\n- [**SNOMED RT**](https://confluence.ihtsdotools.org/display/DOCGLOSS/SNOMED+RT)\\n- [**DM+D**](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/scci0052-dictionary-of-medicines-and-devices-dm-d)\\n- [**NHS National Codes**](https://www.datadictionary.nhs.uk/)\\n- [**ODS**](https://digital.nhs.uk/services/organisation-data-service)\\n- [**LOINC**](https://loinc.org/)\\n- [**ICD10**](https://www.who.int/classifications/icd/icdonlineversions/en/)\\n- [**ICD10CM**](https://www.cdc.gov/nchs/icd/icd10cm.htm)\\n- [**ICD10PCS**](https://ec.europa.eu/eip/ageing/standards/healthcare/e-health/icd-10-pcs_en)\\n- [**ICD9CM**](https://www.cdc.gov/nchs/icd/icd9cm.htm)\\n- [**ICD9**](https://www.cdc.gov/nchs/icd/icd9.htm)\\n- [**ICDO3**](https://www.who.int/standards/classifications/other-classifications/international-classification-of-diseases-for-oncology)\\n- [**AMT**](https://www.digitalhealth.gov.au/healthcare-providers/product-releases)\\n- [**APC**](https://www.acep.org/administration/reimbursement/reimbursement-faqs/apc-ambulatory-payment-classifications-faq/)\\n- [**ATC**](https://www.whocc.no/atc_ddd_index/)\\n- [**CIEL**](https://github.com/OpenConceptLab/ocl_web/wiki/CIEL)\\n- [**HPO**](https://hpo.jax.org/app/)\\n- [**CPT4**](https://www.ama-assn.org/practice-management/cpt)\\n- [**DPD**](https://health-products.canada.ca/dpd-bdpp/index-eng.jsp)\\n- [**DRG**](https://www.who.int/publications/i/item/WHO-UHC-HGF-Guidance-20.10)\\n- [**HEMONC**](https://hemonc.org/wiki/Main_Page)\\n- [**JMDC**](https://www.jmdc.co.jp/en/)\\n- [**KCD7**](https://forums.ohdsi.org/t/adding-kcd7-code-korean-icd-10-to-the-omop-vocabulary/7576)\\n- [**MULTUM**](https://www.cerner.com/solutions/drug-database)\\n- [**NAACCR**](https://www.naaccr.org/)\\n- [**NDC**](https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory)\\n- [**NDFRT**](https://bioportal.bioontology.org/ontologies/NDFRT)\\n- [**OXMIS**](https://oxrisk.com/oxmis/)\\n- [**RXNORM**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**RXNORM EXTENSION**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)\\n- [**SPL**](https://www.fda.gov/industry/fda-resources-data-standards/structured-product-labeling-resources)\\n- **Other**: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.\\n- [**NHS Scotland National Codes**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales National Codes**](http://www.datadictionary.wales.nhs.uk/)", - "examples": [ - "LOCAL", - "ICD10" - ], - "is_list": true, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "LOCAL", - "OPCS4", - "READ", - "SNOMED CT", - "SNOMED RT", - "DM PLUS D", - "DM+D", - "NHS NATIONAL CODES", - "NHS SCOTLAND NATIONAL CODES", - "NHS WALES NATIONAL CODES", - "ODS", - "LOINC", - "ICD10", - "ICD10CM", - "ICD10PCS", - "ICD9CM", - "ICD9", - "ICDO3", - "AMT", - "APC", - "ATC", - "CIEL", - "HPO", - "CPT4", - "DPD", - "DRG", - "HEMONC", - "JMDC", - "KCD7", - "MULTUM", - "NAACCR", - "NDC", - "NDFRT", - "OXMIS", - "RXNORM", - "RXNORM EXTENSION", - "SPL", - "OTHER" - ] - }, - "location": "accessibility.formatAndStandards.vocabularyEncodingScheme" - }, - { - "required": true, - "title": "Alignment with standardised data models", - "description": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, 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.", - "guidance": "- List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.\\n- If the data is only available in a local format, 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.\\n- [**HL7 FHIR**](https://www.hl7.org/fhir/)\\n- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)\\n- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)\\n- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)\\n- [**DICOM**](https://www.dicomstandard.org/)\\n- [**I2B2**](https://www.i2b2.org/)\\n- [**IHE**](https://www.ihe.net/resources/profiles/)\\n- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)\\n- [**openEHR**](https://www.openehr.org/)\\n- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)\\n- [**PCORnet**](https://pcornet.org/data-driven-common-model/)\\n- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)\\n- **Local**: In-house developed data model.\\n- **Other**: Other standardised data model.\\n- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)\\n- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)\\n- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/)", - "examples": [ - "LOCAL", - "NHS DATA DICTIONARY" - ], - "is_list": true, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "HL7 FHIR", - "HL7 V2", - "HL7 CDA", - "HL7 CCOW", - "LOINC", - "DICOM", - "I2B2", - "IHE", - "OMOP", - "OPENEHR", - "SENTINEL", - "PCORNET", - "CDISC", - "NHS DATA DICTIONARY", - "NHS SCOTLAND DATA DICTIONARY", - "NHS WALES DATA DICTIONARY", - "LOCAL", - "OTHER" - ] - }, - "location": "accessibility.formatAndStandards.conformsTo" - }, - { - "required": true, - "title": "Language", - "description": "This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639.", - "guidance": "https://www.iso.org/iso-639-language-code\\n- **aa**: Afar\\n- **ab**: Abkhazian\\n- **af**: Afrikaans\\n- **ak**: Akan\\n- **sq**: Albanian\\n- **am**: Amharic\\n- **ar**: Arabic\\n- **an**: Aragonese\\n- **hy**: Armenian\\n- **as**: Assamese\\n- **av**: Avaric\\n- **ae**: Avestan\\n- **ay**: Aymara\\n- **az**: Azerbaijani\\n- **ba**: Bashkir\\n- **bm**: Bambara\\n- **eu**: Basque\\n- **be**: Belarusian\\n- **bn**: Bengali\\n- **bh**: Bihari languages\\n- **bi**: Bislama\\n- **bo**: Tibetan\\n- **bs**: Bosnian\\n- **br**: Breton\\n- **bg**: Bulgarian\\n- **my**: Burmese\\n- **ca**: Catalan; Valencian\\n- **cs**: Czech\\n- **ch**: Chamorro\\n- **ce**: Chechen\\n- **zh**: Chinese\\n- **cu**: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic\\n- **cv**: Chuvash\\n- **kw**: Cornish\\n- **co**: Corsican\\n- **cr**: Cree\\n- **cy**: Welsh\\n- **cs**: Czech\\n- **da**: Danish\\n- **de**: German\\n- **dv**: Divehi; Dhivehi; Maldivian\\n- **nl**: Dutch; Flemish\\n- **dz**: Dzongkha\\n- **el**: Greek, Modern (1453-)\\n- **en**: English\\n- **eo**: Esperanto\\n- **et**: Estonian\\n- **eu**: Basque\\n- **ee**: Ewe\\n- **fo**: Faroese\\n- **fa**: Persian\\n- **fj**: Fijian\\n- **fi**: Finnish\\n- **fr**: French\\n- **fy**: Western Frisian\\n- **ff**: Fulah\\n- **ka**: Georgian\\n- **de**: German\\n- **gd**: Gaelic; Scottish Gaelic\\n- **ga**: Irish\\n- **gl**: Galician\\n- **gv**: Manx\\n- **el**: Greek, Modern (1453-)\\n- **gn**: Guarani\\n- **gu**: Gujarati\\n- **ht**: Haitian; Haitian Creole\\n- **ha**: Hausa\\n- **ho**: Hiri Motu\\n- **hr**: Croatian\\n- **hu**: Hungarian\\n- **hy**: Armenian\\n- **ig**: Igbo\\n- **is**: Icelandic\\n- **io**: Ido\\n- **ii**: Sichuan Yi; Nuosu\\n- **iu**: Inuktitut\\n- **ie**: Interlingue; Occidental\\n- **ia**: Interlingua (International Auxiliary Language Association)\\n- **id**: Indonesian\\n- **ik**: Inupiaq\\n- **is**: Icelandic\\n- **it**: Italian\\n- **jv**: Javanese\\n- **ja**: Japanese\\n- **kl**: Kalaallisut; Greenlandic\\n- **kn**: Kannada\\n- **ks**: Kashmiri\\n- **ka**: Georgian\\n- **kr**: Kanuri\\n- **kk**: Kazakh\\n- **km**: Central Khmer\\n- **ki**: Kikuyu; Gikuyu\\n- **rw**: Kinyarwanda\\n- **ky**: Kirghiz; Kyrgyz\\n- **kv**: Komi\\n- **kg**: Kongo\\n- **ko**: Korean\\n- **kj**: Kuanyama; Kwanyama\\n- **ku**: Kurdish\\n- **lo**: Lao\\n- **la**: Latin\\n- **lv**: Latvian\\n- **li**: Limburgan; Limburger; limburgish\\n- **ln**: Lingala\\n- **lt**: Lithuanian\\n- **lb**: Luxembourgish; Letzeburgesch\\n- **lu**: Luba-Katanga\\n- **lg**: Ganda\\n- **mk**: Macedonian\\n- **mh**: Marshallese\\n- **ml**: Malayalam\\n- **mi**: Maori\\n- **mr**: Marathi\\n- **ms**: Malay\\n- **mk**: Macedonian\\n- **mg**: Malagasy\\n- **mt**: Maltese\\n- **mn**: Mongolian\\n- **mi**: Maori\\n- **ms**: Malay\\n- **my**: Burmese\\n- **na**: Nauru\\n- **nv**: Navajo; Navaho\\n- **nr**: Ndebele, South; South Ndebele\\n- **nd**: Ndebele, North; North Ndebele\\n- **ng**: Ndonga\\n- **ne**: Nepali\\n- **nl**: Dutch; Flemish\\n- **nn**: Norwegian Nynorsk; Nynorsk, Norwegian\\n- **nb**: Bokm\u00e5l, Norwegian; Norwegian Bokm\u00e5l\\n- **no**: Norwegian\\n- **ny**: Chichewa; Chewa; Nyanja\\n- **oc**: Occitan (post 1500)\\n- **oj**: Ojibwa\\n- **or**: Oriya\\n- **om**: Oromo\\n- **os**: Ossetian; Ossetic\\n- **pa**: Panjabi; Punjabi\\n- **fa**: Persian\\n- **pi**: Pali\\n- **pl**: Polish\\n- **pt**: Portuguese\\n- **ps**: Pushto; Pashto\\n- **qu**: Quechua\\n- **rm**: Romansh\\n- **ro**: Romanian; Moldavian; Moldovan\\n- **rn**: Rundi\\n- **ru**: Russian\\n- **sg**: Sango\\n- **sa**: Sanskrit\\n- **si**: Sinhala; Sinhalese\\n- **sk**: Slovak\\n- **sl**: Slovenian\\n- **se**: Northern Sami\\n- **sm**: Samoan\\n- **sn**: Shona\\n- **sd**: Sindhi\\n- **so**: Somali\\n- **st**: Sotho, Southern\\n- **es**: Spanish; Castilian\\n- **sq**: Albanian\\n- **sc**: Sardinian\\n- **sr**: Serbian\\n- **ss**: Swati\\n- **su**: Sundanese\\n- **sw**: Swahili\\n- **sv**: Swedish\\n- **ty**: Tahitian\\n- **ta**: Tamil\\n- **tt**: Tatar\\n- **te**: Telugu\\n- **tg**: Tajik\\n- **tl**: Tagalog\\n- **th**: Thai\\n- **bo**: Tibetan\\n- **ti**: Tigrinya\\n- **to**: Tonga (Tonga Islands)\\n- **tn**: Tswana\\n- **ts**: Tsonga\\n- **tk**: Turkmen\\n- **tr**: Turkish\\n- **tw**: Twi\\n- **ug**: Uighur; Uyghur\\n- **uk**: Ukrainian\\n- **ur**: Urdu\\n- **uz**: Uzbek\\n- **ve**: Venda\\n- **vi**: Vietnamese\\n- **vo**: Volap\u00fck\\n- **cy**: Welsh\\n- **wa**: Walloon\\n- **wo**: Wolof\\n- **xh**: Xhosa\\n- **yi**: Yiddish\\n- **yo**: Yoruba\\n- **za**: Zhuang; Chuang\\n- **zh**: Chinese\\n- **zu**: Zulu", - "examples": [ - "en" - ], - "is_list": true, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "aa", - "ab", - "ae", - "af", - "ak", - "am", - "an", - "ar", - "as", - "av", - "ay", - "az", - "ba", - "be", - "bg", - "bh", - "bi", - "bm", - "bn", - "bo", - "br", - "bs", - "ca", - "ce", - "ch", - "co", - "cr", - "cs", - "cu", - "cv", - "cy", - "da", - "de", - "dv", - "dz", - "ee", - "el", - "en", - "eo", - "es", - "et", - "eu", - "fa", - "ff", - "fi", - "fj", - "fo", - "fr", - "fy", - "ga", - "gd", - "gl", - "gn", - "gu", - "gv", - "ha", - "he", - "hi", - "ho", - "hr", - "ht", - "hu", - "hy", - "hz", - "ia", - "id", - "ie", - "ig", - "ii", - "ik", - "io", - "is", - "it", - "iu", - "ja", - "jv", - "ka", - "kg", - "ki", - "kj", - "kk", - "kl", - "km", - "kn", - "ko", - "kr", - "ks", - "ku", - "kv", - "kw", - "ky", - "la", - "lb", - "lg", - "li", - "ln", - "lo", - "lt", - "lu", - "lv", - "mg", - "mh", - "mi", - "mk", - "ml", - "mn", - "mr", - "ms", - "mt", - "my", - "na", - "nb", - "nd", - "ne", - "ng", - "nl", - "nn", - "no", - "nr", - "nv", - "ny", - "oc", - "oj", - "om", - "or", - "os", - "pa", - "pi", - "pl", - "ps", - "pt", - "qu", - "rm", - "rn", - "ro", - "ru", - "rw", - "sa", - "sc", - "sd", - "se", - "sg", - "si", - "sk", - "sl", - "sm", - "sn", - "so", - "sq", - "sr", - "ss", - "st", - "su", - "sv", - "sw", - "ta", - "te", - "tg", - "th", - "ti", - "tk", - "tl", - "tn", - "to", - "tr", - "ts", - "tt", - "tw", - "ty", - "ug", - "uk", - "ur", - "uz", - "ve", - "vi", - "vo", - "wa", - "wo", - "xh", - "yi", - "yo", - "za", - "zh", - "zu" - ] - }, - "location": "accessibility.formatAndStandards.language" - }, - { - "required": true, - "title": "Format", - "description": "If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format.", - "guidance": "- If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, .\\n- Please **enter one format type at a time** and click **Add New Field** to add further keywords.\\n- Note: If your file format is not included in the current list of formats, please indicate other.\\n- **Example**: text/tab-separated-values, application/sql, text/csv, image/diacom-rle", - "examples": [ - "text/tab-separated-values", - "application/sql", - "text/csv", - "image/diacom-rle" - ], - "is_list": true, - "is_optional": false, - "types": { - "minLength": 1, - "title": "Format", - "type": "string" - }, - "location": "accessibility.formatAndStandards.format" - }, - { - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.derivedFrom.pid" - }, - { - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.derivedFrom.title" - }, - { - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.derivedFrom.url" - }, - { - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.isPartOf.pid" - }, - { - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.isPartOf.title" - }, - { - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.isPartOf.url" - }, - { - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.linkableDatasets.pid" - }, - { - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.linkableDatasets.title" - }, - { - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.linkableDatasets.url" - }, - { - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.similarToDatasets.pid" - }, - { - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "enrichmentAndLinkage.similarToDatasets.title" - }, - { - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.similarToDatasets.url" - }, - { - "required": false, - "title": "Investigations", - "description": "Please provide link to any active projects that are using the dataset.", - "guidance": "- Please provide the website address(es) which document information related to active projects utilising the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each website and press enter to add it to the list.\\n- **Example**: ", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.investigations" - }, - { - "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/", - "guidance": "- Please provide the URL of any analysis tools or models that have been created for this dataset and are available for further use.\\n- Multiple tools may be provided.\\n- 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": true, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "enrichmentAndLinkage.tools" - }, - { - "required": false, - "title": "Publication about the dataset", - "description": "DOIs for publications which describe the dataset.", - "guidance": "- Please provide the DOIs for publications which describe the dataset.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1093/ije/dyab028>", - "examples": [ - "10.1093/ije/dyab028" - ], - "is_list": true, - "is_optional": true, - "types": { - "title": "Doi", - "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", - "type": "string" - }, - "location": "enrichmentAndLinkage.publicationAboutDataset" - }, - { - "required": false, - "title": "Publication using the dataset", - "description": "DOIs for publications which use the dataset for analysis.", - "guidance": "- Please provide the DOIs for publications which have used the dataset in their analysis.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, type in each citation and press enter to add it to the list.\\n- **Example**: <10.1001/jamapediatrics.2016.3633>", - "examples": [ - "10.1001/jamapediatrics.2016.3633" - ], - "is_list": true, - "is_optional": true, - "types": { - "title": "Doi", - "pattern": "^10.\\d{4,9}/[-._;()/:a-zA-Z0-9]+$", - "type": "string" - }, - "location": "enrichmentAndLinkage.publicationUsingDataset" - }, - { - "required": true, - "title": "Dataset volume measure", - "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", - "guidance": "- **Persons**: Unique persons recorded in the dataset\\n- **Events**: Unique events such as procedures and prescriptions within the dataset\\n-**Findings**: Unique findings included in the dataset such as diagnoses'\\n-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", - "examples": [ - "Persons" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "Persons", - "Events", - "Findings", - "Number of scans per modality" - ] - }, - "location": "observations.observedNode" - }, - { - "required": true, - "title": "Measured value", - "description": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", - "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", - "examples": [ - 1000 - ], - "is_list": false, - "is_optional": false, - "types": "int", - "location": "observations.measuredValue" - }, - { - "required": false, - "title": "Disambiguating description", - "description": "If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters.", - "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "AbstractText", - "maxLength": 500, - "minLength": 5, - "type": "string" - }, - "location": "observations.disambiguatingDescription" - }, - { - "required": true, - "title": "Observation date", - "description": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", - "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", - "examples": [ - "2024-10-24" - ], - "is_list": false, - "is_optional": false, - "types": "date", - "location": "observations.observationDate" - }, - { - "required": true, - "title": "Measured property", - "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", - "guidance": "Descriptive term for the observation property measured.", - "examples": [ - "Count" - ], - "is_list": false, - "is_optional": false, - "types": { - "title": "MeasuredProperty" - }, - "location": "observations.measuredProperty" - }, - { - "required": false, - "title": "Synthetic data web links", - "description": "Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.\\n- Please split your existing list of citations into separate fields.\\n- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.\\n- **Example**: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/", - "guidance": "", - "examples": null, - "is_list": true, - "is_optional": true, - "types": { - "title": "Url", - "format": "uri", - "minLength": 1, - "type": "string" - }, - "location": "structuralMetadata.syntheticDataWebLink" - }, - { - "required": true, - "title": "Age grouping", - "description": null, - "guidance": "", - "examples": [ - "30-34 years" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "0-6 days", - "7-27 days", - "1-11 months", - "1-4 years", - "5-9 years", - "10-14 years", - "15-19 years", - "20-24 years", - "25-29 years", - "30-34 years", - "35-39 years", - "40-44 years", - "45-49 years", - "50-54 years", - "55-59 years", - "60-64 years", - "65-69 years", - "70-74 years", - "75-79 years", - "80-84 years", - "85-89 years", - "90-94 years", - "95-99 years", - "100+ years" - ] - }, - "location": "demographicFrequency.age.bin" - }, - { - "required": true, - "title": "Age count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "is_list": false, - "is_optional": false, - "types": "int", - "location": "demographicFrequency.age.count" - }, - { - "required": true, - "title": "Ethnicity grouping", - "description": null, - "guidance": "", - "examples": [ - "Black or Black British - Any other Black background" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "White - British", - "White - Irish", - "White - Any other White background", - "Mixed - White and Black Caribbean", - "Mixed - White and Black African", - "Mixed - White and Asian", - "Mixed - Any other mixed background", - "Asian or Asian British - Indian", - "Asian or Asian British - Pakistani", - "Asian or Asian British - Bangladeshi", - "Asian or Asian British - Any other Asian background", - "Black or Black British - Caribbean", - "Black or Black British - African", - "Black or Black British - Any other Black background", - "Other Ethnic Groups - Chinese", - "Other Ethnic Groups - Any other ethnic group", - "Not stated", - "Not known" - ] - }, - "location": "demographicFrequency.ethnicity.bin" - }, - { - "required": true, - "title": "Ethnicity count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "is_list": false, - "is_optional": false, - "types": "int", - "location": "demographicFrequency.ethnicity.count" - }, - { - "required": true, - "title": "Disease code", - "description": null, - "guidance": "", - "examples": [ - "J45" - ], - "is_list": false, - "is_optional": false, - "types": "str", - "location": "demographicFrequency.disease.diseaseCode" - }, - { - "required": true, - "title": "Disease code vocabulary", - "description": null, - "guidance": "", - "examples": [ - "ICD10" - ], - "is_list": false, - "is_optional": false, - "types": { - "type": "string", - "options": [ - "ICD10", - "SNOMED CT", - "MeSH" - ] - }, - "location": "demographicFrequency.disease.diseaseCodeVocabulary" - }, - { - "required": true, - "title": "Disease count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "is_list": false, - "is_optional": false, - "types": "int", - "location": "demographicFrequency.disease.count" - }, - { - "required": false, - "title": "Omics assay", - "description": "The specific 'omics assay that generated the dataset.", - "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "NMR spectroscopy", - "Mass-spectrometry", - "Whole genome sequencing", - "Exome sequencing", - "Genotyping by array", - "Transcriptome profiling by high-throughput sequencing", - "Transcriptome profiling by array", - "Amplicon sequencing", - "Methylation binding domain sequencing", - "Methylation profiling by high-throughput sequencing", - "Genomic variant calling", - "Chromatin accessibility profiling by high-throughput sequencing", - "Histone modification profiling by high-throughput sequencing", - "Chromatin immunoprecipitation sequencing", - "Whole genome shotgun sequencing", - "Whole transcriptome sequencing", - "Targeted mutation analysis" - ] - }, - "location": "omics.assay" - }, - { - "required": false, - "title": "Omics Platform", - "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", - "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "type": "string", - "options": [ - "Other", - "NMR Nightingale", - "Metabolon", - "Biocrates", - "Illumina", - "Oxford Nanopore", - "454", - "Hi-C", - "HiFi" - ] - }, - "location": "omics.platform" - }, - { - "required": false, - "title": "Icons", - "description": "Calculated categorization icons added during export.", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Icons", - "items": { - "type": "string" - }, - "type": "array" - }, - "location": "icons" - }, - { - "required": false, - "title": "Project Title", - "description": "May or may not be different to the Dataset Title", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "project.projectName" - }, - { - "required": false, - "title": "Lead Researcher", - "description": "", - "guidance": "", - "examples": [ - "Dr Smith" - ], - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "project.leadResearcher" - }, - { - "required": false, - "title": "Lead Research Institute", - "description": "", - "guidance": "", - "examples": [ - "Sussex University" - ], - "is_list": false, - "is_optional": true, - "types": { - "maxLength": 150, - "minLength": 2, - "title": "OneHundredFiftyCharacters", - "type": "string" - }, - "location": "project.leadResearchInstitute" - }, - { - "required": false, - "title": "Grant number(s)", - "description": "List of grant numbers separated by a line break", - "guidance": "Normally specified on the grant acceptance letter", - "examples": [ - "A354t", - "ropguadg" - ], - "is_list": false, - "is_optional": true, - "types": { - "title": "LineSeparatedValues", - "pattern": "([^\\\\r\\\\n]+)", - "type": "string" - }, - "location": "project.grantNumbers" - }, - { - "required": false, - "title": "Project Start Date", - "description": "Starting date of project grant.", - "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", - "examples": null, - "is_list": false, - "is_optional": true, - "types": "date", - "location": "project.projectStartDate" - }, - { - "required": false, - "title": "Project End Date", - "description": "Current end date of project grant.", - "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", - "examples": null, - "is_list": false, - "is_optional": true, - "types": "date", - "location": "project.projectEndDate" - }, - { - "required": false, - "title": "Project Scope", - "description": "data and biospecimens expected to result from the grant.", - "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", - "examples": [ - "Longitudinal genomic data including somatic mutations" - ], - "is_list": false, - "is_optional": true, - "types": "str", - "location": "project.projectScope" - }, - { - "required": false, - "title": null, - "description": "Categorization tags regarding cancer type, data type, and access.", - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "description": "A list of categorization tags (ids) for the dataset.", - "items": { - "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", - "type": "string" - }, - "title": "Dataset Filters", - "type": "array" - }, - "location": "datasetFilters" - }, - { - "required": false, - "title": "Image", - "description": "An image file.", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - "examples": null, - "is_list": false, - "is_optional": true, - "types": "str", - "location": "erd.image" - }, - { - "required": false, - "title": null, - "description": null, - "guidance": "", - "examples": null, - "is_list": false, - "is_optional": true, - "types": { - "title": "Description", - "maxLength": 10000, - "minLength": 2, - "type": "string" - }, - "location": "erd.description" - } - ], - "url_regex": "^\\s*((https?:\\/\\/)*([a-zA-Z0-9-]+\\.?)+[a-zA-Z]{2,}(:\\d+)?(\\/[^\\s]*)?(\n)?)+$" -} \ No newline at end of file diff --git a/docs/HDRUK/4.1.0.md b/docs/HDRUK/4.1.0.md deleted file mode 100644 index 59a93977..00000000 --- a/docs/HDRUK/4.1.0.md +++ /dev/null @@ -1,1564 +0,0 @@ - -## identifier - -System dataset identifier. - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Dataset identifier | N/A | False | True | ["Uuidv4[{'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}$', 'type': 'string'}]", "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * 226fb3f1-4471-400a-8c39-2b66d46a39b6 - * https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6 - - -## version - -Dataset metadata version. - -| title | guidance | is_list | required | type | -|:----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------| -| Dataset Version | Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.
Major: Significant/breaking changes.
Minor: New features and bug fixes.
Patch: Minor fixes without new features. | False | True | ["Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]"] | - -Examples: - - * 1.1.0 - - -## revisions - -A list of persistent identifiers and version numbers for previous versions of metadata for this dataset - - - - - - -### version - -Version number used for previous version of this dataset - -| title | guidance | is_list | required | type | -|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------| -| revision version | | False | True | ["Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]"] | - -Examples: - - * 6.0.0 - - -### url - -Some url with a reference to the record of a previous version of this dataset - -| title | guidance | is_list | required | type | -|:-------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| revision url | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561 - - -## issued - -Datetime stamp of when this metadata version was initially issued - -| title | guidance | is_list | required | type | -|:-------------------------|:-----------|:----------|:-----------|:-------------| -| Metadata Issued Datetime | | False | True | ['datetime'] | - -Examples: - - * 2024-10-24T00:00:00.000Z - - -## modified - -Datetime stamp of when this metadata was last modified - -| title | guidance | is_list | required | type | -|:-----------------------|:-----------|:----------|:-----------|:-------------| -| Last Modified Datetime | | False | True | ['datetime'] | - -Examples: - - * 2024-10-24T00:00:00.000Z - - -## summary - -Summary of metadata describing key pieces of information. - - - - - - -### title - -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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers. - -| title | guidance | is_list | required | type | -|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| -| Title | - The **title** 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.
- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.
- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.
- **Example**: North West London COVID-19 Patient Level Situation Report | False | True | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | - -Examples: - - * North West London COVID-19 Patient Level Situation Report - * Scottish Morbidity Record (SMR) - - -### funders - -List of Funders separated by a line break - -| title | guidance | is_list | required | type | -|:----------|:------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| -| Funded by | Put each funder on a new line | False | True | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * CRUK - * University of Sussex - - -### abstract - -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. - -| title | guidance | is_list | required | type | -|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------| -| Dataset abstract | - The abstract should 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**.
- Effective abstracts should **avoid long sentences and abbreviations** where possible.
- **Note**: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.
- **Abstracts should be different from the full description** for a dataset.
- **Example**: CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. | False | True | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. - - -### dataCustodian - -This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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. - - - - - - -#### identifier - -Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation. - -| title | guidance | is_list | required | type | -|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------| -| identifier | **Example**: https://ror.org/053fq8t95
If your organisation does not have a ROR identifier please use the “suggest and institute” function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform | False | True | ['str', 'int'] | - -Examples: - - * 30f16703-28bc-4f45-9ce5-625d2d3db27d - - -#### name - -The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata. - -| title | guidance | is_list | required | type | -|:-----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| -| Name of Data Custodian | In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank. | False | True | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | - -Examples: - - * Health Data Research UK - - -#### logo - -Please provide a logo associated with the Gateway Organisation using a valid URL. The following formats will be accepted .jpg, .png or .svg. If a logo is not submitted this will default to the logo for the team submitting the metadata. - -| title | guidance | is_list | required | type | -|:------------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Organisation Logo | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -#### description - -Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata. - -| title | guidance | is_list | required | type | -|:-------------------------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| -| Organisation Description | | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -#### contactPoint - -Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata. - -| title | guidance | is_list | required | type | -|:--------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| contact point | | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]'] | - -Examples: - - * test@test.co.uk - - -#### memberOf - -Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata. - -| title | guidance | is_list | required | type | -|:------------------------|:-----------|:----------|:-----------|:-------------------------------------------------------| -| Organisation Membership | | False | False | ["MemberOfV2['Hub','Alliance','Other','NCS']", 'null'] | - - - - -### populationSize - -Input the number of people captured within the dataset. - -| title | guidance | is_list | required | type | -|:------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| -| Dataset population size | This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the **Observations** fields. The filter also allows for Researchers to search datasets which have no population size reported, but will **not** pull any population size captured in the **Observations** section. | False | True | ['int'] | - -Examples: - - * 1000 - - -### keywords - -Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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. - -| title | guidance | is_list | required | type | -|:---------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------| -| Keywords | - Please provide **relevant** and **specific keywords** that can **improve the search engine optimization** of your dataset.
- Please **enter one keyword at a time** and click **Add New Field** to add further keywords.
- Text from the title is automatically included in the search, there is no need to include this in the keywords.
- Include words that researcher may include in their searches. | True | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]"] | - -Examples: - - * Outpatient Care - * Socioeconomic Deprivation - * Infant Morbidity - * Learning disability - * Primary Care Prescription - * Accident and Emergency Admissions - - -### doiName - -DOI associated to this dataset. Find out more about DOIs here: [https://www.doi.org/the-identifier/what-is-a-doi/](https://www.doi.org/the-identifier/what-is-a-doi/) - -| title | guidance | is_list | required | type | -|:--------------------------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------| -| Digital Object Identifier (DOI) for dataset | - Please note: This is **not** the DOI of the publication(s) associated with the dataset.
- All HDR UK registered **datasets** should either have a **(DOI)** or be working towards obtaining one.
- If a DOI is available, please provide the DOI.
- **What happens if I do not have a DOI?**: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service. | False | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * 10.1093/ije/dyx196 - - -### contactPoint - -Please provide a valid email address that can be used to coordinate data access requests. - -| title | guidance | is_list | required | type | -|:--------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------| -| Contact point | Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.
**Note:** An employee's email address can only be provided on a temporary basis and if one is provided, **you must obtain explicit consent for this purpose**. | False | True | ["EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * gateway@hdruk.ac.uk - - -### datasetAliases - -Dataset & BioSample alias or alternate names. - -| title | guidance | is_list | required | type | -|:--------------------------|:-------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Dataset & BioSample alias | Alternate name, acronym or other identifier for the Dataset and/or BioSamples. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]', 'null'] | - - - - -## documentation - -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. - - - - - - -### description - -A free-text description of the dataset.
A URL can also be provided as the description of the dataset.
Gateway Feature: Keywords and text may be extracted out of the description and indexed for search. - -| title | guidance | is_list | required | type | -|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------| -| Description | - An HTML account of the data that **provides context and scope** of the data, **limited to 10000 characters, and/or a resolvable URL** that describes the dataset.
- Additional information can be recorded and included using the Associated media field. | False | True | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * CPRD Aurum contains primary care data contributed by General Practitioner (GP) practices using EMIS Web® including patient registration information and all care events that GPs have chosen to record as part of their usual medical practice. - - -### associatedMedia - -Please provide any media associated with the Gateway Organisation using a valid URL 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. - -| title | guidance | is_list | required | type | -|:-----------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Associated media | - Please provide any media associated with the Gateway Organisation **using a valid URL** 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.
- Note: media assets should be hosted by the organisation.
- **Example**: This could be a **link to a PDF Document** that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.
- If you are providing multiple links for associated media, we recommend that you separate these with a comma. | False | False | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]]', 'null'] | - -Examples: - - * PDF document that describes study protocol - https://link.to/document.pdf - - -### inPipeline - -Indicate whether this dataset is currently available for Researchers to request access. - -| title | guidance | is_list | required | type | -|:------------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------| -| Dataset pipeline status | If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'. | False | False | ["Pipeline['Available','Not available']", 'null'] | - - - - -## coverage - -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. - - - - - - -### spatial - -The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:
- For locations in the UK: [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about)
- For locations in other countries: [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes) - -| title | guidance | is_list | required | type | -|:--------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------| -| Geographic coverage | - The geographical area covered by the dataset.
- Please provide a valid location.
- For locations in the UK, this location should conform to [ONS standards](https://geoportal.statistics.gov.uk/datasets/208d9884575647c29f0dd5a1184e711a/about).
- For locations in other countries we use [ISO 3166-1 & ISO 3166-2](https://github.com/HDRUK/reference-codes). | False | True | ["CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[hdr_schemata.definitions.HDRUK.Url.Url]'] | - -Examples: - - * United Kingdom - * https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html - - -### typicalAgeRangeMin - -Please indicate the minimum age in years of participants in the dataset as a whole number (integer). - -| title | guidance | is_list | required | type | -|:------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| -| Minimum age range | - Please indicate the minimum of the age range in whole years of participants in the dataset.
- **What if my dataset has participants of all “All Ages” or “Any Ages”?**: In that case, please enter 0. | False | False | ['int', 'null'] | - -Examples: - - * 18 - - -### typicalAgeRangeMax - -Please indicate the maximum age in years of participants in the dataset as a whole number (integer). - -| title | guidance | is_list | required | type | -|:------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| -| Maximum age range | - Please indicate the maximum of the age range in whole years of participants in the dataset.
- **What if my dataset has participants of all “All Ages” or “Any Ages”?**: In that case, please enter 150. | False | False | ['int', 'null'] | - -Examples: - - * 90 - - -### datasetCompleteness - -The URL where a Researcher can learn more about the completeness of the dataset. - -| title | guidance | is_list | required | type | -|:--------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Dataset coverage/completeness/quality | If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.
**Example**: https://bhfdatasciencecentre.org/dashboard/ | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * https://bhfdatasciencecentre.org/dashboard/ - - -### materialType - -The type of biospecimen saved from a biological entity. - -| title | guidance | is_list | required | type | -|:-------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Biological sample availability | Indicate the specimen type, can be several values from the list below:
- 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 samples are not yet available, please provide **“Availability to be confirmed”**.
- If samples are not available, then please provide **“Not available”**.
- **Not available**: Samples associated with the dataset are not available.
- **Bone marrow**: Bone marrow samples associated with the data are available.
- **Cancer cell lines**: Cancer cell line samples associated with the data are available.
- **CDNA/MRNA**: CDNA/MRNA samples associated with the data are available.
- **Core biopsy**: Core biopsy samples associated with the data are available.
- **DNA**: DNA samples associated with the data are available.
- **Entire body organ**: Entire body organ associated with the data are available.
- **Faeces**: Faeces samples associated with the data are available.
- **Immortalized cell lines**: Immortalized cell line samples associated with the data are available.
- **Isolated pathogen**: Isolated pathogen associated with the data are available.
- **MicroRNA**: MicroRNA samples associated with the data are available.
- **Peripheral blood cells**: Peripheral blood cell samples associated with the data are available.
- **Plasma**: Plasma samples associated with the data are available.
- **PM Tissue**: PM Tissue samples associated with the data are available.
- **Primary cells**: Primary cell samples associated with the data are available.
- **RNA**: RNA samples associated with the data are available.
- **Saliva**: Saliva samples associated with the data are available.
- **Serum**: Serum samples associated with the data are available.
- **Swabs**: Swab samples associated with the data are available.
- **Tissue**: Tissue samples associated with the data are available.
- **Urine**: Urine samples associated with the data are available.
- **Whole blood**: Whole blood samples associated with the data are available.
- **Availability to be confirmed**: Availability of samples is currently being confirmed.
- **Other**: Other types of sample available. | True | False | ["MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']"] | - - - - -### followUp - -If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed “longitudinally” i.e. new information is collected about them for a period of time afterward. This is known as the “follow up period”. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period. - -| title | guidance | is_list | required | type | -|:----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------| -| Follow-up | If known, please indicate the typical time span that a patient appears in the dataset (follow up period).
-**0 - 6 MONTHS**: Data typically available for a patient over a 0-6 month period.
-**6 - 12 MONTHS**: Data typically available for a patient over a 6-12 month period.
-**1 - 10 YEARS**: Data typically available for a patient over a 1-10 year period.
-**> 10 YEARS**: Data typically available for a patient for over a 10 year period.
-**CONTINUOUS**: Data for patients is being regularly added to and updated.
-**UNKNOWN**: Timespan is Unknown.
-**OTHER**: Data available for a patient over another time period. | False | False | ["FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", 'null'] | - - - - -### pathway - -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. - -| title | guidance | is_list | required | type | -|:----------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| -| Patient 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. | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -## provenance - -Provenance information allows researchers to understand data within the context of its origins and can be an indicator of quality, authenticity and timeliness. - - - - - - -### origin - -Coverage by origin (geographical and situations). - - - - - - -#### purpose - -Please indicate the purpose(s) that the dataset was collected. - -| title | guidance | is_list | required | type | -|:------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------| -| Purpose of dataset collection | - **Research cohort**: Data collected for a defined group of people.
- **Study**: Data collected for a specific research study.
- **Disease registry**: Data collected as part of a disease registry.
- **Trial**: Data collected for as part of a clinical trial.
- **Care**: Data collected as part of routine clinical care.
- **Audit**: Data collected as part of an audit programme.
- **Administrative**: Data collected for administrative and management information purposes.
- **Financial**: Data collected either for payments or for billing.
- **Statutory**: Data collected in compliance with statutory requirements.
- **Other**: Data collected for other purpose. | True | False | ["PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]"] | - - - - -#### datasetType - -The topic areas to which the dataset content relates. - -| title | guidance | is_list | required | type | -|:-------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Dataset type | Types include those listed below. Datasets can have more than one type associated.
- **Health and disease**: Includes any data related to mental health, cardiovascular, cancer, rare diseases, metabolic and endocrine, neurological, reproductive, maternity and neonatology, respiratory, immunity, musculoskeletal, vision, renal and urogenital, oral and gastrointestinal, cognitive function or hearing.
- **Treatments/Interventions**: Includes any data related to treatment or interventions related to vaccines or which are preventative or therapeutic in nature.
- **Measurements/Tests**: Includes any data related to laboratory or other diagnostics.
- **Imaging types**: Includes any data related to CT, MRI, PET, x-ray, ultrasound or pathology imaging.
- **Imaging area of the body**: Indicates whether the dataset relates to head, chest, arm abdomen or leg imaging.
- **Omics**: Includes any data related to proteomics, transcriptomics, epigenomics, metabolomics, multiomics, metagenomics or genomics.
- **Socioeconomic**: Includes any data related to education, crime and justice, ethnicity, housing, labour, ageing, economics, marital status, social support, deprivation, religion, occupation, finances or family circumstances.
- **Lifestyle**: Includes any data related to smoking, physical activity, dietary habits or alcohol.
- **Registry**: Includes any data related to disease registries for research, national disease registries, audits, or birth and deaths records.
- **Environment and energy**: Includes any data related to the monitoring or study of environmental or energy factors or events.
- **Information and communication**: Includes any data related to the study or application of information and communication.
- **Politics**: Includes any data related to political views, activities, voting, etc. | True | True | ['typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]'] | - -Examples: - - * Health and disease - - -#### source - -Please indicate the source of the data extraction. - -| title | guidance | is_list | required | type | -|:--------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------| -| Source of data extraction | - **EPR**: Data Extracted from Electronic Patient Record.
- **Electronic survey**: Data has been extracted from electronic surveys.
- **LIMS**: Data has been extracted from a laboratory information management system.
- **Paper-based**: Data has been extracted from paper forms.
- **Free text NLP**: Data has been extracted from unstructured freetext using natural language processing.
- **Machine generated**: Data has been machine generated i.e. imaging.
- **Other**: Data has been extracted by other means. | True | False | ["SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']"] | - - - - -#### collectionSource - -Please indicate the setting(s) where data was collected. Multiple settings may be provided. - -| title | guidance | is_list | required | type | -|:--------------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Collection source setting | - **Cohort, study, trial**: Cohort, study or trial data collection as part of protocol.
- **Clinic**: Specific clinic such as antenatal clinic.
- **Primary care - Referrals**: General medical practitioner referral to another service.
- **Primary care - Clinic**: General medical practitioner practice.
- **Primary care - Out of hours**: General medical practitioner care or advice outside of standard hours.
- **Secondary care - Accident and emergency**: Accident emergency department.
- **Secondary care - Outpatients**: Outpatient care.
- **Secondary care - In-patients**: In-patient care.
- **Secondary care - Ambulance**: Care provided in association with ambulance service.
- **Secondary care - ICU**: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).
- **Prescribing - Community pharmacy**: Pharmacy based in the community.
- **Prescribing - Community pharmacy**: Pharmacy based in a hospital setting.
- **Patient report outcome**: Reported by patient.
- **Wearables**: Data collection devices worn on the body.
- **Local authority**: Local authority or entity associated with a local authority.
- **National government**: National government or entity associated with the national government.
- **Community**: Community settings.
- **Services**: Services such as drug misuse or blood transfusion.
- **Home**: Home setting.
- **Private**: Private medical clinic.
- **Social care - Health care at home**: service provided in the home or residence of a person.
- **Social care - Other social data**: service provided in a setting outside of the person's home or residence.
- **Census**: collected as part of census.
- **Other**: Other setting. | True | False | ["SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]"] | - - - - -#### imageContrast - -Indicate whether usage of imaging contrast is captured within the dataset. - -| title | guidance | is_list | required | type | -|:---------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------| -| Image contrast | If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'. | False | False | ["Ternary['Yes','No','Not stated']", 'null'] | - - - - -### temporal - -Dates and other temporal coverage information. - - - - - - -#### publishingFrequency - -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 “on-demand” 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/ - -| title | guidance | is_list | required | type | -|:---------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Publishing frequency | Please indicate the frequency of publishing.
- If a dataset is published regularly please choose a publishing 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 indicate when it was released.
- If a dataset is released on an irregular basis or “on-demand” 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/.

Options:
- **Static**: Dataset published once.
- **Irregular**: Dataset published at uneven intervals.
- **Continuous**: Dataset published without interruption.
- **Biennial**: Dataset published every two years.
- **Annual**: Dataset published occurs once a year.
- **Biannual**: Dataset published twice a year.
- **Quarterly**: Dataset published every three months.
- **Bimonthly**: Dataset published every two months.
- **Monthly**: Dataset published once a month.
- **Biweekly**: Dataset published every two weeks.
- **Weekly**: Dataset published once a week.
- **Twice weekly**: Dataset published twice a week.
- **Daily**: Dataset published once a day.
- **Other**: Dataset published using other interval. | False | True | ["PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]"] | - -Examples: - - * Continuous - - -#### distributionReleaseDate - -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. - -| title | guidance | is_list | required | type | -|:--------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| -| Distribution release date | - Please indicate the frequency the dataset is published.
- If a dataset is published regularly please choose a publishing 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 indicate when it was released.
- If a dataset is released on an irregular basis or “on-demand” 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/](https://www.dublincore.org/specifications/dublin-core/collection-description/frequency/) | False | False | ['date', 'datetime', 'null'] | - -Examples: - - * 2024-10-24T00:00:00.000Z - - -#### startDate - -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. - -| title | guidance | is_list | required | type | -|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| -| Start date | - 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. | False | True | ['date', 'datetime'] | - -Examples: - - * 2024-10-24T00:00:00.000Z - - -#### endDate - -The end of the time period that the dataset provides coverage for. If the dataset is “Continuous” 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. - -| title | guidance | is_list | required | type | -|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------| -| End date | - The end of the time period that the dataset provides coverage for.
- If the dataset is **“Continuous”** and has no known end date, **please leave blank**.
- If there are **multiple cohorts** in the dataset with varying end dates, please provide the **latest date**. | False | False | ['date', 'datetime', "EndDateEnum['CONTINUOUS',null]", 'null'] | - -Examples: - - * 2024-10-24T00:00:00.000Z - - -#### timeLag - -Please indicate the typical time-lag between an event and the data for that event appearing in the dataset. - -| title | guidance | is_list | required | type | -|:---------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------| -| Time lag | Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.
- **Less than 1 week**: Typical time lag of less than a week.
- **1-2 weeks**: Typical time-lag of one to two weeks.
- **2-4 weeks**: Typical time-lag of two to four weeks.
- **1-2 months**: Typical time-lag of one to two months.
- **2-6 months**: Typical time-lag of two to six months.
- **6 months plus**: Typical time-lag of more than six months.
- **Variable**: Variable time-lag.
- **Not applicable**: Not Applicable i.e. static dataset.
- **Other**: Other time-lag. | False | True | ["TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']"] | - -Examples: - - * Not applicable - - -## accessibility - -Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets. - - - - - - -### usage - -This section includes information about how the data can be used and how it is currently being used. - - - - - - -#### dataUseLimitation - -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 Data Use Ontology to include a value for NO LINKAGE. - -| title | guidance | is_list | required | type | -|:--------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Data use limitation | 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.
- **General research use**: This data use limitation indicates that use is allowed for general research use for any research purpose.
- **Genetic studies only**: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).
- **No general methods research**: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.
- **No restriction**: This data use limitation indicates there is no restriction on use.
- **Research-specific restrictions**: This data use limitation indicates that use is limited to studies of a certain research type.
- **Research use only**: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).
- **No linkage**: This data use limitation indicates there is a restriction on linking to any other datasets | True | False | ["DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']"] | - - - - -#### dataUseRequirements - -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. - -| title | guidance | is_list | required | type | -|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Data use requirements | - Please indicate if there 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.
- **Collaboration required**: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).
- **Ethics approval required**: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.
- **Geographical restrictions**: This requirement indicates that use is limited to within a specific geographic region.
- **Institution-specific restrictions**: This requirement indicates that use is limited to use within an approved institution.
- **Not for profit use**: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.
- **Project-specific restrictions**: This requirement indicates that use is limited to use within an approved project.
- **Publication moratorium**: This requirement indicates that requestor agrees not to publish results of studies until a specific date.
- **Publication required**: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.
- **Return to database or resource**: This requirement indicates that the requestor must return derived/enriched data to the database/resource.
- **Time limit on use**: This requirement indicates that use is approved for a specific number of months.
- **User-specific restriction**: This requirement indicates that use is limited to use by approved users. | True | False | ["DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']"] | - - - - -#### resourceCreator - -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. - -| title | guidance | is_list | required | type | -|:----------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Citation requirements | - 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.
- To add multiple entries, please click on **'+' symbol** to enter each separate website.
- **Example**: National Services Scotland | False | False | ["ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]', 'null'] | - -Examples: - - * National Services Scotland - - -### access - -Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets. - - - - - - -#### accessRights - -Please provide details for the data access rights. - -| title | guidance | is_list | required | type | -|:--------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------| -| Access rights | - The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.
- If such a resource or the underlying process doesn’t exist, please provide “In Progress”, until both the process and the documentation are ready. | False | True | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * In Progress - - -#### accessServiceCategory - -The method a Researcher will use to access the dataset, if approved. - -| title | guidance | is_list | required | type | -|:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------| -| Access method category | Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'. | False | False | ["AccessService['TRE/SDE','Direct access','Open access','Varies based on project']", 'null'] | - -Examples: - - * TRE/SDE - - -#### accessService - -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. - -| title | guidance | is_list | required | type | -|:---------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| -| 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. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * https://re-docs.genomicsengland.co.uk/tutorials/ - * https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/ - - -#### accessRequestCost - -Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests. - -| title | guidance | is_list | required | type | -|:--------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| -| Access request cost | This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL. | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -#### deliveryLeadTime - -Please provide an indication of the typical processing times based on the types of requests typically received. - -| title | guidance | is_list | required | type | -|:-----------------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Time to dataset access | - **Less than 1 week**: Access request process typically processed in less than a week.
- **1-2 weeks**: Access request process typically processed in one to two weeks.
- **2-4 weeks**: Access request process typically processed in two to four weeks.
- **1-2 months**: Access request process typically processed in one to two months.
- **2-6 months**: Access request process typically processed in two to six months.
- **More than 6 months**: Access request process typically processed in more than six months.
- **Variable**: Access request lead time is variable.
- **Not applicable**: Access request process duration is not applicable.
- **Other**: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose “Other” and indicate the typical timeframe within the description for the dataset. | False | False | ["DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", 'null'] | - - - - -#### jurisdiction - -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. - -| title | guidance | is_list | required | type | -|:-------------|:----------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------| -| Jurisdiction | A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/ | True | False | ["Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]"] | - - - - -#### dataController - -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. - -| title | guidance | is_list | required | type | -|:----------------|:-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| -| Data Controller | - 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.
- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.
- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.
- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.
- Example: NHS England | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * NHS England - - -#### dataProcessor - -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. - -| title | guidance | is_list | required | type | -|:---------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------| -| Data Processor | 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.
- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.
- If the Publisher is also the Data Controller please provide “Not Applicable”.
- Examples: Not Applicable, SAIL | False | False | ["LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * Not Applicable - * SAIL - - -### formatAndStandards - -Section includes technical attributes for language vocabularies, sizes etc. and gives researchers facts about and processing the underlying data in the dataset. - - - - - - -#### vocabularyEncodingScheme - -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 “other” and contact support desk to ask for an addition. Notes: More than one vocabulary may be provided. - -| title | guidance | is_list | required | type | -|:----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Controlled vocabulary | - 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 “other” and contact support desk to ask for an addition.
- Notes: More than one vocabulary may be provided.
- **Local**: Local Coding Standard.
- [**OPCS4**](https://digital.nhs.uk/data-and-information/information-standards/governance/latest-activity/standards-and-collections/dapb0084-opcs-classification-of-interventions-and-procedures/)
- [**READ**](https://digital.nhs.uk/services/terminology-and-classifications/read-codes)
- [**SNOMED CT**](http://www.snomed.org/)
- [**SNOMED RT**](https://confluence.ihtsdotools.org/display/DOCGLOSS/SNOMED+RT)
- [**DM+D**](https://digital.nhs.uk/data-and-information/information-standards/information-standards-and-data-collections-including-extractions/publications-and-notifications/standards-and-collections/scci0052-dictionary-of-medicines-and-devices-dm-d)
- [**NHS National Codes**](https://www.datadictionary.nhs.uk/)
- [**ODS**](https://digital.nhs.uk/services/organisation-data-service)
- [**LOINC**](https://loinc.org/)
- [**ICD10**](https://www.who.int/classifications/icd/icdonlineversions/en/)
- [**ICD10CM**](https://www.cdc.gov/nchs/icd/icd10cm.htm)
- [**ICD10PCS**](https://ec.europa.eu/eip/ageing/standards/healthcare/e-health/icd-10-pcs_en)
- [**ICD9CM**](https://www.cdc.gov/nchs/icd/icd9cm.htm)
- [**ICD9**](https://www.cdc.gov/nchs/icd/icd9.htm)
- [**ICDO3**](https://www.who.int/standards/classifications/other-classifications/international-classification-of-diseases-for-oncology)
- [**AMT**](https://www.digitalhealth.gov.au/healthcare-providers/product-releases)
- [**APC**](https://www.acep.org/administration/reimbursement/reimbursement-faqs/apc-ambulatory-payment-classifications-faq/)
- [**ATC**](https://www.whocc.no/atc_ddd_index/)
- [**CIEL**](https://github.com/OpenConceptLab/ocl_web/wiki/CIEL)
- [**HPO**](https://hpo.jax.org/app/)
- [**CPT4**](https://www.ama-assn.org/practice-management/cpt)
- [**DPD**](https://health-products.canada.ca/dpd-bdpp/index-eng.jsp)
- [**DRG**](https://www.who.int/publications/i/item/WHO-UHC-HGF-Guidance-20.10)
- [**HEMONC**](https://hemonc.org/wiki/Main_Page)
- [**JMDC**](https://www.jmdc.co.jp/en/)
- [**KCD7**](https://forums.ohdsi.org/t/adding-kcd7-code-korean-icd-10-to-the-omop-vocabulary/7576)
- [**MULTUM**](https://www.cerner.com/solutions/drug-database)
- [**NAACCR**](https://www.naaccr.org/)
- [**NDC**](https://www.fda.gov/drugs/drug-approvals-and-databases/national-drug-code-directory)
- [**NDFRT**](https://bioportal.bioontology.org/ontologies/NDFRT)
- [**OXMIS**](https://oxrisk.com/oxmis/)
- [**RXNORM**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)
- [**RXNORM EXTENSION**](https://www.nlm.nih.gov/research/umls/rxnorm/index.html)
- [**SPL**](https://www.fda.gov/industry/fda-resources-data-standards/structured-product-labeling-resources)
- **Other**: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.
- [**NHS Scotland National Codes**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)
- [**NHS Wales National Codes**](http://www.datadictionary.wales.nhs.uk/) | True | True | ["ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']"] | - -Examples: - - * LOCAL - * ICD10 - - -#### conformsTo - -List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, please make that explicit. If you are using a standard that has not been included in the list, please use “other” and contact support desk to ask for an addition. - -| title | guidance | is_list | required | type | -|:----------------------------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Alignment with standardised data models | - List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.
- If the data is only available in a local format, please make that explicit. If you are using a standard that has not been included in the list, please use “other” and contact support desk to ask for an addition.
- [**HL7 FHIR**](https://www.hl7.org/fhir/)
- [**HL7 V2**](https://www.hl7.org/implement/standards/product_section.cfm?section=13)
- [**HL7 CDA**](https://www.hl7.org/implement/standards/product_section.cfm?section=10)
- [**HL7 CCOW**](https://www.hl7.org/implement/standards/product_section.cfm?section=16)
- [**DICOM**](https://www.dicomstandard.org/)
- [**I2B2**](https://www.i2b2.org/)
- [**IHE**](https://www.ihe.net/resources/profiles/)
- [**OMOP**](https://www.ohdsi.org/data-standardization/the-common-data-model/)
- [**openEHR**](https://www.openehr.org/)
- [**Sentinel**](https://www.sentinelinitiative.org/sentinel/data/distributed-database-common-data-model)
- [**PCORnet**](https://pcornet.org/data-driven-common-model/)
- [**CDISC**](https://www.cdisc.org/standards/data-exchange/odm)
- **Local**: In-house developed data model.
- **Other**: Other standardised data model.
- [**NHS Data Dictionary**](https://www.datadictionary.nhs.uk/)
- [**NHS Scotland Data Dictionary**](https://www.ndc.scot.nhs.uk/Data-Dictionary/)
- [**NHS Wales Data Dictionary**](https://www.datadictionary.wales.nhs.uk/) | True | True | ["StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']"] | - -Examples: - - * LOCAL - * NHS DATA DICTIONARY - - -#### language - -This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639. - -| title | guidance | is_list | required | type | -|:---------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Language | https://www.iso.org/iso-639-language-code
- **aa**: Afar
- **ab**: Abkhazian
- **af**: Afrikaans
- **ak**: Akan
- **sq**: Albanian
- **am**: Amharic
- **ar**: Arabic
- **an**: Aragonese
- **hy**: Armenian
- **as**: Assamese
- **av**: Avaric
- **ae**: Avestan
- **ay**: Aymara
- **az**: Azerbaijani
- **ba**: Bashkir
- **bm**: Bambara
- **eu**: Basque
- **be**: Belarusian
- **bn**: Bengali
- **bh**: Bihari languages
- **bi**: Bislama
- **bo**: Tibetan
- **bs**: Bosnian
- **br**: Breton
- **bg**: Bulgarian
- **my**: Burmese
- **ca**: Catalan; Valencian
- **cs**: Czech
- **ch**: Chamorro
- **ce**: Chechen
- **zh**: Chinese
- **cu**: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
- **cv**: Chuvash
- **kw**: Cornish
- **co**: Corsican
- **cr**: Cree
- **cy**: Welsh
- **cs**: Czech
- **da**: Danish
- **de**: German
- **dv**: Divehi; Dhivehi; Maldivian
- **nl**: Dutch; Flemish
- **dz**: Dzongkha
- **el**: Greek, Modern (1453-)
- **en**: English
- **eo**: Esperanto
- **et**: Estonian
- **eu**: Basque
- **ee**: Ewe
- **fo**: Faroese
- **fa**: Persian
- **fj**: Fijian
- **fi**: Finnish
- **fr**: French
- **fy**: Western Frisian
- **ff**: Fulah
- **ka**: Georgian
- **de**: German
- **gd**: Gaelic; Scottish Gaelic
- **ga**: Irish
- **gl**: Galician
- **gv**: Manx
- **el**: Greek, Modern (1453-)
- **gn**: Guarani
- **gu**: Gujarati
- **ht**: Haitian; Haitian Creole
- **ha**: Hausa
- **ho**: Hiri Motu
- **hr**: Croatian
- **hu**: Hungarian
- **hy**: Armenian
- **ig**: Igbo
- **is**: Icelandic
- **io**: Ido
- **ii**: Sichuan Yi; Nuosu
- **iu**: Inuktitut
- **ie**: Interlingue; Occidental
- **ia**: Interlingua (International Auxiliary Language Association)
- **id**: Indonesian
- **ik**: Inupiaq
- **is**: Icelandic
- **it**: Italian
- **jv**: Javanese
- **ja**: Japanese
- **kl**: Kalaallisut; Greenlandic
- **kn**: Kannada
- **ks**: Kashmiri
- **ka**: Georgian
- **kr**: Kanuri
- **kk**: Kazakh
- **km**: Central Khmer
- **ki**: Kikuyu; Gikuyu
- **rw**: Kinyarwanda
- **ky**: Kirghiz; Kyrgyz
- **kv**: Komi
- **kg**: Kongo
- **ko**: Korean
- **kj**: Kuanyama; Kwanyama
- **ku**: Kurdish
- **lo**: Lao
- **la**: Latin
- **lv**: Latvian
- **li**: Limburgan; Limburger; limburgish
- **ln**: Lingala
- **lt**: Lithuanian
- **lb**: Luxembourgish; Letzeburgesch
- **lu**: Luba-Katanga
- **lg**: Ganda
- **mk**: Macedonian
- **mh**: Marshallese
- **ml**: Malayalam
- **mi**: Maori
- **mr**: Marathi
- **ms**: Malay
- **mk**: Macedonian
- **mg**: Malagasy
- **mt**: Maltese
- **mn**: Mongolian
- **mi**: Maori
- **ms**: Malay
- **my**: Burmese
- **na**: Nauru
- **nv**: Navajo; Navaho
- **nr**: Ndebele, South; South Ndebele
- **nd**: Ndebele, North; North Ndebele
- **ng**: Ndonga
- **ne**: Nepali
- **nl**: Dutch; Flemish
- **nn**: Norwegian Nynorsk; Nynorsk, Norwegian
- **nb**: Bokmål, Norwegian; Norwegian Bokmål
- **no**: Norwegian
- **ny**: Chichewa; Chewa; Nyanja
- **oc**: Occitan (post 1500)
- **oj**: Ojibwa
- **or**: Oriya
- **om**: Oromo
- **os**: Ossetian; Ossetic
- **pa**: Panjabi; Punjabi
- **fa**: Persian
- **pi**: Pali
- **pl**: Polish
- **pt**: Portuguese
- **ps**: Pushto; Pashto
- **qu**: Quechua
- **rm**: Romansh
- **ro**: Romanian; Moldavian; Moldovan
- **rn**: Rundi
- **ru**: Russian
- **sg**: Sango
- **sa**: Sanskrit
- **si**: Sinhala; Sinhalese
- **sk**: Slovak
- **sl**: Slovenian
- **se**: Northern Sami
- **sm**: Samoan
- **sn**: Shona
- **sd**: Sindhi
- **so**: Somali
- **st**: Sotho, Southern
- **es**: Spanish; Castilian
- **sq**: Albanian
- **sc**: Sardinian
- **sr**: Serbian
- **ss**: Swati
- **su**: Sundanese
- **sw**: Swahili
- **sv**: Swedish
- **ty**: Tahitian
- **ta**: Tamil
- **tt**: Tatar
- **te**: Telugu
- **tg**: Tajik
- **tl**: Tagalog
- **th**: Thai
- **bo**: Tibetan
- **ti**: Tigrinya
- **to**: Tonga (Tonga Islands)
- **tn**: Tswana
- **ts**: Tsonga
- **tk**: Turkmen
- **tr**: Turkish
- **tw**: Twi
- **ug**: Uighur; Uyghur
- **uk**: Ukrainian
- **ur**: Urdu
- **uz**: Uzbek
- **ve**: Venda
- **vi**: Vietnamese
- **vo**: Volapük
- **cy**: Welsh
- **wa**: Walloon
- **wo**: Wolof
- **xh**: Xhosa
- **yi**: Yiddish
- **yo**: Yoruba
- **za**: Zhuang; Chuang
- **zh**: Chinese
- **zu**: Zulu | True | True | ["LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']"] | - -Examples: - - * en - - -#### format - -If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format. - -| title | guidance | is_list | required | type | -|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------| -| Format | - If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, .
- Please **enter one format type at a time** and click **Add New Field** to add further keywords.
- Note: If your file format is not included in the current list of formats, please indicate other.
- **Example**: text/tab-separated-values, application/sql, text/csv, image/diacom-rle | True | True | ["Format[{'minLength': 1, 'type': 'string'}]"] | - -Examples: - - * text/tab-separated-values - * application/sql - * text/csv - * image/diacom-rle - - -## enrichmentAndLinkage - -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. - - - - - - -### derivedFrom - -If applicable, please provide DOIs or links to datasets from which data in this dataset has been derived or calculated from. - - - - - - -#### pid - -None - -| title | guidance | is_list | required | type | -|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### title - -None - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### url - -None - -| title | guidance | is_list | required | type | -|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -### isPartOf - -This relationship indicates that the dataset is a component or subset of a broader collection of related datasets. For example, clinical trial data for a specific drug may be part of a larger database of pharmaceutical research data. Complete only if the dataset is part of a group or family of datasets i.e. Hospital Episode Statistics has several constituents. If your dataset is not part of a group, please enter “NOT APPLICABLE” **Example**: Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS). - - - -Examples: - - * Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS) - - -#### pid - -None - -| title | guidance | is_list | required | type | -|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### title - -None - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### url - -None - -| title | guidance | is_list | required | type | -|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -### linkableDatasets - -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. - - - - - - -#### pid - -None - -| title | guidance | is_list | required | type | -|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### title - -None - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### url - -None - -| title | guidance | is_list | required | type | -|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -### similarToDatasets - -Datasets that are similar to each other in some way, collect similar patients, regional equivalent etc. - - - - - - -#### pid - -None - -| title | guidance | is_list | required | type | -|:-----------------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Persistent identifier of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### title - -None - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Title of a dataset | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -#### url - -None - -| title | guidance | is_list | required | type | -|:-----------------|:-----------|:----------|:-----------|:----------------------------------------------------------------------------------------------------| -| Url of a dataset | | False | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -### investigations - -Please provide link to any active projects that are using the dataset. - -| title | guidance | is_list | required | type | -|:---------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Investigations | - Please provide the website address(es) which document information related to active projects utilising the dataset.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each website and press enter to add it to the list.
- **Example**: | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | - - - - -### tools - -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/ - -| title | guidance | is_list | required | type | -|:--------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Tools | - 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/ | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | - - - - -### publicationAboutDataset - -DOIs for publications which describe the dataset. - -| title | guidance | is_list | required | type | -|:------------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| -| Publication about the dataset | - Please provide the DOIs for publications which describe the dataset.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each citation and press enter to add it to the list.
- **Example**: <10.1093/ije/dyab028> | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * 10.1093/ije/dyab028 - - -### publicationUsingDataset - -DOIs for publications which use the dataset for analysis. - -| title | guidance | is_list | required | type | -|:------------------------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| -| Publication using the dataset | - Please provide the DOIs for publications which have used the dataset in their analysis.
- Please split your existing list of citations into separate fields.
- To add multiple entries, type in each citation and press enter to add it to the list.
- **Example**: <10.1001/jamapediatrics.2016.3633> | True | False | ["Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]"] | - -Examples: - - * 10.1001/jamapediatrics.2016.3633 - - -## observations - -This section provides an overview of observations of your dataset linked to specific points in time. Multiple observations about the dataset are encouraged to be provided, including multiple observations of the same property at different timepoints. At least one observation is required. - - - - - - -### observedNode - -Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality. - -| title | guidance | is_list | required | type | -|:-----------------------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------| -| Dataset volume measure | - **Persons**: Unique persons recorded in the dataset
- **Events**: Unique events such as procedures and prescriptions within the dataset
-**Findings**: Unique findings included in the dataset such as diagnoses'
-**Number of scans per modality**: Unique scans for a specified imaging method modality (e.g. 12 x-rays) | False | True | ["StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']"] | - -Examples: - - * Persons - - -### measuredValue - -An integer value size of the measured property, such as ‘1000’ for 1000 people in the study or ‘87’ for 87 MRI scans in the dataset. - -| title | guidance | is_list | required | type | -|:---------------|:-------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------| -| Measured value | An integer value size of the measured property, such as ‘1000’ for 1000 people in the study or ‘87’ for 87 MRI scans in the dataset. | False | True | ['int'] | - -Examples: - - * 1000 - - -### disambiguatingDescription - -If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters. - -| title | guidance | is_list | required | type | -|:---------------------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------| -| Disambiguating description | If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. | False | False | ["AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - - - - -### observationDate - -Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000. - -| title | guidance | is_list | required | type | -|:-----------------|:----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:---------------------| -| Observation date | Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000. | False | True | ['date', 'datetime'] | - -Examples: - - * 2024-10-24 - - -### measuredProperty - -Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term. - -| title | guidance | is_list | required | type | -|:------------------|:--------------------------------------------------------|:----------|:-----------|:-------------------------| -| Measured property | Descriptive term for the observation property measured. | False | True | ['MeasuredProperty[{}]'] | - -Examples: - - * Count - - -## structuralMetadata - -Descriptions of all tables and data elements that can be included in the dataset. - - - - - - -### tables - -Tables in the dataset - - - - - - -#### name - -The name of a table in a dataset. - -| title | guidance | is_list | required | type | -|:-----------|:-----------|:----------|:-----------|:----------------| -| Table name | | False | False | ['str', 'null'] | - - - - -#### description - -A description of a table in a dataset. - -| title | guidance | is_list | required | type | -|:------------------|:-----------|:----------|:-----------|:----------------| -| Table description | | False | False | ['str', 'null'] | - - - - -#### size - -Number of Complete Entries. - -| title | guidance | is_list | required | type | -|:-----------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| -| Table size | Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete. | False | False | ['int', 'null'] | - - - - -#### columns - -A list of columns contained within a table in a dataset. - - - - - - -##### name - -The name of a column in a table. - -| title | guidance | is_list | required | type | -|:------------|:-----------|:----------|:-----------|:-------------| -| Column name | | False | True | ['Name[{}]'] | - - - - -##### dataType - -The data type of values in the column. - -| title | guidance | is_list | required | type | -|:----------|:-----------|:----------|:-----------|:--------| -| Data type | | False | True | ['str'] | - - - - -##### description - -A description of a column in a table. - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:----------------| -| Column description | | False | False | ['str', 'null'] | - - - - -##### sensitive - -A True or False value, indicating if the field is sensitive or not. - -| title | guidance | is_list | required | type | -|:----------|:-----------|:----------|:-----------|:---------| -| Sensitive | | False | True | ['bool'] | - - - - -##### values - -Values in a dataset. - - - - - - -###### name - -Unique value in a column. - -| title | guidance | is_list | required | type | -|:-----------|:-----------|:----------|:-----------|:-------------| -| Value name | | False | True | ['Name[{}]'] | - - - - -###### description - -A description of a unique value in a column. - -| title | guidance | is_list | required | type | -|:------------------|:-----------|:----------|:-----------|:----------------| -| Value description | | False | False | ['str', 'null'] | - - - - -###### frequency - -The frequency of occurrance of a value in a column. - -| title | guidance | is_list | required | type | -|:----------------|:-----------|:----------|:-----------|:----------------| -| Value frequency | | False | False | ['int', 'null'] | - - - - -### syntheticDataWebLink - -Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.
- Please split your existing list of citations into separate fields.
- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.
- **Example**: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/ - -| title | guidance | is_list | required | type | -|:-------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Synthetic data web links | | True | False | ["Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]"] | - - - - -## demographicFrequency - -The statistical characteristics of a population or group within the dataset. - - - - - - -### age - -Array of bins, based off the UK Office for National Statistics (ONS) groupings, and their corresponding counts as represented within the dataset. - - - - - - -#### bin - -None - -| title | guidance | is_list | required | type | -|:-------------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Age grouping | | False | True | ["AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']"] | - -Examples: - - * 30-34 years - - -#### count - -None - -| title | guidance | is_list | required | type | -|:----------|:-----------|:----------|:-----------|:--------| -| Age count | | False | True | ['int'] | - -Examples: - - * 1000 - - -### ethnicity - -Array of bins, based off the UK Office for National Statistics (ONS) census groupings, and their corresponding counts as represented within the dataset. - - - - - - -#### bin - -None - -| title | guidance | is_list | required | type | -|:-------------------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Ethnicity grouping | | False | True | ["EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']"] | - -Examples: - - * Black or Black British - Any other Black background - - -#### count - -None - -| title | guidance | is_list | required | type | -|:----------------|:-----------|:----------|:-----------|:--------| -| Ethnicity count | | False | True | ['int'] | - -Examples: - - * 1000 - - -### disease - -Array of health conditions or diseases (based around ICD-10, SNOMED CT and MeSH disease vocabularies) and their corresponding counts as represented within the dataset. - - - - - - -#### diseaseCode - -None - -| title | guidance | is_list | required | type | -|:-------------|:-----------|:----------|:-----------|:---------------| -| Disease code | | False | True | ['str', 'int'] | - -Examples: - - * J45 - - -#### diseaseCodeVocabulary - -None - -| title | guidance | is_list | required | type | -|:------------------------|:-----------|:----------|:-----------|:------------------------------------------------| -| Disease code vocabulary | | False | True | ["DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']"] | - -Examples: - - * ICD10 - - -#### count - -None - -| title | guidance | is_list | required | type | -|:--------------|:-----------|:----------|:-----------|:--------| -| Disease count | | False | True | ['int'] | - -Examples: - - * 1000 - - -## omics - -Omics - - - - - - -### assay - -The specific 'omics assay that generated the dataset. - -| title | guidance | is_list | required | type | -|:------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Omics assay | The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry. | False | False | ["Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", 'null'] | - - - - -### platform - -The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. - -| title | guidance | is_list | required | type | -|:---------------|:------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-------------------------------------------------------------------------------------------------------------------------| -| Omics Platform | The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf. | False | False | ["Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", 'null'] | - - - - -## icons - -Calculated categorization icons added during export. - -| title | guidance | is_list | required | type | -|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| Icons | | False | False | ["Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", 'null'] | - - - - -## project - -None - - - - - - -### projectName - -May or may not be different to the Dataset Title - -| title | guidance | is_list | required | type | -|:--------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Project Title | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - - - - -### leadResearcher - - - -| title | guidance | is_list | required | type | -|:----------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Lead Researcher | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - -Examples: - - * Dr Smith - - -### leadResearchInstitute - - - -| title | guidance | is_list | required | type | -|:------------------------|:-----------|:----------|:-----------|:--------------------------------------------------------------------------------------------| -| Lead Research Institute | | False | False | ["OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", 'null'] | - -Examples: - - * Sussex University - - -### grantNumbers - -List of grant numbers separated by a line break - -| title | guidance | is_list | required | type | -|:----------------|:--------------------------------------------------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------------------| -| Grant number(s) | Normally specified on the grant acceptance letter | False | False | ["LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\
]+)', 'type': 'string'}, {'type': 'null'}]}]", 'null'] | - -Examples: - - * A354t - * ropguadg - - -### projectStartDate - -Starting date of project grant. - -| title | guidance | is_list | required | type | -|:-------------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| -| Project Start Date | Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection | False | False | ['date', 'datetime', 'null'] | - - - - -### projectEndDate - -Current end date of project grant. - -| title | guidance | is_list | required | type | -|:-----------------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:-----------------------------| -| Project End Date | Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection | False | False | ['date', 'datetime', 'null'] | - - - - -### projectScope - -data and biospecimens expected to result from the grant. - -| title | guidance | is_list | required | type | -|:--------------|:---------------------------------------------------------------------------------------------------------------------|:----------|:-----------|:----------------| -| Project Scope | Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered | False | False | ['str', 'null'] | - -Examples: - - * Longitudinal genomic data including somatic mutations - - -## datasetFilters - -Categorization tags regarding cancer type, data type, and access. - -| title | guidance | is_list | required | type | -|:--------|:-----------|:----------|:-----------|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| | | False | False | ["DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", 'null'] | - - - - -## erd - -Visual representation of data table relationships. - - - - - - -### image - -An image file. - -| title | guidance | is_list | required | type | -|:--------|:---------------------------------------------------------|:----------|:-----------|:----------------| -| Image | Upload an image file (PNG, JPG, SVG) Max file size: 5MB. | False | False | ['str', 'null'] | - - - - -### description - -None - -| title | guidance | is_list | required | type | -|:--------|:-----------|:----------|:-----------|:---------------------------------------------------------------------------------------------------------------| -| | | False | False | ["Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", 'null'] | diff --git a/docs/HDRUK/4.1.0.structure.json b/docs/HDRUK/4.1.0.structure.json deleted file mode 100644 index 8167b3db..00000000 --- a/docs/HDRUK/4.1.0.structure.json +++ /dev/null @@ -1,2096 +0,0 @@ -[ - { - "name": "identifier", - "required": true, - "title": "Dataset identifier", - "description": "System dataset identifier.", - "guidance": "N/A", - "examples": [ - "226fb3f1-4471-400a-8c39-2b66d46a39b6", - "https://web.www.healthdatagateway.org/dataset/226fb3f1-4471-400a-8c39-2b66d46a39b6" - ], - "type": [ - "Uuidv4[{'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}$', 'type': 'string'}]", - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "version", - "required": true, - "title": "Dataset Version", - "description": "Dataset metadata version.", - "guidance": "Dataset metadata version should follow standard SEMVER naming conventions (https://semver.org). For example: 1.1.0 major.minor.patch.Major: Significant/breaking changes.Minor: New features and bug fixes.Patch: Minor fixes without new features.", - "examples": [ - "1.1.0" - ], - "type": [ - "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "revisions", - "required": true, - "title": "Metadata Version Revisions", - "description": "A list of persistent identifiers and version numbers for previous versions of metadata for this dataset", - "guidance": "", - "examples": null, - "type": [ - "Revision" - ], - "is_list": true, - "is_optional": false, - "subItems": [ - { - "name": "version", - "required": true, - "title": "revision version", - "description": "Version number used for previous version of this dataset", - "guidance": "", - "examples": [ - "6.0.0" - ], - "type": [ - "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "url", - "required": false, - "title": "revision url", - "description": "Some url with a reference to the record of a previous version of this dataset", - "guidance": "", - "examples": [ - "https://api.service.nhs.uk/health-research-data-catalogue/datasetrevisions/841f7da2-b018-41f6-b4ae-2e0aadab6561" - ], - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "issued", - "required": true, - "title": "Metadata Issued Datetime", - "description": "Datetime stamp of when this metadata version was initially issued", - "guidance": "", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "type": [ - "datetime" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "modified", - "required": true, - "title": "Last Modified Datetime", - "description": "Datetime stamp of when this metadata was last modified", - "guidance": "", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "type": [ - "datetime" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "summary", - "required": true, - "title": "Summary", - "description": "Summary of metadata describing key pieces of information.", - "guidance": "", - "examples": null, - "type": [ - "Summary" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "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. Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.", - "guidance": "The title 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.- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.- Good titles should summarise the content of the dataset and if relevant, the region the dataset covers.- Example: North West London COVID-19 Patient Level Situation Report", - "examples": [ - "North West London COVID-19 Patient Level Situation Report", - "Scottish Morbidity Record (SMR)" - ], - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "funders", - "required": true, - "title": "Funded by", - "description": "List of Funders separated by a line break", - "guidance": "Put each funder on a new line", - "examples": [ - "CRUK", - "University of Sussex" - ], - "type": [ - "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "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.", - "guidance": "The abstract should 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.- Effective abstracts should avoid long sentences and abbreviations where possible.- Note: Researchers will view Titles and the first line of Abstracts (list view) when searching for datasets and choosing whether to explore their content further.- Abstracts should be different from the full description for a dataset.- Example: 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.", - "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." - ], - "type": [ - "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "dataCustodian", - "required": true, - "title": "Dataset Custodian", - "description": "This is the organisation responsible for running or supporting the data access request process, as well as enquiries about a dataset. 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.", - "guidance": "", - "examples": null, - "type": [ - "Organisation" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "identifier", - "required": true, - "title": "identifier", - "description": "Please provide a Research Organization Registry (ROR) identifier (see https://ror.org/) for your organisation.", - "guidance": "Example: https://ror.org/053fq8t95If your organisation does not have a ROR identifier please use the \u201csuggest and institute\u201d function here: https://docs.google.com/forms/d/e/1FAIpQLSdJYaMTCwS7muuTa-B_CnAtCSkKzt19lkirAKG4u7umH9Nosg/viewform", - "examples": [ - "30f16703-28bc-4f45-9ce5-625d2d3db27d" - ], - "type": [ - "str", - "int" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "name", - "required": true, - "title": "Name of Data Custodian", - "description": "The organisation responsible for running or supporting the data access request process, as well as publishing and maintaining the metadata.", - "guidance": "In most this will be the same as the Team you have on the Gateway. However, in some cases this will be different. For example, Tissue Directory are a Team on the Gateway but coordinate activities across a number of Data Providers such as Cambridge Blood and Stem Cell Biobank.", - "examples": [ - "Health Data Research UK" - ], - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "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. If a logo is not submitted this will default to the logo for the team submitting the metadata.", - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "description", - "required": false, - "title": "Organisation Description", - "description": "Please provide a URL that describes the organisation. If a description is not provided this will default to the description of the team submitting the metadata.", - "guidance": "", - "examples": null, - "type": [ - "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "contactPoint", - "required": true, - "title": "contact point", - "description": "Organisation contact point(s) which will be used for receiving queries from HDR, and enquiries and data access requests from Researchers. If a contact point is not provided this will default to the contact point for the team submitting the metadata.", - "guidance": "", - "examples": [ - "test@test.co.uk" - ], - "type": [ - "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", - "typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "memberOf", - "required": false, - "title": "Organisation Membership", - "description": "Please indicate if the organisation is an Alliance Member or a Hub. If this field is not submitted this will default to the membership for the team submitting the metadata.", - "guidance": "", - "examples": null, - "type": [ - "MemberOfV2['Hub','Alliance','Other','NCS']", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - }, - { - "name": "populationSize", - "required": true, - "title": "Dataset population size", - "description": "Input the number of people captured within the dataset.", - "guidance": "This number informs a filter for Researchers to differentiate dataset search results based on the number of people in the dataset, and does not pull from the Observations fields. The filter also allows for Researchers to search datasets which have no population size reported, but will not pull any population size captured in the Observations section.", - "examples": [ - 1000 - ], - "type": [ - "int" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "keywords", - "required": false, - "title": "Keywords", - "description": "Please provide a list of relevant and specific keywords that can improve the search engine optimisation (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.", - "guidance": "Please provide relevant and specific keywords that can improve the search engine optimization of your dataset.- Please enter one keyword at a time and click Add New Field to add further keywords.- Text from the title is automatically included in the search, there is no need to include this in the keywords.- Include words that researcher may include in their searches.", - "examples": [ - "Outpatient Care", - "Socioeconomic Deprivation", - "Infant Morbidity", - "Learning disability", - "Primary Care Prescription", - "Accident and Emergency Admissions" - ], - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - }, - { - "name": "doiName", - "required": false, - "title": "Digital Object Identifier (DOI) for dataset", - "description": "DOI associated to this dataset. Find out more about DOIs here: https://www.doi.org/the-identifier/what-is-a-doi/", - "guidance": "Please note: This is not the DOI of the publication(s) associated with the dataset.- All HDR UK registered datasets should either have a (DOI) or be working towards obtaining one.- If a DOI is available, please provide the DOI.- What happens if I do not have a DOI?: Contact your academic organisation to find out if there is an existing relationship with a DOI provider. If that is not available, sites such as figshare offer free services to mint a DOI for your dataset. Subsequent versions of the Metadata Exchange will provide a DOI minting service.", - "examples": [ - "10.1093/ije/dyx196" - ], - "type": [ - "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "contactPoint", - "required": true, - "title": "Contact point", - "description": "Please provide a valid email address that can be used to coordinate data access requests.", - "guidance": "Organisations are expected to provide a dedicated email address associated with the data access request process. If no contact point is provided in this field, this field will be defaulted to the teams support email provided in the teams setting.Note: An employee's email address can only be provided on a temporary basis and if one is provided, you must obtain explicit consent for this purpose.", - "examples": [ - "gateway@hdruk.ac.uk" - ], - "type": [ - "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "datasetAliases", - "required": false, - "title": "Dataset & BioSample alias", - "description": "Dataset & BioSample alias or alternate names.", - "guidance": "Alternate name, acronym or other identifier for the Dataset and/or BioSamples.", - "examples": null, - "type": [ - "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", - "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "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.", - "guidance": "", - "examples": null, - "type": [ - "Documentation", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "description", - "required": true, - "title": "Description", - "description": "A free-text description of the dataset.A URL can also be provided as the description of the dataset.Gateway Feature: Keywords and text may be extracted out of the description and indexed for search.", - "guidance": "An HTML account of the data that provides context and scope of the data, limited to 10000 characters, and/or a resolvable URL that describes the dataset.- Additional information can be recorded and included using the Associated media field.", - "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." - ], - "type": [ - "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "associatedMedia", - "required": false, - "title": "Associated media", - "description": "Please provide any media associated with the Gateway Organisation using a valid URL 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.", - "guidance": "Please provide any media associated with the Gateway Organisation using a valid URL 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.- Note: media assets should be hosted by the organisation.Example: This could be a link to a PDF Document that describes methodology or further detail about the datasets, or a graph or chart that provides further context about the dataset.- If you are providing multiple links for associated media, we recommend that you separate these with a comma.", - "examples": [ - "PDF document that describes study protocol - https://link.to/document.pdf" - ], - "type": [ - "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", - "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "inPipeline", - "required": false, - "title": "Dataset pipeline status", - "description": "Indicate whether this dataset is currently available for Researchers to request access.", - "guidance": "If a dataset is being prepared for sharing but not yet ready and available for researchers to apply for access, select 'Not available'. If Researchers can currently apply for access to the dataset, select 'Available'.", - "examples": null, - "type": [ - "Pipeline['Available','Not available']", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - }, - { - "name": "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.", - "guidance": "", - "examples": null, - "type": [ - "Coverage", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "spatial", - "required": true, - "title": "Geographic coverage", - "description": "The geographical area covered by the dataset. It is recommended that links are to entries in one of the recommended standards:- For locations in the UK: ONS standards- For locations in other countries: ISO 3166-1 & ISO 3166-2", - "guidance": "The geographical area covered by the dataset.- Please provide a valid location.- For locations in the UK, this location should conform to ONS standards.- For locations in other countries we use ISO 3166-1 & ISO 3166-2.", - "examples": [ - "United Kingdom", - "https://www.geonames.org/2635167/united-kingdom-of-great-britain-and-northern-ireland.html" - ], - "type": [ - "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}]", - "typing.List[hdr_schemata.definitions.HDRUK.Url.Url]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "typicalAgeRangeMin", - "required": false, - "title": "Minimum age range", - "description": "Please indicate the minimum age in years of participants in the dataset as a whole number (integer).", - "guidance": "Please indicate the minimum of the age range in whole years of participants in the dataset.- What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?: In that case, please enter 0.", - "examples": [ - 18 - ], - "type": [ - "int", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "typicalAgeRangeMax", - "required": false, - "title": "Maximum age range", - "description": "Please indicate the maximum age in years of participants in the dataset as a whole number (integer).", - "guidance": "Please indicate the maximum of the age range in whole years of participants in the dataset.- What if my dataset has participants of all \u201cAll Ages\u201d or \u201cAny Ages\u201d?: In that case, please enter 150.", - "examples": [ - 90 - ], - "type": [ - "int", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "datasetCompleteness", - "required": false, - "title": "Dataset coverage/completeness/quality", - "description": "The URL where a Researcher can learn more about the completeness of the dataset.", - "guidance": "If your organisation has a publicly available site which contains information on the completeness of a dataset, add that URL here.Example: https://bhfdatasciencecentre.org/dashboard/", - "examples": [ - "https://bhfdatasciencecentre.org/dashboard/" - ], - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "materialType", - "required": false, - "title": "Biological sample availability", - "description": "The type of biospecimen saved from a biological entity.", - "guidance": "Indicate the specimen type, can be several values from the list below:- 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 samples are not yet available, please provide \u201cAvailability to be confirmed\u201d.- If samples are not available, then please provide \u201cNot available\u201d.- Not available: Samples associated with the dataset are not available.- Bone marrow: Bone marrow samples associated with the data are available.- Cancer cell lines: Cancer cell line samples associated with the data are available.- CDNA/MRNA: CDNA/MRNA samples associated with the data are available.- Core biopsy: Core biopsy samples associated with the data are available.- DNA: DNA samples associated with the data are available.- Entire body organ: Entire body organ associated with the data are available.- Faeces: Faeces samples associated with the data are available.- Immortalized cell lines: Immortalized cell line samples associated with the data are available.- Isolated pathogen: Isolated pathogen associated with the data are available.- MicroRNA: MicroRNA samples associated with the data are available.- Peripheral blood cells: Peripheral blood cell samples associated with the data are available.- Plasma: Plasma samples associated with the data are available.- PM Tissue: PM Tissue samples associated with the data are available.- Primary cells: Primary cell samples associated with the data are available.- RNA: RNA samples associated with the data are available.- Saliva: Saliva samples associated with the data are available.- Serum: Serum samples associated with the data are available.- Swabs: Swab samples associated with the data are available.- Tissue: Tissue samples associated with the data are available.- Urine: Urine samples associated with the data are available.- Whole blood: Whole blood samples associated with the data are available.- Availability to be confirmed: Availability of samples is currently being confirmed.- Other: Other types of sample available.", - "examples": null, - "type": [ - "MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "followUp", - "required": false, - "title": "Follow-up", - "description": "If known, what is the typical time span that a patient appears in the dataset (follow up period). In a prospective cohort study, after baseline information is collected, participants are followed \u201clongitudinally\u201d i.e. new information is collected about them for a period of time afterward. This is known as the \u201cfollow up period\u201d. What is the typical time span of follow up, e.g. 1 year, 5 years? If there are multiple cohorts in the dataset with varying follow up periods, please provide the longest follow up period.", - "guidance": "If known, please indicate the typical time span that a patient appears in the dataset (follow up period).-0 - 6 MONTHS: Data typically available for a patient over a 0-6 month period.-6 - 12 MONTHS: Data typically available for a patient over a 6-12 month period.-1 - 10 YEARS: Data typically available for a patient over a 1-10 year period.-> 10 YEARS: Data typically available for a patient for over a 10 year period.-CONTINUOUS: Data for patients is being regularly added to and updated.-UNKNOWN: Timespan is Unknown.-OTHER: Data available for a patient over another time period.", - "examples": null, - "type": [ - "FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null]", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "pathway", - "required": false, - "title": "Patient pathway description", - "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.", - "guidance": "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, - "type": [ - "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "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.", - "guidance": "", - "examples": null, - "type": [ - "Provenance", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "origin", - "required": false, - "title": "Origin Coverage", - "description": "Coverage by origin (geographical and situations).", - "guidance": "", - "examples": null, - "type": [ - "Origin", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "purpose", - "required": false, - "title": "Purpose of dataset collection", - "description": "Please indicate the purpose(s) that the dataset was collected.", - "guidance": "Research cohort: Data collected for a defined group of people.- Study: Data collected for a specific research study.- Disease registry: Data collected as part of a disease registry.- Trial: Data collected for as part of a clinical trial.- Care: Data collected as part of routine clinical care.- Audit: Data collected as part of an audit programme.- Administrative: Data collected for administrative and management information purposes.- Financial: Data collected either for payments or for billing.- Statutory: Data collected in compliance with statutory requirements.- Other: Data collected for other purpose.", - "examples": null, - "type": [ - "PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "datasetType", - "required": true, - "title": "Dataset type", - "description": "The topic areas to which the dataset content relates.", - "guidance": "Types include those listed below. Datasets can have more than one type associated.- Health and disease: Includes any data related to mental health, cardiovascular, cancer, rare diseases, metabolic and endocrine, neurological, reproductive, maternity and neonatology, respiratory, immunity, musculoskeletal, vision, renal and urogenital, oral and gastrointestinal, cognitive function or hearing.- Treatments/Interventions: Includes any data related to treatment or interventions related to vaccines or which are preventative or therapeutic in nature.- Measurements/Tests: Includes any data related to laboratory or other diagnostics.- Imaging types: Includes any data related to CT, MRI, PET, x-ray, ultrasound or pathology imaging.- Imaging area of the body: Indicates whether the dataset relates to head, chest, arm abdomen or leg imaging.- Omics: Includes any data related to proteomics, transcriptomics, epigenomics, metabolomics, multiomics, metagenomics or genomics.- Socioeconomic: Includes any data related to education, crime and justice, ethnicity, housing, labour, ageing, economics, marital status, social support, deprivation, religion, occupation, finances or family circumstances.- Lifestyle: Includes any data related to smoking, physical activity, dietary habits or alcohol.- Registry: Includes any data related to disease registries for research, national disease registries, audits, or birth and deaths records.- Environment and energy: Includes any data related to the monitoring or study of environmental or energy factors or events.- Information and communication: Includes any data related to the study or application of information and communication.- Politics: Includes any data related to political views, activities, voting, etc.", - "examples": [ - "Health and disease" - ], - "type": [ - "typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]" - ], - "is_list": true, - "is_optional": false, - "subItems": [] - }, - { - "name": "source", - "required": false, - "title": "Source of data extraction", - "description": "Please indicate the source of the data extraction.", - "guidance": "EPR: Data Extracted from Electronic Patient Record.- Electronic survey: Data has been extracted from electronic surveys.- LIMS: Data has been extracted from a laboratory information management system.- Paper-based: Data has been extracted from paper forms.- Free text NLP: Data has been extracted from unstructured freetext using natural language processing.- Machine generated: Data has been machine generated i.e. imaging.- Other: Data has been extracted by other means.", - "examples": null, - "type": [ - "SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "collectionSource", - "required": false, - "title": "Collection source setting", - "description": "Please indicate the setting(s) where data was collected. Multiple settings may be provided.", - "guidance": "Cohort, study, trial: Cohort, study or trial data collection as part of protocol.- Clinic: Specific clinic such as antenatal clinic.- Primary care - Referrals: General medical practitioner referral to another service.- Primary care - Clinic: General medical practitioner practice.- Primary care - Out of hours: General medical practitioner care or advice outside of standard hours.- Secondary care - Accident and emergency: Accident emergency department.- Secondary care - Outpatients: Outpatient care.- Secondary care - In-patients: In-patient care.- Secondary care - Ambulance: Care provided in association with ambulance service.- Secondary care - ICU: Intensive care units, also referred to as critical care units (CCUs) or intensive therapy units (ITUs).- Prescribing - Community pharmacy: Pharmacy based in the community.- Prescribing - Community pharmacy: Pharmacy based in a hospital setting.- Patient report outcome: Reported by patient.- Wearables: Data collection devices worn on the body.- Local authority: Local authority or entity associated with a local authority.- National government: National government or entity associated with the national government.- Community: Community settings.- Services: Services such as drug misuse or blood transfusion.- Home: Home setting.- Private: Private medical clinic.- Social care - Health care at home: service provided in the home or residence of a person.- Social care - Other social data: service provided in a setting outside of the person's home or residence.- Census: collected as part of census.- Other: Other setting.", - "examples": null, - "type": [ - "SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "imageContrast", - "required": false, - "title": "Image contrast", - "description": "Indicate whether usage of imaging contrast is captured within the dataset.", - "guidance": "If any contrast media or contrast agents were used in creating the images within the dataset and the contrast is known, mark 'Yes'. If this information is not known or not captured, indicate 'Not stated'. If there was no contrast used in the images, mark 'No'.", - "examples": null, - "type": [ - "Ternary['Yes','No','Not stated']", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - }, - { - "name": "temporal", - "required": true, - "title": "Temporal Coverage", - "description": "Dates and other temporal coverage information.", - "guidance": "", - "examples": null, - "type": [ - "Temporal" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "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/", - "guidance": "Please indicate the frequency of publishing.- If a dataset is published regularly please choose a publishing 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 indicate 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/. Options:- Static: Dataset published once.- Irregular: Dataset published at uneven intervals.- Continuous: Dataset published without interruption.- Biennial: Dataset published every two years.- Annual: Dataset published occurs once a year.- Biannual: Dataset published twice a year.- Quarterly: Dataset published every three months.- Bimonthly: Dataset published every two months.- Monthly: Dataset published once a month.- Biweekly: Dataset published every two weeks.- Weekly: Dataset published once a week.- Twice weekly: Dataset published twice a week.- Daily: Dataset published once a day.- Other: Dataset published using other interval.", - "examples": [ - "Continuous" - ], - "type": [ - "PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "distributionReleaseDate", - "required": false, - "title": "Distribution 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.", - "guidance": "Please indicate the frequency the dataset is published.- If a dataset is published regularly please choose a publishing 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 indicate 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": [ - "2024-10-24T00:00:00.000Z" - ], - "type": [ - "date", - "datetime", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "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.", - "guidance": "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": [ - "2024-10-24T00:00:00.000Z" - ], - "type": [ - "date", - "datetime" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "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.", - "guidance": "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 leave blank.- If there are multiple cohorts in the dataset with varying end dates, please provide the latest date.", - "examples": [ - "2024-10-24T00:00:00.000Z" - ], - "type": [ - "date", - "datetime", - "EndDateEnum['CONTINUOUS',null]", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "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.", - "guidance": "Please indicate the typical time-lag between an event and the data for that event appearing in the dataset.- Less than 1 week: Typical time lag of less than a week.- 1-2 weeks: Typical time-lag of one to two weeks.- 2-4 weeks: Typical time-lag of two to four weeks.- 1-2 months: Typical time-lag of one to two months.- 2-6 months: Typical time-lag of two to six months.- 6 months plus: Typical time-lag of more than six months.- Variable: Variable time-lag.- Not applicable: Not Applicable i.e. static dataset.- Other: Other time-lag.", - "examples": [ - "Not applicable" - ], - "type": [ - "TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']" - ], - "is_list": false, - "is_optional": false - } - ] - } - ] - }, - { - "name": "accessibility", - "required": true, - "title": "Accessibility", - "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", - "guidance": "", - "examples": null, - "type": [ - "Accessibility" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "usage", - "required": false, - "title": "Usage", - "description": "This section includes information about how the data can be used and how it is currently being used.", - "guidance": "", - "examples": null, - "type": [ - "Usage", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "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 Data Use Ontology to include a value for NO LINKAGE.", - "guidance": "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.- General research use: This data use limitation indicates that use is allowed for general research use for any research purpose.- Genetic studies only: This data use limitation indicates that use is limited to genetic studies only (i.e., no phenotype-only research).- No general methods research: This data use limitation indicates that use includes methods development research(e.g., development of software or algorithms) only within the bounds of other use limitations.- No restriction: This data use limitation indicates there is no restriction on use.- Research-specific restrictions: This data use limitation indicates that use is limited to studies of a certain research type.- Research use only: This data use limitation indicates that use is limited to research purposes (e.g., does not include its use in clinical care).- No linkage: This data use limitation indicates there is a restriction on linking to any other datasets", - "examples": null, - "type": [ - "DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "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.", - "guidance": "Please indicate if there 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.- Collaboration required: This requirement indicates that the requestor must either agree to join a research consortium or collaborate with the primary study investigator(s).- Ethics approval required: This requirement indicates that the requestor must provide documentation of local institutional review board (IRB)/ ethics review board (ERB) approval.- Geographical restrictions: This requirement indicates that use is limited to within a specific geographic region.- Institution-specific restrictions: This requirement indicates that use is limited to use within an approved institution.- Not for profit use: This requirement indicates that use of the data is limited to not-for-profit organizations and not-for-profit use, non-commercial use.- Project-specific restrictions: This requirement indicates that use is limited to use within an approved project.- Publication moratorium: This requirement indicates that requestor agrees not to publish results of studies until a specific date.- Publication required: This requirement indicates that requestor agrees to make results of studies using the data available to the larger scientific community.- Return to database or resource: This requirement indicates that the requestor must return derived/enriched data to the database/resource.- Time limit on use: This requirement indicates that use is approved for a specific number of months.- User-specific restriction: This requirement indicates that use is limited to use by approved users.", - "examples": null, - "type": [ - "DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']" - ], - "is_list": true, - "is_optional": true - }, - { - "name": "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.", - "guidance": "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.- To add multiple entries, please click on '+' symbol to enter each separate website.- Example: National Services Scotland", - "examples": [ - "National Services Scotland" - ], - "type": [ - "ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "access", - "required": true, - "title": "Accessibility", - "description": "Accessibility information allows researchers to understand access, usage, limitations, formats, standards and linkage or interoperability with toolsets.", - "guidance": "", - "examples": null, - "type": [ - "Access" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "accessRights", - "required": true, - "title": "Access rights", - "description": "Please provide details for the data access rights.", - "guidance": "The URL of a webpage where the data access request process and/or guidance is provided. If there is more than one access process i.e. industry vs academic please provide both separated by a comma.- If such a resource or the underlying process doesn\u2019t exist, please provide \u201cIn Progress\u201d, until both the process and the documentation are ready.", - "examples": [ - "In Progress" - ], - "type": [ - "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "accessServiceCategory", - "required": false, - "title": "Access method category", - "description": "The method a Researcher will use to access the dataset, if approved.", - "guidance": "Select the category which best matches how a Researcher will access the dataset, if approved for access. If the access method changes based on the data required for the project (e.g. the dataset can be shared via secure email if the extract is fully anonymised, but must be accessed via a TRE/SDE if the extract is only pseudonymised) then select 'varies based on project'.", - "examples": [ - "TRE/SDE" - ], - "type": [ - "AccessService['TRE/SDE','Direct access','Open access','Varies based on project']", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "accessService", - "required": false, - "title": "Access service description", - "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.", - "guidance": "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://re-docs.genomicsengland.co.uk/tutorials/", - "https://publichealthscotland.scot/services/data-research-and-innovation-services/electronic-data-research-and-innovation-service-edris/national-safe-haven-nsh/" - ], - "type": [ - "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "accessRequestCost", - "required": false, - "title": "Access request cost", - "description": "Please provide link(s) to a webpage or description detailing the service or cost model for processing data access requests.", - "guidance": "This information should cover the costs and/or services available to different audiences (i.e. academic, commercial, non-UK, etc.). This can be in the form of text or a URL.", - "examples": null, - "type": [ - "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "deliveryLeadTime", - "required": false, - "title": "Time to dataset access", - "description": "Please provide an indication of the typical processing times based on the types of requests typically received.", - "guidance": "Less than 1 week: Access request process typically processed in less than a week.- 1-2 weeks: Access request process typically processed in one to two weeks.- 2-4 weeks: Access request process typically processed in two to four weeks.- 1-2 months: Access request process typically processed in one to two months.- 2-6 months: Access request process typically processed in two to six months.- More than 6 months: Access request process typically processed in more than six months.- Variable: Access request lead time is variable.- Not applicable: Access request process duration is not applicable.- Other: If the typical timeframe does not fit into the broad ranges i.e. lightweight application vs linked data application, please choose \u201cOther\u201d and indicate the typical timeframe within the description for the dataset.", - "examples": null, - "type": [ - "DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "jurisdiction", - "required": false, - "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.", - "guidance": "A full list of country codes can be found here (alpha-2 column): https://www.iso.org/obp/ui/#search/code/", - "examples": null, - "type": [ - "Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - }, - { - "name": "dataController", - "required": false, - "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.", - "guidance": "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.- Notes: For most organisations this will be the same as the Data Custodian of the dataset. If this is not the case, please indicate that there is a different controller.- If there is a different controller please complete the Data Processor attribute to indicate if the Data Custodian is a Processor rather than the Data Controller.- In some cases, there may be multiple Data Controllers i.e. GP data. If this is the case, please indicate the fact in a free-text field and describe the data sharing arrangement or a link to it, so that this can be understood by research users.- Example: NHS England", - "examples": [ - "NHS England" - ], - "type": [ - "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "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.", - "guidance": "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.- Notes: Required to complete if the Data Custodian is the Data Processor rather than the Data Controller.- If the Publisher is also the Data Controller please provide \u201cNot Applicable\u201d.- Examples: Not Applicable, SAIL", - "examples": [ - "Not Applicable", - "SAIL" - ], - "type": [ - "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "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.", - "guidance": "", - "examples": null, - "type": [ - "FormatAndStandards", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "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.", - "guidance": "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.- Local: Local Coding Standard.- OPCS4- READ- SNOMED CT- SNOMED RT- DM+D- NHS National Codes- ODS- LOINC- ICD10- ICD10CM- ICD10PCS- ICD9CM- ICD9- ICDO3- AMT- APC- ATC- CIEL- HPO- CPT4- DPD- DRG- HEMONC- JMDC- KCD7- MULTUM- NAACCR- NDC- NDFRT- OXMIS- RXNORM- RXNORM EXTENSION- SPL- Other: Please indicate if there is another standard that you are using. This will trigger a support ticket where you can request the addition of the terminology to the HOP.- NHS Scotland National Codes- NHS Wales National Codes", - "examples": [ - "LOCAL", - "ICD10" - ], - "type": [ - "ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']" - ], - "is_list": true, - "is_optional": false - }, - { - "name": "conformsTo", - "required": true, - "title": "Alignment with standardised data models", - "description": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR. If the data is only available in a local format, 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.", - "guidance": "List standardised data models that the dataset has been stored in or transformed to, such as OMOP or FHIR.- If the data is only available in a local format, 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.- HL7 FHIR- HL7 V2- HL7 CDA- HL7 CCOW- DICOM- I2B2- IHE- OMOP- openEHR- Sentinel- PCORnet- CDISC- Local: In-house developed data model.- Other: Other standardised data model.- NHS Data Dictionary- NHS Scotland Data Dictionary- NHS Wales Data Dictionary", - "examples": [ - "LOCAL", - "NHS DATA DICTIONARY" - ], - "type": [ - "StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']" - ], - "is_list": true, - "is_optional": false - }, - { - "name": "language", - "required": true, - "title": "Language", - "description": "This should list all the languages in which the dataset metadata and underlying data is made available complaint with ISO 639.", - "guidance": "https://www.iso.org/iso-639-language-code- aa: Afar- ab: Abkhazian- af: Afrikaans- ak: Akan- sq: Albanian- am: Amharic- ar: Arabic- an: Aragonese- hy: Armenian- as: Assamese- av: Avaric- ae: Avestan- ay: Aymara- az: Azerbaijani- ba: Bashkir- bm: Bambara- eu: Basque- be: Belarusian- bn: Bengali- bh: Bihari languages- bi: Bislama- bo: Tibetan- bs: Bosnian- br: Breton- bg: Bulgarian- my: Burmese- ca: Catalan; Valencian- cs: Czech- ch: Chamorro- ce: Chechen- zh: Chinese- cu: Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic- cv: Chuvash- kw: Cornish- co: Corsican- cr: Cree- cy: Welsh- cs: Czech- da: Danish- de: German- dv: Divehi; Dhivehi; Maldivian- nl: Dutch; Flemish- dz: Dzongkha- el: Greek, Modern (1453-)- en: English- eo: Esperanto- et: Estonian- eu: Basque- ee: Ewe- fo: Faroese- fa: Persian- fj: Fijian- fi: Finnish- fr: French- fy: Western Frisian- ff: Fulah- ka: Georgian- de: German- gd: Gaelic; Scottish Gaelic- ga: Irish- gl: Galician- gv: Manx- el: Greek, Modern (1453-)- gn: Guarani- gu: Gujarati- ht: Haitian; Haitian Creole- ha: Hausa- ho: Hiri Motu- hr: Croatian- hu: Hungarian- hy: Armenian- ig: Igbo- is: Icelandic- io: Ido- ii: Sichuan Yi; Nuosu- iu: Inuktitut- ie: Interlingue; Occidental- ia: Interlingua (International Auxiliary Language Association)- id: Indonesian- ik: Inupiaq- is: Icelandic- it: Italian- jv: Javanese- ja: Japanese- kl: Kalaallisut; Greenlandic- kn: Kannada- ks: Kashmiri- ka: Georgian- kr: Kanuri- kk: Kazakh- km: Central Khmer- ki: Kikuyu; Gikuyu- rw: Kinyarwanda- ky: Kirghiz; Kyrgyz- kv: Komi- kg: Kongo- ko: Korean- kj: Kuanyama; Kwanyama- ku: Kurdish- lo: Lao- la: Latin- lv: Latvian- li: Limburgan; Limburger; limburgish- ln: Lingala- lt: Lithuanian- lb: Luxembourgish; Letzeburgesch- lu: Luba-Katanga- lg: Ganda- mk: Macedonian- mh: Marshallese- ml: Malayalam- mi: Maori- mr: Marathi- ms: Malay- mk: Macedonian- mg: Malagasy- mt: Maltese- mn: Mongolian- mi: Maori- ms: Malay- my: Burmese- na: Nauru- nv: Navajo; Navaho- nr: Ndebele, South; South Ndebele- nd: Ndebele, North; North Ndebele- ng: Ndonga- ne: Nepali- nl: Dutch; Flemish- nn: Norwegian Nynorsk; Nynorsk, Norwegian- nb: Bokm\u00e5l, Norwegian; Norwegian Bokm\u00e5l- no: Norwegian- ny: Chichewa; Chewa; Nyanja- oc: Occitan (post 1500)- oj: Ojibwa- or: Oriya- om: Oromo- os: Ossetian; Ossetic- pa: Panjabi; Punjabi- fa: Persian- pi: Pali- pl: Polish- pt: Portuguese- ps: Pushto; Pashto- qu: Quechua- rm: Romansh- ro: Romanian; Moldavian; Moldovan- rn: Rundi- ru: Russian- sg: Sango- sa: Sanskrit- si: Sinhala; Sinhalese- sk: Slovak- sl: Slovenian- se: Northern Sami- sm: Samoan- sn: Shona- sd: Sindhi- so: Somali- st: Sotho, Southern- es: Spanish; Castilian- sq: Albanian- sc: Sardinian- sr: Serbian- ss: Swati- su: Sundanese- sw: Swahili- sv: Swedish- ty: Tahitian- ta: Tamil- tt: Tatar- te: Telugu- tg: Tajik- tl: Tagalog- th: Thai- bo: Tibetan- ti: Tigrinya- to: Tonga (Tonga Islands)- tn: Tswana- ts: Tsonga- tk: Turkmen- tr: Turkish- tw: Twi- ug: Uighur; Uyghur- uk: Ukrainian- ur: Urdu- uz: Uzbek- ve: Venda- vi: Vietnamese- vo: Volap\u00fck- cy: Welsh- wa: Walloon- wo: Wolof- xh: Xhosa- yi: Yiddish- yo: Yoruba- za: Zhuang; Chuang- zh: Chinese- zu: Zulu", - "examples": [ - "en" - ], - "type": [ - "LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']" - ], - "is_list": true, - "is_optional": false - }, - { - "name": "format", - "required": true, - "title": "Format", - "description": "If multiple formats are available please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml Note: If your file format is not included in the current list of formats, please indicate other. If you are using the HOP you will be directed to a service desk page where you can request your additional format. If not please go to: https://metadata.atlassian.net/servicedesk/customer/portal/4 to request your format.", - "guidance": "If multiple formats are available, please specify. See application, audio, image, message, model, multipart, text, video, https://www.iana.org/assignments/media-types/media-types.xhtml.- Please enter one format type at a time and click Add New Field to add further keywords.- Note: If your file format is not included in the current list of formats, please indicate other.- Example: text/tab-separated-values, application/sql, text/csv, image/diacom-rle", - "examples": [ - "text/tab-separated-values", - "application/sql", - "text/csv", - "image/diacom-rle" - ], - "type": [ - "Format[{'minLength': 1, 'type': 'string'}]" - ], - "is_list": true, - "is_optional": false, - "subItems": [] - } - ] - } - ] - }, - { - "name": "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.", - "guidance": "", - "examples": null, - "type": [ - "EnrichmentAndLinkage", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "derivedFrom", - "required": false, - "title": "Derived from", - "description": "If applicable, please provide DOIs or links to datasets from which data in this dataset has been derived or calculated from.", - "guidance": "", - "examples": null, - "type": [ - "DatasetDescriptor" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "pid", - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "title", - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "url", - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "isPartOf", - "required": false, - "title": "Is part of", - "description": "This relationship indicates that the dataset is a component or subset of a broader collection of related datasets. For example, clinical trial data for a specific drug may be part of a larger database of pharmaceutical research data. Complete only if the dataset is part of a group or family of datasets i.e. Hospital Episode Statistics has several constituents. If your dataset is not part of a group, please enter \u201cNOT APPLICABLE\u201d Example: Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS).", - "guidance": "", - "examples": [ - "Hospital Episodes Statistics datasets (A&E, APC, OP, AC MSDS)" - ], - "type": [ - "DatasetDescriptor" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "pid", - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "title", - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "url", - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "linkableDatasets", - "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.", - "guidance": "", - "examples": null, - "type": [ - "DatasetDescriptor" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "pid", - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "title", - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "url", - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "similarToDatasets", - "required": false, - "title": "Similar to datasets", - "description": "Datasets that are similar to each other in some way, collect similar patients, regional equivalent etc.", - "guidance": "", - "examples": null, - "type": [ - "DatasetDescriptor" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "pid", - "required": false, - "title": "Persistent identifier of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "title", - "required": false, - "title": "Title of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "url", - "required": false, - "title": "Url of a dataset", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "investigations", - "required": false, - "title": "Investigations", - "description": "Please provide link to any active projects that are using the dataset.", - "guidance": "Please provide the website address(es) which document information related to active projects utilising the dataset.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each website and press enter to add it to the list.- Example: https://dataloch.org/insights/projects-delivered/data-driven-innovation-multi-morbidity-report-partner-gps", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - }, - { - "name": "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/", - "guidance": "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, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - }, - { - "name": "publicationAboutDataset", - "required": false, - "title": "Publication about the dataset", - "description": "DOIs for publications which describe the dataset.", - "guidance": "Please provide the DOIs for publications which describe the dataset.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each citation and press enter to add it to the list.- Example: <10.1093/ije/dyab028>", - "examples": [ - "10.1093/ije/dyab028" - ], - "type": [ - "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - }, - { - "name": "publicationUsingDataset", - "required": false, - "title": "Publication using the dataset", - "description": "DOIs for publications which use the dataset for analysis.", - "guidance": "Please provide the DOIs for publications which have used the dataset in their analysis.- Please split your existing list of citations into separate fields.- To add multiple entries, type in each citation and press enter to add it to the list.- Example: <10.1001/jamapediatrics.2016.3633>", - "examples": [ - "10.1001/jamapediatrics.2016.3633" - ], - "type": [ - "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "observations", - "required": true, - "title": "Observations", - "description": "This section provides an overview of observations of your dataset linked to specific points in time. Multiple observations about the dataset are encouraged to be provided, including multiple observations of the same property at different timepoints. At least one observation is required.", - "guidance": "", - "examples": null, - "type": [ - "Observation" - ], - "is_list": true, - "is_optional": false, - "subItems": [ - { - "name": "observedNode", - "required": true, - "title": "Dataset volume measure", - "description": "Please select one of the following broad notes for your measured observation. Indicating whether the measured property is a recording of unique persons, events, findings or scans per modality.", - "guidance": "Persons: Unique persons recorded in the dataset- Events: Unique events such as procedures and prescriptions within the dataset-Findings: Unique findings included in the dataset such as diagnoses'-Number of scans per modality: Unique scans for a specified imaging method modality (e.g. 12 x-rays)", - "examples": [ - "Persons" - ], - "type": [ - "StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "measuredValue", - "required": true, - "title": "Measured value", - "description": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", - "guidance": "An integer value size of the measured property, such as \u20181000\u2019 for 1000 people in the study or \u201887\u2019 for 87 MRI scans in the dataset.", - "examples": [ - 1000 - ], - "type": [ - "int" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "disambiguatingDescription", - "required": false, - "title": "Disambiguating description", - "description": "If required, please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population. Limited to 500 characters.", - "guidance": "If required please provide additional details that help distinguish between similar measured properties within your dataset, for example this is useful when SNOMED CT terms do not provide sufficient detail to distinguish between parts of the dataset population.", - "examples": null, - "type": [ - "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "observationDate", - "required": true, - "title": "Observation date", - "description": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", - "guidance": "Provide the date, or datetime that the observation was made. Multiple observations of the same property can be provided, for example an observation of cumulative COVID positive cases by specimen on the 1/1/2021 with a measuredValue of 2000000, and a second observation entry on 8/2/2021 recording a measuredValue of as 3100000.", - "examples": [ - "2024-10-24" - ], - "type": [ - "date", - "datetime" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "measuredProperty", - "required": true, - "title": "Measured property", - "description": "Descriptive term for the observation property measured. For example, people, procedures, x-rays, or diagnosis of type 1 diabetes. This could also be a specific SNOMED CT term.", - "guidance": "Descriptive term for the observation property measured.", - "examples": [ - "Count" - ], - "type": [ - "MeasuredProperty[{}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - } - ] - }, - { - "name": "structuralMetadata", - "required": false, - "title": "Structural metadata", - "description": "Descriptions of all tables and data elements that can be included in the dataset.", - "guidance": "", - "examples": null, - "type": [ - "StructuralMetadata", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "tables", - "required": false, - "title": "Tables", - "description": "Tables in the dataset", - "guidance": "", - "examples": null, - "type": [ - "DataTable" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "name", - "required": false, - "title": "Table name", - "description": "The name of a table in a dataset.", - "guidance": "", - "examples": null, - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "description", - "required": false, - "title": "Table description", - "description": "A description of a table in a dataset.", - "guidance": "", - "examples": null, - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "size", - "required": false, - "title": "Table size", - "description": "Number of Complete Entries.", - "guidance": "Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete.", - "examples": null, - "type": [ - "int", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "columns", - "required": true, - "title": "Data columns", - "description": "A list of columns contained within a table in a dataset.", - "guidance": "", - "examples": null, - "type": [ - "DataColumn" - ], - "is_list": true, - "is_optional": false, - "subItems": [ - { - "name": "name", - "required": true, - "title": "Column name", - "description": "The name of a column in a table.", - "guidance": "", - "examples": null, - "type": [ - "Name[{}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "dataType", - "required": true, - "title": "Data type", - "description": "The data type of values in the column.", - "guidance": "", - "examples": null, - "type": [ - "str" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "description", - "required": false, - "title": "Column description", - "description": "A description of a column in a table.", - "guidance": "", - "examples": null, - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "sensitive", - "required": true, - "title": "Sensitive", - "description": "A True or False value, indicating if the field is sensitive or not.", - "guidance": "", - "examples": null, - "type": [ - "bool" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "values", - "required": false, - "title": "Values", - "description": "Values in a dataset.", - "guidance": "", - "examples": null, - "type": [ - "DataValue" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "name", - "required": true, - "title": "Value name", - "description": "Unique value in a column.", - "guidance": "", - "examples": null, - "type": [ - "Name[{}]" - ], - "is_list": false, - "is_optional": false, - "subItems": [] - }, - { - "name": "description", - "required": false, - "title": "Value description", - "description": "A description of a unique value in a column.", - "guidance": "", - "examples": null, - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "frequency", - "required": false, - "title": "Value frequency", - "description": "The frequency of occurrance of a value in a column.", - "guidance": "", - "examples": null, - "type": [ - "int", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - } - ] - } - ] - }, - { - "name": "syntheticDataWebLink", - "required": false, - "title": "Synthetic data web links", - "description": "Please provide the website address(es) with information on your synthetic dataset creation, or the location where a synthetic version of the dataset can be accessed.- Please split your existing list of citations into separate fields.- To add multiple entries, select from the drop-down list, or add to the drop-down. Click the 'x' symbol to remove any entries.- Example: https://www.pioneerdatahub.co.uk/dataset/synthetic-dataset-patients-at-risk-of-sudden-death-hypertrophic-cardiomyopathy/", - "guidance": "", - "examples": null, - "type": [ - "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" - ], - "is_list": true, - "is_optional": true, - "subItems": [] - } - ] - }, - { - "name": "demographicFrequency", - "required": false, - "title": "Demographic frequency", - "description": "The statistical characteristics of a population or group within the dataset.", - "guidance": "", - "examples": null, - "type": [ - "DemographicFrequency", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "age", - "required": false, - "title": "Age", - "description": "Array of bins, based off the UK Office for National Statistics (ONS) groupings, and their corresponding counts as represented within the dataset.", - "guidance": "", - "examples": null, - "type": [ - "Age" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "bin", - "required": true, - "title": "Age grouping", - "description": null, - "guidance": "", - "examples": [ - "30-34 years" - ], - "type": [ - "AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "count", - "required": true, - "title": "Age count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "type": [ - "int" - ], - "is_list": false, - "is_optional": false - } - ] - }, - { - "name": "ethnicity", - "required": false, - "title": "Ethnicity", - "description": "Array of bins, based off the UK Office for National Statistics (ONS) census groupings, and their corresponding counts as represented within the dataset.", - "guidance": "Enter the count of population represented in the dataset within the ethnicity bins provided. Clearly indicate where ethnicity is not stated or not known. Ensure you apply low number suppression and rounding where appropriate.", - "examples": null, - "type": [ - "Ethnicity" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "bin", - "required": true, - "title": "Ethnicity grouping", - "description": null, - "guidance": "", - "examples": [ - "Black or Black British - Any other Black background" - ], - "type": [ - "EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "count", - "required": true, - "title": "Ethnicity count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "type": [ - "int" - ], - "is_list": false, - "is_optional": false - } - ] - }, - { - "name": "disease", - "required": false, - "title": "Disease", - "description": "Array of health conditions or diseases (based around ICD-10, SNOMED CT and MeSH disease vocabularies) and their corresponding counts as represented within the dataset.", - "guidance": "Create bins based on standard vocabulary (ICD-10, SNOMED CT or MeSH) and disease code. Then enter the count of population represented in the dataset within the disease bins created. Ensure you apply low number suppression and rounding where appropriate.", - "examples": null, - "type": [ - "Disease" - ], - "is_list": true, - "is_optional": true, - "subItems": [ - { - "name": "diseaseCode", - "required": true, - "title": "Disease code", - "description": null, - "guidance": "", - "examples": [ - "J45" - ], - "type": [ - "str", - "int" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "diseaseCodeVocabulary", - "required": true, - "title": "Disease code vocabulary", - "description": null, - "guidance": "", - "examples": [ - "ICD10" - ], - "type": [ - "DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']" - ], - "is_list": false, - "is_optional": false - }, - { - "name": "count", - "required": true, - "title": "Disease count", - "description": null, - "guidance": "", - "examples": [ - 1000 - ], - "type": [ - "int" - ], - "is_list": false, - "is_optional": false - } - ] - } - ] - }, - { - "name": "omics", - "required": false, - "title": "Omics", - "description": "Omics", - "guidance": "", - "examples": null, - "type": [ - "Omics", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "assay", - "required": false, - "title": "Omics assay", - "description": "The specific 'omics assay that generated the dataset.", - "guidance": "The specific 'omics assay that generated the dataset. If the assay used to generate your dataset is not listed, please contract the gateway team by submitting an enquiry.", - "examples": null, - "type": [ - "Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis']", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "platform", - "required": false, - "title": "Omics Platform", - "description": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", - "guidance": "The specific technology or infrastructure used to perform the assay. If the omics platform used to create your dataset is not listed, please select other, a member of the gateway team will contact you to add an appropriate term(s) both to your record and to the metadata schema on your behalf.", - "examples": null, - "type": [ - "Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi']", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - }, - { - "name": "icons", - "required": false, - "title": "Icons", - "description": "Calculated categorization icons added during export.", - "guidance": "", - "examples": null, - "type": [ - "Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "project", - "required": false, - "title": "Project", - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Project" - ], - "is_list": false, - "is_optional": false, - "subItems": [ - { - "name": "projectName", - "required": false, - "title": "Project Title", - "description": "May or may not be different to the Dataset Title", - "guidance": "", - "examples": null, - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "leadResearcher", - "required": false, - "title": "Lead Researcher", - "description": "", - "guidance": "", - "examples": [ - "Dr Smith" - ], - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "leadResearchInstitute", - "required": false, - "title": "Lead Research Institute", - "description": "", - "guidance": "", - "examples": [ - "Sussex University" - ], - "type": [ - "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "grantNumbers", - "required": false, - "title": "Grant number(s)", - "description": "List of grant numbers separated by a line break", - "guidance": "Normally specified on the grant acceptance letter", - "examples": [ - "A354t", - "ropguadg" - ], - "type": [ - "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "projectStartDate", - "required": false, - "title": "Project Start Date", - "description": "Starting date of project grant.", - "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", - "examples": null, - "type": [ - "date", - "datetime", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "projectEndDate", - "required": false, - "title": "Project End Date", - "description": "Current end date of project grant.", - "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", - "examples": null, - "type": [ - "date", - "datetime", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "projectScope", - "required": false, - "title": "Project Scope", - "description": "data and biospecimens expected to result from the grant.", - "guidance": "Short paragraph setting out the types of data / biospecimens likely to result from the grant and the cancers covered", - "examples": [ - "Longitudinal genomic data including somatic mutations" - ], - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - } - ] - }, - { - "name": "datasetFilters", - "required": false, - "title": null, - "description": "Categorization tags regarding cancer type, data type, and access.", - "guidance": "", - "examples": null, - "type": [ - "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - }, - { - "name": "erd", - "required": false, - "title": "Entity Relationship Diagram", - "description": "Visual representation of data table relationships.", - "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", - "examples": null, - "type": [ - "Image", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [ - { - "name": "image", - "required": false, - "title": "Image", - "description": "An image file.", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - "examples": null, - "type": [ - "str", - "null" - ], - "is_list": false, - "is_optional": true - }, - { - "name": "description", - "required": false, - "title": null, - "description": null, - "guidance": "", - "examples": null, - "type": [ - "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "null" - ], - "is_list": false, - "is_optional": true, - "subItems": [] - } - ] - } -] \ No newline at end of file diff --git a/docs/HDRUK/4.1.0.template.json b/docs/HDRUK/4.1.0.template.json deleted file mode 100644 index c7c01961..00000000 --- a/docs/HDRUK/4.1.0.template.json +++ /dev/null @@ -1,167 +0,0 @@ -{ - "identifier": "Uuidv4[{'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}$', 'type': 'string'}] | Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", - "version": "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]", - "revisions": { - "version": "Semver[{'pattern': '^([0-9]+)\\\\.([0-9]+)\\\\.([0-9]+)$', 'type': 'string'}]", - "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "issued": "datetime", - "modified": "datetime", - "summary": { - "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "funders": "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}]", - "abstract": "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}]", - "dataCustodian": { - "identifier": "str | int", - "name": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "logo": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", - "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", - "contactPoint": "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}] | typing.List[hdr_schemata.definitions.HDRUK.EmailAddress.EmailAddress]", - "memberOf": "MemberOfV2['Hub','Alliance','Other','NCS'] | null" - }, - "populationSize": "int", - "keywords": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}]", - "doiName": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}] | null", - "contactPoint": "EmailAddress[{'anyOf': [{'format': 'email', 'type': 'string'}, {'type': 'null'}]}]", - "datasetAliases": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]] | null" - }, - "documentation": { - "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "associatedMedia": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.Url.Url]] | null", - "inPipeline": "Pipeline['Available','Not available'] | null" - }, - "coverage": { - "spatial": "CommaSeparatedValues[{'anyOf': [{'pattern': '([^,]+)', 'type': 'string'}, {'type': 'null'}]}] | typing.List[hdr_schemata.definitions.HDRUK.Url.Url]", - "typicalAgeRangeMin": "int | null", - "typicalAgeRangeMax": "int | null", - "datasetCompleteness": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null", - "materialType": "MaterialTypeCategoriesV2['None/not available','Bone marrow','Cancer cell lines','CDNA/MRNA','Core biopsy','DNA','Entire body organ','Faeces','Immortalized cell lines','Isolated pathogen','MicroRNA','Peripheral blood cells','Plasma','PM Tissue','Primary cells','RNA','Saliva','Serum','Swabs','Tissue','Urine','Whole blood','Availability to be confirmed','Other']", - "followUp": "FollowupV2['0 - 6 Months','6 - 12 Months','1 - 10 Years','> 10 Years','Unknown','Continuous','Other',null] | null", - "pathway": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "provenance": { - "origin": { - "purpose": "PurposeV2['Research cohort','Study','Disease registry','Trial','Care','Audit','Administrative','Financial','Statutory','Other',null]", - "datasetType": "typing.Union[hdr_schemata.definitions.HDRUK.DatasetType.HealthAndDisease, hdr_schemata.definitions.HDRUK.DatasetType.TreatmentsInterventions, hdr_schemata.definitions.HDRUK.DatasetType.MeasurementsTests, hdr_schemata.definitions.HDRUK.DatasetType.ImagingTypes, hdr_schemata.definitions.HDRUK.DatasetType.ImagingAreaOfTheBody, hdr_schemata.definitions.HDRUK.DatasetType.OmicsDataType, hdr_schemata.definitions.HDRUK.DatasetType.Socioeconomic, hdr_schemata.definitions.HDRUK.DatasetType.Lifestyle, hdr_schemata.definitions.HDRUK.DatasetType.Registry, hdr_schemata.definitions.HDRUK.DatasetType.EnvironmentAndEnergy, hdr_schemata.definitions.HDRUK.DatasetType.InformationAndCommunication, hdr_schemata.definitions.HDRUK.DatasetType.Politics]", - "source": "SourceV2['EPR','Electronic survey','LIMS','Paper-based','Free text NLP','Machine generated','Other']", - "collectionSource": "SettingV2['Cohort, study, trial','Clinic','Primary care - Referrals','Primary care - Clinic','Primary care - Out of hours','Secondary care - Accident and Emergency','Secondary care - Outpatients','Secondary care - In-patients','Secondary care - Ambulance','Secondary care - ICU','Prescribing - Community pharmacy','Prescribing - Hospital','Patient report outcome','Wearables','Local authority','National government','Community','Services','Home','Private','Social care - Health care at home','Social care - Other social data','Census','Other',null]", - "imageContrast": "Ternary['Yes','No','Not stated'] | null" - }, - "temporal": { - "publishingFrequency": "PeriodicityV2['Static','Irregular','Continuous','Biennial','Annual','Biannual','Quarterly','Bimonthly','Monthly','Biweekly','Weekly','Twice a week','Daily','Other',null]", - "distributionReleaseDate": "date | datetime | null", - "startDate": "date | datetime", - "endDate": "date | datetime | EndDateEnum['CONTINUOUS',null] | null", - "timeLag": "TimeLagV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other']" - } - }, - "accessibility": { - "usage": { - "dataUseLimitation": "DataUseLimitationV2['General research use','Commercial research use','Genetic studies only','No general methods research','No restriction','Geographical restrictions','Institution-specific restrictions','Not for profit use','Project-specific restrictions','Research-specific restrictions','User-specific restrictions','Research use only','No linkage']", - "dataUseRequirements": "DataUseRequirementsV2['Collaboration required','Project-specific restrictions','Ethics approval required','Institution-specific restrictions','Geographical restrictions','Publication moratorium','Publication required','Return to database or resource','Time limit on use','Disclosure control','Not for profit use','User-specific restriction']", - "resourceCreator": "ShortDescription[{'anyOf': [{'maxLength': 1000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | typing.List[typing.Optional[hdr_schemata.definitions.HDRUK.ShortDescription.ShortDescription]] | null" - }, - "access": { - "accessRights": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}]", - "accessServiceCategory": "AccessService['TRE/SDE','Direct access','Open access','Varies based on project'] | null", - "accessService": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", - "accessRequestCost": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", - "deliveryLeadTime": "DeliveryLeadTimeV2['Less than 1 week','1-2 weeks','2-4 weeks','1-2 months','2-6 months','More than 6 months','Variable','Not applicable','Other'] | null", - "jurisdiction": "Isocountrycode[{'pattern': '^[A-Z]{2}(-[A-Z]{2,3})?$', 'type': 'string'}]", - "dataController": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null", - "dataProcessor": "LongDescription[{'anyOf': [{'maxLength': 50000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "formatAndStandards": { - "vocabularyEncodingScheme": "ControlledVocabularyEnum['LOCAL','OPCS4','READ','SNOMED CT','SNOMED RT','DM PLUS D','DM+D','NHS NATIONAL CODES','NHS SCOTLAND NATIONAL CODES','NHS WALES NATIONAL CODES','ODS','LOINC','ICD10','ICD10CM','ICD10PCS','ICD9CM','ICD9','ICDO3','AMT','APC','ATC','CIEL','HPO','CPT4','DPD','DRG','HEMONC','JMDC','KCD7','MULTUM','NAACCR','NDC','NDFRT','OXMIS','RXNORM','RXNORM EXTENSION','SPL','OTHER']", - "conformsTo": "StandardisedDataModelsEnum['HL7 FHIR','HL7 V2','HL7 CDA','HL7 CCOW','LOINC','DICOM','I2B2','IHE','OMOP','OPENEHR','SENTINEL','PCORNET','CDISC','NHS DATA DICTIONARY','NHS SCOTLAND DATA DICTIONARY','NHS WALES DATA DICTIONARY','LOCAL','OTHER']", - "language": "LanguageEnum['aa','ab','ae','af','ak','am','an','ar','as','av','ay','az','ba','be','bg','bh','bi','bm','bn','bo','br','bs','ca','ce','ch','co','cr','cs','cu','cv','cy','da','de','dv','dz','ee','el','en','eo','es','et','eu','fa','ff','fi','fj','fo','fr','fy','ga','gd','gl','gn','gu','gv','ha','he','hi','ho','hr','ht','hu','hy','hz','ia','id','ie','ig','ii','ik','io','is','it','iu','ja','jv','ka','kg','ki','kj','kk','kl','km','kn','ko','kr','ks','ku','kv','kw','ky','la','lb','lg','li','ln','lo','lt','lu','lv','mg','mh','mi','mk','ml','mn','mr','ms','mt','my','na','nb','nd','ne','ng','nl','nn','no','nr','nv','ny','oc','oj','om','or','os','pa','pi','pl','ps','pt','qu','rm','rn','ro','ru','rw','sa','sc','sd','se','sg','si','sk','sl','sm','sn','so','sq','sr','ss','st','su','sv','sw','ta','te','tg','th','ti','tk','tl','tn','to','tr','ts','tt','tw','ty','ug','uk','ur','uz','ve','vi','vo','wa','wo','xh','yi','yo','za','zh','zu']", - "format": "Format[{'minLength': 1, 'type': 'string'}]" - } - }, - "enrichmentAndLinkage": { - "derivedFrom": { - "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "isPartOf": { - "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "linkableDatasets": { - "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "similarToDatasets": { - "pid": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "title": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "url": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}] | null" - }, - "investigations": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "tools": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]", - "publicationAboutDataset": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]", - "publicationUsingDataset": "Doi[{'anyOf': [{'pattern': '^10.\\\\d{4,9}/[-._;()/:a-zA-Z0-9]+$', 'type': 'string'}, {'type': 'null'}]}]" - }, - "observations": { - "observedNode": "StatisticalPopulationConstrainedV2['Persons','Events','Findings','Number of scans per modality']", - "measuredValue": "int", - "disambiguatingDescription": "AbstractText[{'anyOf': [{'maxLength': 500, 'minLength': 5, 'type': 'string'}, {'type': 'null'}]}] | null", - "observationDate": "date | datetime", - "measuredProperty": "MeasuredProperty[{}]" - }, - "structuralMetadata": { - "tables": { - "name": "str | null", - "description": "str | null", - "size": "int | null", - "columns": { - "name": "Name[{}]", - "dataType": "str", - "description": "str | null", - "sensitive": "bool", - "values": { - "name": "Name[{}]", - "description": "str | null", - "frequency": "int | null" - } - } - }, - "syntheticDataWebLink": "Url[{'anyOf': [{'format': 'uri', 'minLength': 1, 'type': 'string'}, {'type': 'null'}]}]" - }, - "demographicFrequency": { - "age": { - "bin": "AgeEnum['0-6 days','7-27 days','1-11 months','1-4 years','5-9 years','10-14 years','15-19 years','20-24 years','25-29 years','30-34 years','35-39 years','40-44 years','45-49 years','50-54 years','55-59 years','60-64 years','65-69 years','70-74 years','75-79 years','80-84 years','85-89 years','90-94 years','95-99 years','100+ years']", - "count": "int" - }, - "ethnicity": { - "bin": "EthnicityEnum['White - British','White - Irish','White - Any other White background','Mixed - White and Black Caribbean','Mixed - White and Black African','Mixed - White and Asian','Mixed - Any other mixed background','Asian or Asian British - Indian','Asian or Asian British - Pakistani','Asian or Asian British - Bangladeshi','Asian or Asian British - Any other Asian background','Black or Black British - Caribbean','Black or Black British - African','Black or Black British - Any other Black background','Other Ethnic Groups - Chinese','Other Ethnic Groups - Any other ethnic group','Not stated','Not known']", - "count": "int" - }, - "disease": { - "diseaseCode": "str | int", - "diseaseCodeVocabulary": "DiseaseCodeEnum['ICD10','SNOMED CT','MeSH']", - "count": "int" - } - }, - "omics": { - "assay": "Assay['NMR spectroscopy','Mass-spectrometry','Whole genome sequencing','Exome sequencing','Genotyping by array','Transcriptome profiling by high-throughput sequencing','Transcriptome profiling by array','Amplicon sequencing','Methylation binding domain sequencing','Methylation profiling by high-throughput sequencing','Genomic variant calling','Chromatin accessibility profiling by high-throughput sequencing','Histone modification profiling by high-throughput sequencing','Chromatin immunoprecipitation sequencing','Whole genome shotgun sequencing','Whole transcriptome sequencing','Targeted mutation analysis'] | null", - "platform": "Platform['Other','NMR Nightingale','Metabolon','Biocrates','Illumina','Oxford Nanopore','454','Hi-C','HiFi'] | null" - }, - "icons": "Icons[{'anyOf': [{'items': {'type': 'string'}, 'type': 'array'}, {'type': 'null'}], 'description': 'A list of icon identifiers associated with the dataset, derived from dataset filters.'}] | null", - "project": { - "projectName": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "leadResearcher": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "leadResearchInstitute": "OneHundredFiftyCharacters[{'maxLength': 150, 'minLength': 2, 'type': 'string'}] | null", - "grantNumbers": "LineSeparatedValues[{'anyOf': [{'pattern': '([^\\\\\\\\r\\\\\\\\n]+)', 'type': 'string'}, {'type': 'null'}]}] | null", - "projectStartDate": "date | datetime | null", - "projectEndDate": "date | datetime | null", - "projectScope": "str | null" - }, - "datasetFilters": "DatasetFilters[{'description': 'A list of categorization tags (ids) for the dataset.', 'items': {'pattern': '\\\\{\\\\s*\\\\\\'id\\\\\\':\\\\s*\\\\\\'(\\\\d+_){0,5}\\\\d+\\\\\\',\\\\s*\\\\\\'label\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'category\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\',\\\\s*\\\\\\'primaryGroup\\\\\\':\\\\s*\\\\\\'(cancer-type|data-type|access-type)\\\\\\',\\\\s*\\\\\\'description\\\\\\':\\\\s*\\\\\\'.{0,150}\\\\\\'\\\\s*\\\\}', 'type': 'string'}, 'type': 'array'}] | null", - "erd": { - "image": "str | null", - "description": "Description[{'anyOf': [{'maxLength': 10000, 'minLength': 2, 'type': 'string'}, {'type': 'null'}]}] | null" - } -} \ No newline at end of file diff --git a/hdr_schemata/examples/CRUK/1.0.0/example.json b/hdr_schemata/examples/CRUK/1.0.0/example.json new file mode 100644 index 00000000..a28ab2a3 --- /dev/null +++ b/hdr_schemata/examples/CRUK/1.0.0/example.json @@ -0,0 +1,97 @@ +{ + "identifier": "a7ddefbd-31d9-4703-a738-256e4689f76a", + "version": "1.0.0", + "revisions": [ + { + "version": "1.0.0", + "url": "https://example.org/datasets/a7ddefbd-31d9-4703-a738-256e4689f76a" + } + ], + "issued": "2020-08-05T14:35:59Z", + "modified": "2021-01-28T14:15:46Z", + "summary": { + "title": "CRUK DataHub Example Dataset", + "abstract": "Example CRUK dataset record extending HDRUK 4.0.0 with CRUK-specific fields.", + "dataCustodian": { + "identifier": "hdr-uk", + "name": "HEALTH DATA RESEARCH UK", + "contactPoint": "susheel.varma@hdruk.ac.uk" + }, + "populationSize": 575, + "keywords": [ + "Cancer", + "CRUK", + "Example" + ], + "doiName": "10.1093/ije/dyx196", + "contactPoint": "susheel.varma@hdruk.ac.uk" + }, + "accessibility": { + "formatAndStandards": { + "language": "en", + "vocabularyEncodingScheme": "OTHER", + "format": [ + "CSV", + "JSON" + ], + "conformsTo": "OTHER" + }, + "usage": { + "dataUseLimitation": "GENERAL RESEARCH USE", + "resourceCreator": "HDR UK Science Team", + "dataUseRequirements": "RETURN TO DATABASE OR RESOURCE", + "isReferencedBy": [ + "10.5281/zenodo.326615" + ], + "investigations": [ + "https://github.com/HDRUK/papers" + ] + }, + "access": { + "dataController": "HDR UK", + "jurisdiction": "GB-ENG", + "dataProcessor": "HDR UK", + "accessService": "https://github.com/HDRUK/papers", + "accessRights": "https://raw.githubusercontent.com/HDRUK/papers/master/LICENSE", + "accessRequestCost": "Free", + "deliveryLeadTime": "OTHER" + } + }, + "observations": [ + { + "observedNode": "FINDINGS", + "measuredValue": 575, + "disambiguatingDescription": "Example observation count", + "observationDate": "2020-11-27", + "measuredProperty": "Count" + } + ], + "datasetFilters": [ + "{\"id\":\"1\",\"label\":\"Breast\",\"category\":\"Cancer\",\"primaryGroup\":\"cancer-type\",\"description\":\"Breast cancer\"}" + ], + "icons": [ + "icon-a", + "icon-b" + ], + "erd": null, + "projectGrants": [ + { + "pid": "CRUK-PROJ-001", + "projectGrantName": "CRUK Example Grant Title", + "leadResearcher": "Dr Smith", + "leadResearchInstitute": "Sussex University", + "grantNumber": "ABC123", + "projectGrantStartDate": "2020-01-01", + "projectGrantEndDate": "2024-12-31", + "projectGrantScope": "Longitudinal genomic data including somatic mutations" + } + ], + "otherDataTypes": [ + { + "title": "Mammograms", + "description": "2D images of both normal and malignant breasts", + "format": "image/jpeg" + } + ] +} + diff --git a/hdr_schemata/models/HDRUK/4.1.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json similarity index 96% rename from hdr_schemata/models/HDRUK/4.1.0/schema.json rename to hdr_schemata/models/CRUK/1.0.0/schema.json index f1f7cbae..6e53237a 100644 --- a/hdr_schemata/models/HDRUK/4.1.0/schema.json +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -563,20 +563,6 @@ "description": "A description of a table in a dataset.", "title": "Table description" }, - "size": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Number of Complete Entries.", - "guidance": "Provides a measure of the completeness of the data set. A row which includes n/a against columns that are not relevant or not applicable should still be counted as complete.", - "title": "Table size" - }, "columns": { "description": "A list of columns contained within a table in a dataset.", "items": { @@ -717,15 +703,6 @@ "title": "DatasetDescriptor", "type": "object" }, - "DatasetFilters": { - "description": "A list of categorization tags (ids) for the dataset.", - "items": { - "pattern": "\\{\\s*\\\"id\\\":\\s*\\\"(\\d+_){0,5}\\d+\\\",\\s*\\\"label\\\":\\s*\\\".{0,150}\\\",\\s*\\\"category\\\":\\s*\\\".{0,150}\\\",\\s*\\\"primaryGroup\\\":\\s*\\\"(cancer-type|data-type|access-type)\\\",\\s*\\\"description\\\":\\s*\\\".{0,150}\\\"\\s*\\}", - "type": "string" - }, - "title": "Dataset Filters", - "type": "array" - }, "DeliveryLeadTimeV2": { "enum": [ "Less than 1 week", @@ -1325,54 +1302,6 @@ "title": "HealthAndDiseaseSubTypes", "type": "string" }, - "Icons": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", - "title": "Icons" - }, - "Image": { - "additionalProperties": false, - "properties": { - "image": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "contentMediaType": "image/*", - "default": null, - "description": "An image file.", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - "title": "Image" - }, - "description": { - "anyOf": [ - { - "$ref": "#/$defs/Description" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "title": "Image", - "type": "object" - }, "ImagingAreaOfTheBody": { "properties": { "name": { @@ -1720,18 +1649,6 @@ "title": "LifestyleSubTypes", "type": "string" }, - "LineSeparatedValues": { - "anyOf": [ - { - "pattern": "([^\\\\r\\\\n]+)", - "type": "string" - }, - { - "type": "null" - } - ], - "title": "LineSeparatedValues" - }, "LongDescription": { "anyOf": [ { @@ -2220,6 +2137,53 @@ "title": "Origin", "type": "object" }, + "OtherDataType": { + "additionalProperties": false, + "properties": { + "title": { + "allOf": [ + { + "$ref": "#/$defs/OneHundredFiftyCharacters" + } + ], + "examples": [ + "Mammograms", + "Patient recordings" + ], + "guidance": "Short descriptive titles", + "title": "Title" + }, + "description": { + "allOf": [ + { + "$ref": "#/$defs/ShortDescription" + } + ], + "examples": [ + "2D images of both normal and malignant breasts", + "audio-tapes of oncology consultations" + ], + "guidance": "A description of the data type.", + "title": "Data description" + }, + "format": { + "allOf": [ + { + "$ref": "#/$defs/Format" + } + ], + "description": "Format drawn from https://www.iana.org/assignments/media-types/media-types.xhtml.", + "guidance": "https://www.iana.org/assignments/media-types/media-types.xhtml lists the commonly used formats for different media (such as video/image/audio) etc. If your format is not included in the list set out there, please indicate other and specify in the description." + } + }, + "required": [ + "title", + "description", + "format" + ], + "title": "OtherDataType", + "type": "object" + }, "PeriodicityV2": { "enum": [ "Static", @@ -2292,10 +2256,9 @@ "title": "Politics", "type": "object" }, - "Project": { - "additionalProperties": false, + "ProjectGrant": { "properties": { - "projectName": { + "pid": { "anyOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" @@ -2305,98 +2268,68 @@ } ], "default": null, - "description": "May or may not be different to the Dataset Title", - "title": "Project Title" + "title": "Persistent identifier of the study" }, - "leadResearcher": { - "anyOf": [ + "projectGrantName": { + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, + } + ], + "description": "The Project Grant Title should be unique to the CRUK datahub. (Add your institute or name if necessary to disambiguate.", + "title": "Project Grant Title" + }, + "leadResearcher": { + "allOf": [ { - "type": "null" + "$ref": "#/$defs/OneHundredFiftyCharacters" } ], - "default": null, - "description": "", "examples": [ "Dr Smith" ], "title": "Lead Researcher" }, "leadResearchInstitute": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, - { - "type": "null" } ], - "default": null, - "description": "", "examples": [ "Sussex University" ], "title": "Lead Research Institute" }, - "grantNumbers": { - "anyOf": [ - { - "$ref": "#/$defs/LineSeparatedValues" - }, - { - "type": "null" - } - ], - "default": null, - "description": "List of grant numbers separated by a line break", + "grantNumber": { + "description": "List of CRUK and any other grant numbers.", "examples": [ - "A354t", - "ropguadg" + "ABC123" ], "guidance": "Normally specified on the grant acceptance letter", - "title": "Grant number(s)" + "title": "Grant number(s)", + "type": "string" }, - "projectStartDate": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Starting date of project grant.", - "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", - "title": "Project Start Date" + "projectGrantStartDate": { + "description": "Starting date of projectGrant grant.", + "guidance": "Date on which the dataset projectGrant starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "title": "Project Start Date", + "type": "string" }, - "projectEndDate": { + "projectGrantEndDate": { "anyOf": [ { - "format": "date", - "type": "string" - }, - { - "format": "date-time", "type": "string" }, { "type": "null" } ], - "default": null, "description": "Current end date of project grant.", "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", "title": "Project End Date" }, - "projectScope": { + "projectGrantScope": { "anyOf": [ { "maxLength": 500, @@ -2416,7 +2349,15 @@ "title": "Project Scope" } }, - "title": "Project", + "required": [ + "projectGrantName", + "leadResearcher", + "leadResearchInstitute", + "grantNumber", + "projectGrantStartDate", + "projectGrantEndDate" + ], + "title": "ProjectGrant", "type": "object" }, "Provenance": { @@ -2745,20 +2686,6 @@ "guidance": "- The **title** should provide a short description of the dataset and be **unique** across the gateway.\\n- 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.\\n- If an accronym is widely used the dataset name, please add it in brackets () at the end of the title.\\n- Good titles should summarise the content of the dataset and if relevant, **the region the dataset covers**.\\n- **Example**: North West London COVID-19 Patient Level Situation Report", "title": "Title" }, - "funders": { - "allOf": [ - { - "$ref": "#/$defs/LineSeparatedValues" - } - ], - "description": "List of Funders separated by a line break", - "examples": [ - "CRUK", - "University of Sussex" - ], - "guidance": "Put each funder on a new line", - "title": "Funded by" - }, "abstract": { "allOf": [ { @@ -2875,7 +2802,6 @@ }, "required": [ "title", - "funders", "abstract", "dataCustodian", "populationSize", @@ -3318,10 +3244,29 @@ "description": "Omics", "title": "Omics" }, + "datasetFilters": { + "anyOf": [ + { + "items": { + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "type": "string" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null, + "title": "Dataset Filters" + }, "icons": { "anyOf": [ { - "$ref": "#/$defs/Icons" + "items": { + "type": "string" + }, + "type": "array" }, { "type": "null" @@ -3331,40 +3276,49 @@ "description": "Calculated categorization icons added during export.", "title": "Icons" }, - "project": { - "allOf": [ + "erd": { + "anyOf": [ { - "$ref": "#/$defs/Project" + "$ref": "#/$defs/Url" + }, + { + "type": "null" } ], "default": null, - "title": "Project" + "description": "Visual representation of data table relationships.", + "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", + "title": "Entity Relationship Diagram" }, - "datasetFilters": { + "projectGrants": { "anyOf": [ { - "$ref": "#/$defs/DatasetFilters" + "items": { + "$ref": "#/$defs/ProjectGrant" + }, + "type": "array" }, { "type": "null" } ], "default": null, - "description": "Categorization tags regarding cancer type, data type, and access." + "title": "Associated Project Grants" }, - "erd": { + "otherDataTypes": { "anyOf": [ { - "$ref": "#/$defs/Image" + "items": { + "$ref": "#/$defs/OtherDataType" + }, + "type": "array" }, { "type": "null" } ], "default": null, - "description": "Visual representation of data table relationships.", - "guidance": "Please upload an image file (max 5MB) showing the relationship between the different tables", - "title": "Entity Relationship Diagram" + "title": "Other data types" } }, "required": [ @@ -3377,6 +3331,6 @@ "accessibility", "observations" ], - "title": "Hdruk410", + "title": "Cruk100", "type": "object" } \ No newline at end of file diff --git a/hdr_schemata/models/CRUK/__init__.py b/hdr_schemata/models/CRUK/__init__.py new file mode 100644 index 00000000..37ace5f8 --- /dev/null +++ b/hdr_schemata/models/CRUK/__init__.py @@ -0,0 +1,2 @@ +from .v1_0_0 import Cruk100 + diff --git a/hdr_schemata/models/CRUK/create_json_schema.py b/hdr_schemata/models/CRUK/create_json_schema.py new file mode 100644 index 00000000..0e8c866b --- /dev/null +++ b/hdr_schemata/models/CRUK/create_json_schema.py @@ -0,0 +1,4 @@ +import v1_0_0 + +v1_0_0.Cruk100.save_schema() + diff --git a/hdr_schemata/models/CRUK/v1_0_0/__init__.py b/hdr_schemata/models/CRUK/v1_0_0/__init__.py new file mode 100644 index 00000000..31acf1ce --- /dev/null +++ b/hdr_schemata/models/CRUK/v1_0_0/__init__.py @@ -0,0 +1,172 @@ +import json +from typing import List, Optional + +from pydantic import BaseModel, Field, constr + +from hdr_schemata.definitions.HDRUK import ( + Format, + OneHundredFiftyCharacters, + ShortDescription, + Url, +) +from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 + + +DatasetFilterItem = constr( + pattern=r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*"category":\s*".{0,150}",\s*"primaryGroup":\s*"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' +) + + +class DataTable(BaseModel): + class Config: + extra = "forbid" + + size: Optional[int] = Field( + None, + title="Table size", + description="Number of Complete Entries.", + json_schema_extra={ + "guidance": ( + "Provides a measure of the completeness of the data set. A row which includes n/a against " + "columns that are not relevant or not applicable should still be counted as complete." + ) + }, + ) + + +class OtherDataType(BaseModel): + class Config: + extra = "forbid" + + title: OneHundredFiftyCharacters = Field( + ..., + title="Title", + json_schema_extra={"guidance": "Short descriptive titles"}, + examples=["Mammograms", "Patient recordings"], + ) + description: ShortDescription = Field( + ..., + title="Data description", + json_schema_extra={"guidance": "A description of the data type."}, + examples=[ + "2D images of both normal and malignant breasts", + "audio-tapes of oncology consultations", + ], + ) + format: Format = Field( + ..., + title="Format", + description="Format drawn from https://www.iana.org/assignments/media-types/media-types.xhtml.", + json_schema_extra={ + "guidance": ( + "https://www.iana.org/assignments/media-types/media-types.xhtml lists the commonly used " + "formats for different media (such as video/image/audio) etc. If your format is not " + "included in the list set out there, please indicate other and specify in the description." + ) + }, + ) + + +class ProjectGrant(BaseModel): + pid: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Persistent identifier of the study", + ) + projectGrantName: OneHundredFiftyCharacters = Field( + ..., + title="Project Grant Title", + description=( + "The Project Grant Title should be unique to the CRUK datahub. " + "(Add your institute or name if necessary to disambiguate." + ), + ) + leadResearcher: OneHundredFiftyCharacters = Field( + ..., + title="Lead Researcher", + examples=["Dr Smith"], + ) + leadResearchInstitute: OneHundredFiftyCharacters = Field( + ..., + title="Lead Research Institute", + examples=["Sussex University"], + ) + grantNumber: str = Field( + ..., + title="Grant number(s)", + description="List of CRUK and any other grant numbers.", + examples=["ABC123"], + json_schema_extra={"guidance": "Normally specified on the grant acceptance letter"}, + ) + projectGrantStartDate: str = Field( + ..., + title="Project Start Date", + description="Starting date of projectGrant grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset projectGrant starts. This is normally set out in the grant " + "contract and will be different from the start of any data collection" + ) + }, + ) + projectGrantEndDate: Optional[str] = Field( + ..., + title="Project End Date", + description="Current end date of project grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset project is currently projected to finish. This is normally set " + "out in the grant contract and will be different from the end of any data collection" + ) + }, + ) + projectGrantScope: Optional[constr(min_length=5, max_length=500)] = Field( + None, + title="Project Scope", + description="data and biospecimens expected to result from the grant.", + examples=["Longitudinal genomic data including somatic mutations"], + json_schema_extra={ + "guidance": ( + "Short paragraph setting out the types of data / biospecimens likely to result from the " + "grant and the cancers covered" + ) + }, + ) + + +class Cruk100(Hdruk400): + class Config: + extra = "forbid" + + datasetFilters: Optional[List[DatasetFilterItem]] = Field( + None, + title="Dataset Filters", + ) + icons: Optional[List[str]] = Field( + None, + title="Icons", + description="Calculated categorization icons added during export.", + ) + erd: Optional[Url] = Field( + None, + title="Entity Relationship Diagram", + description="Visual representation of data table relationships.", + json_schema_extra={ + "guidance": ( + "Please upload an image file (max 5MB) showing the relationship between the different tables" + ) + }, + ) + projectGrants: Optional[List[ProjectGrant]] = Field( + None, + title="Associated Project Grants", + ) + otherDataTypes: Optional[List[OtherDataType]] = Field( + None, + title="Other data types", + ) + + @classmethod + def save_schema(cls, location: str = "./1.0.0/schema.json") -> None: + with open(location, "w") as f: + json.dump(cls.model_json_schema(), f, indent=6) + diff --git a/hdr_schemata/models/GWDM/v2_1/Summary.py b/hdr_schemata/models/GWDM/v2_1/Summary.py index ec0e303d..2d6c7252 100644 --- a/hdr_schemata/models/GWDM/v2_1/Summary.py +++ b/hdr_schemata/models/GWDM/v2_1/Summary.py @@ -2,10 +2,11 @@ from typing import Optional -from pydantic import Field +from pydantic import Field, constr from hdr_schemata.models.GWDM.v2_0.Summary import Summary as Gwdm20Summary -from hdr_schemata.models.HDRUK.v4_1_0.LineSeparatedValues import LineSeparatedValues + +LineSeparatedValues = constr(pattern=r"([^\r\n]+)") class Summary(Gwdm20Summary): diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 41ab6db1..8eca54e0 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -1,35 +1,120 @@ from __future__ import annotations import json -from typing import Any, Dict, Optional +from typing import Any, Dict, List, Optional -from pydantic import Field +from pydantic import BaseModel, Field, constr from hdr_schemata.models.GWDM.v2_0 import Gwdm20 -from hdr_schemata.models.HDRUK.v4_1_0 import Hdruk410 -from hdr_schemata.models.HDRUK.v4_1_0.DatasetFilters import DatasetFilters -from hdr_schemata.models.HDRUK.v4_1_0.Icons import Icons -from hdr_schemata.models.HDRUK.v4_1_0.Image import Image -from hdr_schemata.models.HDRUK.v4_1_0.Project import Project +from hdr_schemata.models.CRUK.v1_0_0 import Cruk100 +from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 +from hdr_schemata.definitions.HDRUK import Description, OneHundredFiftyCharacters -from .Summary import Summary +from .Summary import LineSeparatedValues, Summary + + +DatasetFilterItem = constr( + pattern=r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*"category":\s*".{0,150}",\s*"primaryGroup":\s*"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' +) + + +class Image(BaseModel): + class Config: + extra = "forbid" + + image: Optional[str] = Field( + None, + title="Image", + description="An image file.", + json_schema_extra={ + "contentMediaType": "image/*", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + }, + ) + description: Optional[Description] = Field(None) + + +class Project(BaseModel): + class Config: + extra = "forbid" + + projectName: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Project Title", + description="May or may not be different to the Dataset Title", + ) + leadResearcher: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Lead Researcher", + examples=["Dr Smith"], + description="", + ) + leadResearchInstitute: Optional[OneHundredFiftyCharacters] = Field( + None, + title="Lead Research Institute", + examples=["Sussex University"], + description="", + ) + grantNumbers: Optional[LineSeparatedValues] = Field( + None, + title="Grant number(s)", + description="List of grant numbers separated by a line break", + examples=["A354t", "ropguadg"], + json_schema_extra={"guidance": "Normally specified on the grant acceptance letter"}, + ) + projectStartDate: Optional[str] = Field( + None, + title="Project Start Date", + description="Starting date of project grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset project starts. This is normally set out in the grant contract " + "and will be different from the start of any data collection" + ) + }, + ) + projectEndDate: Optional[str] = Field( + None, + title="Project End Date", + description="Current end date of project grant.", + json_schema_extra={ + "guidance": ( + "Date on which the dataset project is currently projected to finish. This is normally set " + "out in the grant contract and will be different from the end of any data collection" + ) + }, + ) + projectScope: Optional[constr(min_length=5, max_length=500)] = Field( + None, + title="Project Scope", + description="data and biospecimens expected to result from the grant.", + examples=["Longitudinal genomic data including somatic mutations"], + json_schema_extra={ + "guidance": ( + "Short paragraph setting out the types of data / biospecimens likely to result from the " + "grant and the cancers covered" + ) + }, + ) def _truncate(value: Optional[str], max_length: int) -> Optional[str]: if value is None: return None + if hasattr(value, "root"): + value = value.root return value[:max_length] class Gwdm21(Gwdm20): summary: Summary = Field(..., description="Summary of metadata describing key pieces of information.") - icons: Optional[Icons] = Field( + icons: Optional[List[str]] = Field( None, title="Icons", description="Calculated categorization icons added during export.", ) project: Optional[Project] = Field(None, title="Project") - datasetFilters: Optional[DatasetFilters] = Field( + datasetFilters: Optional[List[DatasetFilterItem]] = Field( None, description="Categorization tags regarding cancer type, data type, and access.", ) @@ -49,7 +134,7 @@ def save_schema(cls, location: str = "./2.1/schema.json") -> None: with open(location, "w") as f: json.dump(cls.model_json_schema(), f, indent=6) - def to_hdruk410_payload(self) -> Dict[str, Any]: + def to_hdruk400_payload(self) -> Dict[str, Any]: summary = self.summary publisher = getattr(summary, "publisher", None) publisher_name = getattr(publisher, "name", None) if publisher else None @@ -76,15 +161,35 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: if funders_value is not None and hasattr(funders_value, "root"): funders_value = funders_value.root + revisions_value = self.required.revisions + if revisions_value is not None and hasattr(revisions_value, "root"): + revisions_value = revisions_value.root + if isinstance(revisions_value, list): + revisions_value = [ + r.model_dump(mode="json") if hasattr(r, "model_dump") else r for r in revisions_value + ] + + observations_value = self.observations or [] + if isinstance(observations_value, list): + observations_value = [ + o.model_dump(mode="json") if hasattr(o, "model_dump") else o for o in observations_value + ] + + accessibility_value = ( + self.accessibility.model_dump(mode="json") + if hasattr(self.accessibility, "model_dump") + else self.accessibility + ) + payload: Dict[str, Any] = { - "identifier": self.required.gatewayPid, + # HDRUK allows uuid/url identifiers; gatewayId is the closest. + "identifier": self.required.gatewayId, "version": self.required.version, - "revisions": self.required.revisions, + "revisions": revisions_value or [], "issued": self.required.issued, "modified": self.required.modified, "summary": { "title": _truncate(summary.title, 150), - "funders": funders_value or publisher_name or "Unknown", "abstract": _truncate(summary.abstract, 500), "dataCustodian": data_custodian, "populationSize": summary.populationSize or 0, @@ -92,8 +197,8 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: "doiName": getattr(summary, "doiName", None), "contactPoint": contact_point, }, - "accessibility": self.accessibility, - "observations": self.observations or [], + "accessibility": accessibility_value, + "observations": observations_value, } if self.coverage is not None: @@ -106,16 +211,28 @@ def to_hdruk410_payload(self) -> Dict[str, Any]: payload["omics"] = self.omics if self.structuralMetadata is not None: payload["structuralMetadata"] = {"tables": self.structuralMetadata} + return payload + + def to_hdruk400(self) -> Hdruk400: + return Hdruk400.model_validate(self.to_hdruk400_payload()) + + def to_cruk100_payload(self) -> Dict[str, Any]: + payload = self.to_hdruk400_payload() + + # CRUK 1.0.0 extends HDRUK 4.0.0 with additional fields. + # GWDM 2.1 already has these fields, so pass them through. if self.icons is not None: payload["icons"] = self.icons - if self.project is not None: - payload["project"] = self.project if self.datasetFilters is not None: payload["datasetFilters"] = self.datasetFilters if self.erd is not None: - payload["erd"] = self.erd + # CRUK expects a URL; GWDM carries an Image object. Prefer the image string if present. + image_value = getattr(self.erd, "image", None) + if image_value is not None and hasattr(image_value, "root"): + image_value = image_value.root + payload["erd"] = image_value return payload - def to_hdruk410(self) -> Hdruk410: - return Hdruk410.model_validate(self.to_hdruk410_payload()) + def to_cruk100(self) -> Cruk100: + return Cruk100.model_validate(self.to_cruk100_payload()) diff --git a/hdr_schemata/models/HDRUK/4.1.0/.gitkeep b/hdr_schemata/models/HDRUK/4.1.0/.gitkeep deleted file mode 100644 index e69de29b..00000000 diff --git a/hdr_schemata/models/HDRUK/__init__.py b/hdr_schemata/models/HDRUK/__init__.py index 1fefea66..f1cd9bc2 100644 --- a/hdr_schemata/models/HDRUK/__init__.py +++ b/hdr_schemata/models/HDRUK/__init__.py @@ -4,4 +4,3 @@ from .v2_2_1 import Hdruk221 from .v3_0_0 import Hdruk300 from .v4_0_0 import Hdruk400 -from .v4_1_0 import Hdruk410 diff --git a/hdr_schemata/models/HDRUK/create_json_schema.py b/hdr_schemata/models/HDRUK/create_json_schema.py index 86ff7e3b..71d80de1 100644 --- a/hdr_schemata/models/HDRUK/create_json_schema.py +++ b/hdr_schemata/models/HDRUK/create_json_schema.py @@ -4,7 +4,6 @@ import v2_2_1 import v3_0_0 import v4_0_0 -import v4_1_0 v2_1_2.Hdruk212.save_schema() v2_1_3.Hdruk213.save_schema() @@ -12,4 +11,3 @@ v2_2_1.Hdruk221.save_schema() v3_0_0.Hdruk300.save_schema() v4_0_0.Hdruk400.save_schema() -v4_1_0.Hdruk410.save_schema() diff --git a/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py b/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py deleted file mode 100644 index b7eed118..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/DataTable.py +++ /dev/null @@ -1,39 +0,0 @@ -from __future__ import annotations - -from typing import Optional, List - -from pydantic import BaseModel, Field, constr - -from hdr_schemata.definitions.HDRUK import * -from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations - -from hdr_schemata.models.HDRUK.v3_0_0.DataColumn import DataColumn - -an = annotations.structuralMetadata.tables - - -class DataTable(BaseModel): - class Config: - extra = "forbid" - - name: Optional[constr(min_length=1, max_length=500)] = Field( - None, **an.name.__dict__ - ) - description: Optional[constr(min_length=1, max_length=20000)] = Field( - None, **an.description.__dict__ - ) - size: Optional[int] = Field( - None, - title="Table size", - description="Number of Complete Entries.", - json_schema_extra={ - "guidance": ( - "Provides a measure of the completeness of the data set. A row which includes " - "n/a against columns that are not relevant or not applicable should still be " - "counted as complete." - ) - }, - ) - columns: List[DataColumn] = Field( - ..., title=an.columns._title, description=an.columns._description - ) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py b/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py deleted file mode 100644 index e86b1243..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/DatasetFilters.py +++ /dev/null @@ -1,22 +0,0 @@ -from __future__ import annotations - -from pydantic import ConfigDict, RootModel, constr - - -class DatasetFilters( - RootModel[ - list[ - constr( - pattern=( - r'\{\s*\"id\":\s*\"(\d+_){0,5}\d+\",\s*\"label\":\s*\".{0,150}\",\s*' - r'\"category\":\s*\".{0,150}\",\s*\"primaryGroup\":\s*' - r'\"(cancer-type|data-type|access-type)\",\s*\"description\":\s*\".{0,150}\"\s*\}' - ) - ) - ] - ] -): - model_config = ConfigDict( - title="Dataset Filters", - json_schema_extra={"description": "A list of categorization tags (ids) for the dataset."}, - ) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Icons.py b/hdr_schemata/models/HDRUK/v4_1_0/Icons.py deleted file mode 100644 index 10631632..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/Icons.py +++ /dev/null @@ -1,14 +0,0 @@ -from __future__ import annotations - -from typing import Optional, List - -from pydantic import ConfigDict, RootModel - - -class Icons(RootModel[Optional[List[str]]]): - model_config = ConfigDict( - title="Icons", - json_schema_extra={ - "description": "A list of icon identifiers associated with the dataset, derived from dataset filters." - }, - ) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Image.py b/hdr_schemata/models/HDRUK/v4_1_0/Image.py deleted file mode 100644 index 1c704d97..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/Image.py +++ /dev/null @@ -1,24 +0,0 @@ -from __future__ import annotations - -from typing import Optional - -from pydantic import BaseModel, Field - -from hdr_schemata.definitions.HDRUK import Description - - -class Image(BaseModel): - class Config: - extra = "forbid" - - image: Optional[str] = Field( - None, - title="Image", - description="An image file.", - json_schema_extra={ - "contentMediaType": "image/*", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - }, - ) - - description: Optional[Description] = None diff --git a/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py b/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py deleted file mode 100644 index 384f5bb6..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/LineSeparatedValues.py +++ /dev/null @@ -1,9 +0,0 @@ -from __future__ import annotations - -from typing import Optional - -from pydantic import ConfigDict, RootModel, constr - - -class LineSeparatedValues(RootModel[Optional[constr(pattern=r"([^\\r\\n]+)")]]): - model_config = ConfigDict(title="LineSeparatedValues") diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Project.py b/hdr_schemata/models/HDRUK/v4_1_0/Project.py deleted file mode 100644 index 2a646ae8..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/Project.py +++ /dev/null @@ -1,81 +0,0 @@ -from __future__ import annotations - -from datetime import date, datetime -from typing import Optional, Union - -from pydantic import BaseModel, Field, constr - -from hdr_schemata.definitions.HDRUK import OneHundredFiftyCharacters - -from .LineSeparatedValues import LineSeparatedValues - - -class Project(BaseModel): - class Config: - extra = "forbid" - - projectName: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Project Title", - description="May or may not be different to the Dataset Title", - ) - - leadResearcher: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Lead Researcher", - description="", - examples=["Dr Smith"], - ) - - leadResearchInstitute: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Lead Research Institute", - description="", - examples=["Sussex University"], - ) - - grantNumbers: Optional[LineSeparatedValues] = Field( - None, - title="Grant number(s)", - description="List of grant numbers separated by a line break", - examples=["A354t", "ropguadg"], - json_schema_extra={"guidance": "Normally specified on the grant acceptance letter"}, - ) - - projectStartDate: Optional[Union[date, datetime]] = Field( - None, - title="Project Start Date", - description="Starting date of project grant.", - json_schema_extra={ - "guidance": ( - "Date on which the dataset project starts. This is normally set out in the " - "grant contract and will be different from the start of any data collection" - ) - }, - ) - - projectEndDate: Optional[Union[date, datetime]] = Field( - None, - title="Project End Date", - description="Current end date of project grant.", - json_schema_extra={ - "guidance": ( - "Date on which the dataset project is currently projected to finish. This is " - "normally set out in the grant contract and will be different from the end of " - "any data collection" - ) - }, - ) - - projectScope: Optional[constr(min_length=5, max_length=500)] = Field( - None, - title="Project Scope", - description="data and biospecimens expected to result from the grant.", - examples=["Longitudinal genomic data including somatic mutations"], - json_schema_extra={ - "guidance": ( - "Short paragraph setting out the types of data / biospecimens likely to result " - "from the grant and the cancers covered" - ) - }, - ) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py b/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py deleted file mode 100644 index 388a4f02..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/StructuralMetadata.py +++ /dev/null @@ -1,27 +0,0 @@ -from __future__ import annotations - -from typing import Optional, List - -from pydantic import BaseModel, Field - -from hdr_schemata.definitions.HDRUK import Url -from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations - -from .DataTable import DataTable - -an = annotations.structuralMetadata.tables - - -class StructuralMetadata(BaseModel): - class Config: - extra = "forbid" - - tables: Optional[List[DataTable]] = Field( - None, - description=an._description, - title=an._title, - ) - - syntheticDataWebLink: Optional[List[Url]] = Field( - None, **an.syntheticDataWebLink.__dict__ - ) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/Summary.py b/hdr_schemata/models/HDRUK/v4_1_0/Summary.py deleted file mode 100644 index 0ac0b7c9..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/Summary.py +++ /dev/null @@ -1,65 +0,0 @@ -from __future__ import annotations - -from typing import Optional, Union, List - -from pydantic import BaseModel, Field - -from hdr_schemata.definitions.HDRUK import ( - AbstractText, - CommaSeparatedValues, - Doi, - EmailAddress, - OneHundredFiftyCharacters, - ShortDescription, -) -from hdr_schemata.models.HDRUK.v4_0_0.Organisation import Organisation -from hdr_schemata.models.HDRUK.v4_0_0.annotations import annotations - -from .LineSeparatedValues import LineSeparatedValues - -an = annotations.summary - - -class Summary(BaseModel): - class Config: - extra = "forbid" - - title: OneHundredFiftyCharacters = Field( - ..., **an.title.__dict__, json_schema_extra={"guidance": an.title.guidance} - ) - - funders: LineSeparatedValues = Field( - ..., - title="Funded by", - description="List of Funders separated by a line break", - examples=["CRUK", "University of Sussex"], - json_schema_extra={"guidance": "Put each funder on a new line"}, - ) - - abstract: AbstractText = Field( - ..., **an.abstract.__dict__, json_schema_extra={"guidance": an.abstract.guidance} - ) - - dataCustodian: Organisation = Field( - ..., title=an.dataCustodian.title, description=an.dataCustodian.description - ) - - populationSize: int = Field( - ..., **an.populationSize.__dict__, json_schema_extra={"guidance": an.populationSize.guidance} - ) - - keywords: Optional[List[OneHundredFiftyCharacters]] = Field( - None, **an.keywords.__dict__, json_schema_extra={"guidance": an.keywords.guidance} - ) - - doiName: Optional[Doi] = Field( - None, **an.doiName.__dict__, json_schema_extra={"guidance": an.doiName.guidance} - ) - - contactPoint: EmailAddress = Field( - ..., **an.contactPoint.__dict__, json_schema_extra={"guidance": an.contactPoint.guidance} - ) - - datasetAliases: Optional[ - Union[Optional[CommaSeparatedValues], List[Optional[ShortDescription]]] - ] = Field(None, **an.datasetAliases.__dict__) diff --git a/hdr_schemata/models/HDRUK/v4_1_0/__init__.py b/hdr_schemata/models/HDRUK/v4_1_0/__init__.py deleted file mode 100644 index bf628635..00000000 --- a/hdr_schemata/models/HDRUK/v4_1_0/__init__.py +++ /dev/null @@ -1,57 +0,0 @@ -from __future__ import annotations - -import json -from typing import Optional - -from pydantic import Field - -from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 -from hdr_schemata.models.HDRUK.v4_0_0.annotations import annotations as an -from hdr_schemata.models.HDRUK.v3_0_0.annotations import annotations as an_v3 - -from .DatasetFilters import DatasetFilters -from .Icons import Icons -from .Image import Image -from .Project import Project -from .Summary import Summary -from .StructuralMetadata import StructuralMetadata - - -class Hdruk410(Hdruk400): - icons: Optional[Icons] = Field( - None, - title="Icons", - description="Calculated categorization icons added during export.", - ) - summary: Summary = Field( - ..., description=an.summary._description, title=an.summary._title - ) - - structuralMetadata: Optional[StructuralMetadata] = Field( - None, - description=an_v3.structuralMetadata.description, - title=an_v3.structuralMetadata.title, - ) - - project: Project = Field(None, title="Project") - - datasetFilters: Optional[DatasetFilters] = Field( - None, - description="Categorization tags regarding cancer type, data type, and access.", - ) - - erd: Optional[Image] = Field( - None, - title="Entity Relationship Diagram", - description="Visual representation of data table relationships.", - json_schema_extra={ - "guidance": ( - "Please upload an image file (max 5MB) showing the relationship between the different tables" - ) - }, - ) - - @classmethod - def save_schema(cls, location="./4.1.0/schema.json"): - with open(location, "w") as f: - json.dump(cls.model_json_schema(), f, indent=6) diff --git a/hdr_schemata/utils/create_example.py b/hdr_schemata/utils/create_example.py index 069e10d8..7983c369 100644 --- a/hdr_schemata/utils/create_example.py +++ b/hdr_schemata/utils/create_example.py @@ -38,5 +38,5 @@ def create_example(path): with open(f"{path}.example.json", "w") as f: json.dump(example, f, indent=6) -create_template("./docs/HDRUK/4.1.0") -create_example("./docs/HDRUK/4.1.0") +create_template("./docs/HDRUK/4.0.0") +create_example("./docs/HDRUK/4.0.0") diff --git a/hdr_schemata/utils/create_markdown.py b/hdr_schemata/utils/create_markdown.py index fed0cd6b..5db87219 100644 --- a/hdr_schemata/utils/create_markdown.py +++ b/hdr_schemata/utils/create_markdown.py @@ -264,7 +264,7 @@ def remove_types(data): from hdr_schemata.models.HDRUK import Hdruk221 from hdr_schemata.models.HDRUK import Hdruk300 from hdr_schemata.models.HDRUK import Hdruk400 -from hdr_schemata.models.HDRUK import Hdruk410 + from hdr_schemata.models.GWDM.v1_1 import Gwdm10 from hdr_schemata.models.GWDM.v1_1 import Gwdm11 @@ -278,7 +278,7 @@ def remove_types(data): # create_markdown(Hdruk212, dir_path+"/../../docs/HDRUK", "2.1.2") # create_markdown(Hdruk213, dir_path+"/../../docs/HDRUK", "2.1.3") # create_markdown(Hdruk300, dir_path+"/../../docs/HDRUK", "3.0.0") -create_markdown(Hdruk410, dir_path+"/../../docs/HDRUK", "4.1.0") + # from hdr_schemata.models.GWDM.v1_1 import Gwdm10 # from hdr_schemata.models.GWDM.v1_1 import Gwdm11 From 8a319cc7cc2db1a19acb1f8c748d540a3f022717 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Tue, 14 Apr 2026 17:45:11 +0100 Subject: [PATCH 16/18] fix(CRUK): model datasetFilters as objects - Change CRUK datasetFilters from JSON-encoded strings to object items\n- Update GWDM 2.1 -> CRUK conversion to parse/validate filter objects\n- Update CRUK example and add unit test --- hdr_schemata/examples/CRUK/1.0.0/example.json | 40 +++++++++------ hdr_schemata/models/CRUK/1.0.0/schema.json | 49 ++++++++++++++++++- hdr_schemata/models/CRUK/v1_0_0/__init__.py | 18 +++++-- hdr_schemata/models/GWDM/v2_1/__init__.py | 18 ++++++- hdr_schemata/tests/test_cruk.py | 40 +++++++++++++++ 5 files changed, 142 insertions(+), 23 deletions(-) create mode 100644 hdr_schemata/tests/test_cruk.py diff --git a/hdr_schemata/examples/CRUK/1.0.0/example.json b/hdr_schemata/examples/CRUK/1.0.0/example.json index a28ab2a3..b602b436 100644 --- a/hdr_schemata/examples/CRUK/1.0.0/example.json +++ b/hdr_schemata/examples/CRUK/1.0.0/example.json @@ -28,38 +28,44 @@ }, "accessibility": { "formatAndStandards": { - "language": "en", - "vocabularyEncodingScheme": "OTHER", + "language": [ + "en" + ], + "vocabularyEncodingScheme": [ + "OTHER" + ], "format": [ "CSV", "JSON" ], - "conformsTo": "OTHER" + "conformsTo": [ + "OTHER" + ] }, "usage": { - "dataUseLimitation": "GENERAL RESEARCH USE", - "resourceCreator": "HDR UK Science Team", - "dataUseRequirements": "RETURN TO DATABASE OR RESOURCE", - "isReferencedBy": [ - "10.5281/zenodo.326615" + "dataUseLimitation": [ + "General research use" ], - "investigations": [ - "https://github.com/HDRUK/papers" + "resourceCreator": "HDR UK Science Team", + "dataUseRequirements": [ + "Return to database or resource" ] }, "access": { "dataController": "HDR UK", - "jurisdiction": "GB-ENG", + "jurisdiction": [ + "GB-ENG" + ], "dataProcessor": "HDR UK", "accessService": "https://github.com/HDRUK/papers", "accessRights": "https://raw.githubusercontent.com/HDRUK/papers/master/LICENSE", "accessRequestCost": "Free", - "deliveryLeadTime": "OTHER" + "deliveryLeadTime": "Other" } }, "observations": [ { - "observedNode": "FINDINGS", + "observedNode": "Findings", "measuredValue": 575, "disambiguatingDescription": "Example observation count", "observationDate": "2020-11-27", @@ -67,7 +73,13 @@ } ], "datasetFilters": [ - "{\"id\":\"1\",\"label\":\"Breast\",\"category\":\"Cancer\",\"primaryGroup\":\"cancer-type\",\"description\":\"Breast cancer\"}" + { + "id": "1", + "label": "Breast", + "category": "Cancer", + "primaryGroup": "cancer-type", + "description": "Breast cancer" + } ], "icons": [ "icon-a", diff --git a/hdr_schemata/models/CRUK/1.0.0/schema.json b/hdr_schemata/models/CRUK/1.0.0/schema.json index 6e53237a..e2069199 100644 --- a/hdr_schemata/models/CRUK/1.0.0/schema.json +++ b/hdr_schemata/models/CRUK/1.0.0/schema.json @@ -703,6 +703,52 @@ "title": "DatasetDescriptor", "type": "object" }, + "DatasetFilter": { + "additionalProperties": false, + "properties": { + "id": { + "pattern": "(\\d+_){0,5}\\d+", + "title": "Id", + "type": "string" + }, + "label": { + "maxLength": 150, + "minLength": 0, + "title": "Label", + "type": "string" + }, + "category": { + "maxLength": 150, + "minLength": 0, + "title": "Category", + "type": "string" + }, + "primaryGroup": { + "enum": [ + "cancer-type", + "data-type", + "access-type" + ], + "title": "Primary group", + "type": "string" + }, + "description": { + "maxLength": 150, + "minLength": 0, + "title": "Description", + "type": "string" + } + }, + "required": [ + "id", + "label", + "category", + "primaryGroup", + "description" + ], + "title": "DatasetFilter", + "type": "object" + }, "DeliveryLeadTimeV2": { "enum": [ "Less than 1 week", @@ -3248,8 +3294,7 @@ "anyOf": [ { "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", - "type": "string" + "$ref": "#/$defs/DatasetFilter" }, "type": "array" }, diff --git a/hdr_schemata/models/CRUK/v1_0_0/__init__.py b/hdr_schemata/models/CRUK/v1_0_0/__init__.py index 31acf1ce..7478f75c 100644 --- a/hdr_schemata/models/CRUK/v1_0_0/__init__.py +++ b/hdr_schemata/models/CRUK/v1_0_0/__init__.py @@ -1,5 +1,5 @@ import json -from typing import List, Optional +from typing import List, Literal, Optional from pydantic import BaseModel, Field, constr @@ -12,9 +12,17 @@ from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 -DatasetFilterItem = constr( - pattern=r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*"category":\s*".{0,150}",\s*"primaryGroup":\s*"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' -) +class DatasetFilter(BaseModel): + class Config: + extra = "forbid" + + id: constr(pattern=r"(\d+_){0,5}\d+") = Field(..., title="Id") + label: constr(min_length=0, max_length=150) = Field(..., title="Label") + category: constr(min_length=0, max_length=150) = Field(..., title="Category") + primaryGroup: Literal["cancer-type", "data-type", "access-type"] = Field( + ..., title="Primary group" + ) + description: constr(min_length=0, max_length=150) = Field(..., title="Description") class DataTable(BaseModel): @@ -137,7 +145,7 @@ class Cruk100(Hdruk400): class Config: extra = "forbid" - datasetFilters: Optional[List[DatasetFilterItem]] = Field( + datasetFilters: Optional[List[DatasetFilter]] = Field( None, title="Dataset Filters", ) diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 8eca54e0..199c4b11 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -6,7 +6,7 @@ from pydantic import BaseModel, Field, constr from hdr_schemata.models.GWDM.v2_0 import Gwdm20 -from hdr_schemata.models.CRUK.v1_0_0 import Cruk100 +from hdr_schemata.models.CRUK.v1_0_0 import Cruk100, DatasetFilter as CrukDatasetFilter from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 from hdr_schemata.definitions.HDRUK import Description, OneHundredFiftyCharacters @@ -224,7 +224,21 @@ def to_cruk100_payload(self) -> Dict[str, Any]: if self.icons is not None: payload["icons"] = self.icons if self.datasetFilters is not None: - payload["datasetFilters"] = self.datasetFilters + filters: List[Dict[str, Any]] = [] + for item in self.datasetFilters: + if item is None: + continue + raw = item.root if hasattr(item, "root") else item + if not isinstance(raw, str): + continue + try: + obj = json.loads(raw) + except Exception: + continue + if isinstance(obj, dict): + # Validate/normalize against CRUK DatasetFilter shape + filters.append(CrukDatasetFilter.model_validate(obj).model_dump(mode="json")) + payload["datasetFilters"] = filters or None if self.erd is not None: # CRUK expects a URL; GWDM carries an Image object. Prefer the image string if present. image_value = getattr(self.erd, "image", None) diff --git a/hdr_schemata/tests/test_cruk.py b/hdr_schemata/tests/test_cruk.py new file mode 100644 index 00000000..6ce2046c --- /dev/null +++ b/hdr_schemata/tests/test_cruk.py @@ -0,0 +1,40 @@ +import json +from pathlib import Path + +from hdr_schemata.models.CRUK import Cruk100 + + +def get_metadata(model, version): + base = Path(__file__).resolve().parent.parent + metadata = json.loads( + (base / "examples" / model / version / "example.json").read_text() + ) + return metadata + + +def get_schema(model, version): + base = Path(__file__).resolve().parent.parent + metadata = json.loads((base / "models" / model / version / "schema.json").read_text()) + return metadata + + +class TestCruk100: + metadata = get_metadata("CRUK", "1.0.0") + json_schema = get_schema("CRUK", "1.0.0") + + def test_validation(self): + assert Cruk100(**self.metadata) is not None + + def test_json_schema(self): + schema = Cruk100.model_json_schema() + expected_keys = [ + "$defs", + "additionalProperties", + "properties", + "required", + "title", + "type", + ] + assert list(schema.keys()) == expected_keys + assert schema == self.json_schema + From 40dc3dba65fe17fcf6990983e51c4a3d73c6fe11 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 15 Apr 2026 11:51:12 +0100 Subject: [PATCH 17/18] feat(GWDM): rename project to projectGrants Align GWDM 2.1 with CRUK 1.0.0 by using projectGrants and updating schema generation. --- hdr_schemata/models/GWDM/2.1/schema.json | 286 +++++++++------------- hdr_schemata/models/GWDM/v2_1/__init__.py | 79 ++---- 2 files changed, 135 insertions(+), 230 deletions(-) diff --git a/hdr_schemata/models/GWDM/2.1/schema.json b/hdr_schemata/models/GWDM/2.1/schema.json index 1d96d8fa..d49cc5c1 100644 --- a/hdr_schemata/models/GWDM/2.1/schema.json +++ b/hdr_schemata/models/GWDM/2.1/schema.json @@ -544,15 +544,6 @@ "title": "DatasetDescriptor", "type": "object" }, - "DatasetFilters": { - "description": "A list of categorization tags (ids) for the dataset.", - "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", - "type": "string" - }, - "title": "Dataset Filters", - "type": "array" - }, "DatasetLinkage": { "additionalProperties": false, "properties": { @@ -901,6 +892,39 @@ "title": "FormatAndStandards", "type": "object" }, + "Image": { + "additionalProperties": false, + "properties": { + "image": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "contentMediaType": "image/*", + "default": null, + "description": "An image file.", + "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", + "title": "Image" + }, + "description": { + "anyOf": [ + { + "$ref": "#/$defs/Description" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "title": "Image", + "type": "object" + }, "Linkage": { "additionalProperties": false, "properties": { @@ -1066,18 +1090,6 @@ ], "title": "LongAbstractText" }, - "LineSeparatedValues": { - "anyOf": [ - { - "pattern": "([^\\\\r\\\\n]+)", - "type": "string" - }, - { - "type": "null" - } - ], - "title": "LineSeparatedValues" - }, "LongDescription": { "anyOf": [ { @@ -1091,54 +1103,6 @@ ], "title": "LongDescription" }, - "Icons": { - "anyOf": [ - { - "items": { - "type": "string" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "description": "A list of icon identifiers associated with the dataset, derived from dataset filters.", - "title": "Icons" - }, - "Image": { - "additionalProperties": false, - "properties": { - "image": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "contentMediaType": "image/*", - "default": null, - "description": "An image file.", - "guidance": "Upload an image file (PNG, JPG, SVG) Max file size: 5MB.", - "title": "Image" - }, - "description": { - "anyOf": [ - { - "$ref": "#/$defs/Description" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "title": "Image", - "type": "object" - }, "MeasuredProperty": { "title": "MeasuredProperty" }, @@ -1388,10 +1352,24 @@ "title": "Pipeline", "type": "string" }, - "Project": { - "additionalProperties": false, + "Platform": { + "enum": [ + "Other", + "NMR Nightingale", + "Metabolon", + "Biocrates", + "Illumina", + "Oxford Nanopore", + "454", + "Hi-C", + "HiFi" + ], + "title": "Platform", + "type": "string" + }, + "ProjectGrant": { "properties": { - "projectName": { + "pid": { "anyOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" @@ -1401,98 +1379,68 @@ } ], "default": null, - "description": "May or may not be different to the Dataset Title", - "title": "Project Title" + "title": "Persistent identifier of the study" }, - "leadResearcher": { - "anyOf": [ + "projectGrantName": { + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, + } + ], + "description": "The Project Grant Title should be unique to the CRUK datahub. (Add your institute or name if necessary to disambiguate.", + "title": "Project Grant Title" + }, + "leadResearcher": { + "allOf": [ { - "type": "null" + "$ref": "#/$defs/OneHundredFiftyCharacters" } ], - "default": null, - "description": "", "examples": [ "Dr Smith" ], "title": "Lead Researcher" }, "leadResearchInstitute": { - "anyOf": [ + "allOf": [ { "$ref": "#/$defs/OneHundredFiftyCharacters" - }, - { - "type": "null" } ], - "default": null, - "description": "", "examples": [ "Sussex University" ], "title": "Lead Research Institute" }, - "grantNumbers": { - "anyOf": [ - { - "$ref": "#/$defs/LineSeparatedValues" - }, - { - "type": "null" - } - ], - "default": null, - "description": "List of grant numbers separated by a line break", + "grantNumber": { + "description": "List of CRUK and any other grant numbers.", "examples": [ - "A354t", - "ropguadg" + "ABC123" ], "guidance": "Normally specified on the grant acceptance letter", - "title": "Grant number(s)" + "title": "Grant number(s)", + "type": "string" }, - "projectStartDate": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "format": "date-time", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null, - "description": "Starting date of project grant.", - "guidance": "Date on which the dataset project starts. This is normally set out in the grant contract and will be different from the start of any data collection", - "title": "Project Start Date" + "projectGrantStartDate": { + "description": "Starting date of projectGrant grant.", + "guidance": "Date on which the dataset projectGrant starts. This is normally set out in the grant contract and will be different from the start of any data collection", + "title": "Project Start Date", + "type": "string" }, - "projectEndDate": { + "projectGrantEndDate": { "anyOf": [ { - "format": "date", - "type": "string" - }, - { - "format": "date-time", "type": "string" }, { "type": "null" } ], - "default": null, "description": "Current end date of project grant.", "guidance": "Date on which the dataset project is currently projected to finish. This is normally set out in the grant contract and will be different from the end of any data collection", "title": "Project End Date" }, - "projectScope": { + "projectGrantScope": { "anyOf": [ { "maxLength": 500, @@ -1503,6 +1451,7 @@ "type": "null" } ], + "default": null, "description": "data and biospecimens expected to result from the grant.", "examples": [ "Longitudinal genomic data including somatic mutations" @@ -1511,23 +1460,16 @@ "title": "Project Scope" } }, - "title": "Project", - "type": "object" - }, - "Platform": { - "enum": [ - "Other", - "NMR Nightingale", - "Metabolon", - "Biocrates", - "Illumina", - "Oxford Nanopore", - "454", - "Hi-C", - "HiFi" + "required": [ + "projectGrantName", + "leadResearcher", + "leadResearchInstitute", + "grantNumber", + "projectGrantStartDate", + "projectGrantEndDate" ], - "title": "Platform", - "type": "string" + "title": "ProjectGrant", + "type": "object" }, "Provenance": { "additionalProperties": false, @@ -1747,24 +1689,6 @@ ], "title": "Title" }, - "funders": { - "anyOf": [ - { - "$ref": "#/$defs/LineSeparatedValues" - }, - { - "type": "null" - } - ], - "default": null, - "description": "List of Funders separated by a line break", - "examples": [ - "CRUK", - "University of Sussex" - ], - "guidance": "Put each funder on a new line", - "title": "Funded by" - }, "shortTitle": { "anyOf": [ { @@ -1935,6 +1859,25 @@ "default": "Not available", "description": "Indicate whether this dataset is currently available for Researchers to request access.", "title": "Dataset pipeline status" + }, + "funders": { + "anyOf": [ + { + "pattern": "([^\\r\\n]+)", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null, + "description": "List of Funders separated by a line break", + "examples": [ + "CRUK", + "University of Sussex" + ], + "guidance": "Put each funder on a new line", + "title": "Funded by" } }, "required": [ @@ -2525,7 +2468,10 @@ "icons": { "anyOf": [ { - "$ref": "#/$defs/Icons" + "items": { + "type": "string" + }, + "type": "array" }, { "type": "null" @@ -2535,29 +2481,37 @@ "description": "Calculated categorization icons added during export.", "title": "Icons" }, - "project": { + "projectGrants": { "anyOf": [ { - "$ref": "#/$defs/Project" + "items": { + "$ref": "#/$defs/ProjectGrant" + }, + "type": "array" }, { "type": "null" } ], "default": null, - "title": "Project" + "title": "Associated Project Grants" }, "datasetFilters": { "anyOf": [ { - "$ref": "#/$defs/DatasetFilters" + "items": { + "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", + "type": "string" + }, + "type": "array" }, { "type": "null" } ], "default": null, - "description": "Categorization tags regarding cancer type, data type, and access." + "description": "Categorization tags regarding cancer type, data type, and access.", + "title": "Datasetfilters" }, "erd": { "anyOf": [ diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 199c4b11..22881e58 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -6,7 +6,11 @@ from pydantic import BaseModel, Field, constr from hdr_schemata.models.GWDM.v2_0 import Gwdm20 -from hdr_schemata.models.CRUK.v1_0_0 import Cruk100, DatasetFilter as CrukDatasetFilter +from hdr_schemata.models.CRUK.v1_0_0 import ( + Cruk100, + DatasetFilter as CrukDatasetFilter, + ProjectGrant as CrukProjectGrant, +) from hdr_schemata.models.HDRUK.v4_0_0 import Hdruk400 from hdr_schemata.definitions.HDRUK import Description, OneHundredFiftyCharacters @@ -34,68 +38,7 @@ class Config: description: Optional[Description] = Field(None) -class Project(BaseModel): - class Config: - extra = "forbid" - - projectName: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Project Title", - description="May or may not be different to the Dataset Title", - ) - leadResearcher: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Lead Researcher", - examples=["Dr Smith"], - description="", - ) - leadResearchInstitute: Optional[OneHundredFiftyCharacters] = Field( - None, - title="Lead Research Institute", - examples=["Sussex University"], - description="", - ) - grantNumbers: Optional[LineSeparatedValues] = Field( - None, - title="Grant number(s)", - description="List of grant numbers separated by a line break", - examples=["A354t", "ropguadg"], - json_schema_extra={"guidance": "Normally specified on the grant acceptance letter"}, - ) - projectStartDate: Optional[str] = Field( - None, - title="Project Start Date", - description="Starting date of project grant.", - json_schema_extra={ - "guidance": ( - "Date on which the dataset project starts. This is normally set out in the grant contract " - "and will be different from the start of any data collection" - ) - }, - ) - projectEndDate: Optional[str] = Field( - None, - title="Project End Date", - description="Current end date of project grant.", - json_schema_extra={ - "guidance": ( - "Date on which the dataset project is currently projected to finish. This is normally set " - "out in the grant contract and will be different from the end of any data collection" - ) - }, - ) - projectScope: Optional[constr(min_length=5, max_length=500)] = Field( - None, - title="Project Scope", - description="data and biospecimens expected to result from the grant.", - examples=["Longitudinal genomic data including somatic mutations"], - json_schema_extra={ - "guidance": ( - "Short paragraph setting out the types of data / biospecimens likely to result from the " - "grant and the cancers covered" - ) - }, - ) +ProjectGrant = CrukProjectGrant def _truncate(value: Optional[str], max_length: int) -> Optional[str]: @@ -113,7 +56,9 @@ class Gwdm21(Gwdm20): title="Icons", description="Calculated categorization icons added during export.", ) - project: Optional[Project] = Field(None, title="Project") + projectGrants: Optional[List[ProjectGrant]] = Field( + None, title="Associated Project Grants" + ) datasetFilters: Optional[List[DatasetFilterItem]] = Field( None, description="Categorization tags regarding cancer type, data type, and access.", @@ -239,6 +184,12 @@ def to_cruk100_payload(self) -> Dict[str, Any]: # Validate/normalize against CRUK DatasetFilter shape filters.append(CrukDatasetFilter.model_validate(obj).model_dump(mode="json")) payload["datasetFilters"] = filters or None + if self.projectGrants is not None: + payload["projectGrants"] = [ + pg.model_dump(mode="json") if hasattr(pg, "model_dump") else pg + for pg in self.projectGrants + if pg is not None + ] or None if self.erd is not None: # CRUK expects a URL; GWDM carries an Image object. Prefer the image string if present. image_value = getattr(self.erd, "image", None) From b7f7528946e224751f47619c565c6b7d1bd875f0 Mon Sep 17 00:00:00 2001 From: Ayoola Olojede Date: Wed, 15 Apr 2026 12:05:13 +0100 Subject: [PATCH 18/18] fix(GWDM): model datasetFilters as objects Align GWDM 2.1 datasetFilters with CRUK 1.0.0 by using object items instead of JSON-encoded strings. --- hdr_schemata/models/GWDM/2.1/schema.json | 49 ++++++++++++++++++++++- hdr_schemata/models/GWDM/v2_1/__init__.py | 26 ++++-------- 2 files changed, 54 insertions(+), 21 deletions(-) diff --git a/hdr_schemata/models/GWDM/2.1/schema.json b/hdr_schemata/models/GWDM/2.1/schema.json index d49cc5c1..00f6a4ba 100644 --- a/hdr_schemata/models/GWDM/2.1/schema.json +++ b/hdr_schemata/models/GWDM/2.1/schema.json @@ -544,6 +544,52 @@ "title": "DatasetDescriptor", "type": "object" }, + "DatasetFilter": { + "additionalProperties": false, + "properties": { + "id": { + "pattern": "(\\d+_){0,5}\\d+", + "title": "Id", + "type": "string" + }, + "label": { + "maxLength": 150, + "minLength": 0, + "title": "Label", + "type": "string" + }, + "category": { + "maxLength": 150, + "minLength": 0, + "title": "Category", + "type": "string" + }, + "primaryGroup": { + "enum": [ + "cancer-type", + "data-type", + "access-type" + ], + "title": "Primary group", + "type": "string" + }, + "description": { + "maxLength": 150, + "minLength": 0, + "title": "Description", + "type": "string" + } + }, + "required": [ + "id", + "label", + "category", + "primaryGroup", + "description" + ], + "title": "DatasetFilter", + "type": "object" + }, "DatasetLinkage": { "additionalProperties": false, "properties": { @@ -2500,8 +2546,7 @@ "anyOf": [ { "items": { - "pattern": "\\{\\s*\"id\":\\s*\"(\\d+_){0,5}\\d+\",\\s*\"label\":\\s*\".{0,150}\",\\s*\"category\":\\s*\".{0,150}\",\\s*\"primaryGroup\":\\s*\"(cancer-type|data-type|access-type)\",\\s*\"description\":\\s*\".{0,150}\"\\s*\\}", - "type": "string" + "$ref": "#/$defs/DatasetFilter" }, "type": "array" }, diff --git a/hdr_schemata/models/GWDM/v2_1/__init__.py b/hdr_schemata/models/GWDM/v2_1/__init__.py index 22881e58..c0652e39 100644 --- a/hdr_schemata/models/GWDM/v2_1/__init__.py +++ b/hdr_schemata/models/GWDM/v2_1/__init__.py @@ -17,9 +17,7 @@ from .Summary import LineSeparatedValues, Summary -DatasetFilterItem = constr( - pattern=r'\{\s*"id":\s*"(\d+_){0,5}\d+",\s*"label":\s*".{0,150}",\s*"category":\s*".{0,150}",\s*"primaryGroup":\s*"(cancer-type|data-type|access-type)",\s*"description":\s*".{0,150}"\s*\}' -) +DatasetFilter = CrukDatasetFilter class Image(BaseModel): @@ -59,7 +57,7 @@ class Gwdm21(Gwdm20): projectGrants: Optional[List[ProjectGrant]] = Field( None, title="Associated Project Grants" ) - datasetFilters: Optional[List[DatasetFilterItem]] = Field( + datasetFilters: Optional[List[DatasetFilter]] = Field( None, description="Categorization tags regarding cancer type, data type, and access.", ) @@ -169,21 +167,11 @@ def to_cruk100_payload(self) -> Dict[str, Any]: if self.icons is not None: payload["icons"] = self.icons if self.datasetFilters is not None: - filters: List[Dict[str, Any]] = [] - for item in self.datasetFilters: - if item is None: - continue - raw = item.root if hasattr(item, "root") else item - if not isinstance(raw, str): - continue - try: - obj = json.loads(raw) - except Exception: - continue - if isinstance(obj, dict): - # Validate/normalize against CRUK DatasetFilter shape - filters.append(CrukDatasetFilter.model_validate(obj).model_dump(mode="json")) - payload["datasetFilters"] = filters or None + payload["datasetFilters"] = [ + df.model_dump(mode="json") if hasattr(df, "model_dump") else df + for df in self.datasetFilters + if df is not None + ] or None if self.projectGrants is not None: payload["projectGrants"] = [ pg.model_dump(mode="json") if hasattr(pg, "model_dump") else pg