Skip to content
Snippets Groups Projects
Commit 45c26320 authored by pkupczyk's avatar pkupczyk
Browse files

LMS-2735 - Screening S122 Cleanup - microscopy thumbnails should be placed in...

LMS-2735 - Screening S122 Cleanup - microscopy thumbnails should be placed in a data set with MICROSCOPY_IMG_OVERVIEW type (not HCS_IMAGE_OVERVIEW)

SVN: 24095
parent a5a6767c
No related branches found
No related tags found
No related merge requests found
Showing
with 2097 additions and 6 deletions
......@@ -24,7 +24,7 @@ package ch.systemsx.cisd.openbis.generic.server.dataaccess.db;
public final class DatabaseVersionHolder
{
/** Current version of the database. */
private static final String DATABASE_VERSION = "093"; // S123
private static final String DATABASE_VERSION = "094"; // S123
private DatabaseVersionHolder()
{
......
----------------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table DATABASE_INSTANCES
----------------------------------------------------------------------------
INSERT INTO database_instances(
id
, code
, uuid
, is_original_source)
VALUES ( nextval('DATABASE_INSTANCE_ID_SEQ')
, 'SYSTEM_DEFAULT'
, 'SYSTEM_DEFAULT'
, 'T');
----------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table PERSONS
-----------------------------------------------------------------------
insert into persons
(id
,first_name
,last_name
,user_id
,email
,dbin_id)
values
(nextval('PERSON_ID_SEQ')
,''
,'System User'
,'system'
,''
,(select id from database_instances where code = 'SYSTEM_DEFAULT') );
-----------------------------------------------------------------------------------
-- Purpose: Create Controlled Vocabulary STORAGE_FORMAT
-----------------------------------------------------------------------------------
insert into controlled_vocabularies
( id
, code
, is_internal_namespace
, description
, pers_id_registerer
, is_managed_internally
, dbin_id)
values (nextval('CONTROLLED_VOCABULARY_ID_SEQ')
, 'STORAGE_FORMAT'
, true
, 'The on-disk storage format of a data set'
, (select id from persons where user_id ='system')
, true
, (select id from database_instances where code = 'SYSTEM_DEFAULT'));
-----------------------------------------------------------------------------------
-- Purpose: Create Controlled Vocabulary Terms for STORAGE_FORMAT
-----------------------------------------------------------------------------------
insert into controlled_vocabulary_terms
( id
, code
, covo_id
, pers_id_registerer
, ordinal )
values (nextval('CVTE_ID_SEQ')
, 'PROPRIETARY'
, (select id from controlled_vocabularies where code = 'STORAGE_FORMAT' and is_internal_namespace = true)
, (select id from persons where user_id ='system')
, 1);
insert into controlled_vocabulary_terms
( id
, code
, covo_id
, pers_id_registerer
, ordinal)
values (nextval('CVTE_ID_SEQ')
, 'BDS_DIRECTORY'
, (select id from controlled_vocabularies where code = 'STORAGE_FORMAT' and is_internal_namespace = true)
, (select id from persons where user_id ='system')
, 2);
------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table DATA_TYPES
------------------------------------------------------------------
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'VARCHAR'
,'Short text'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'MULTILINE_VARCHAR'
,'Long text'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'INTEGER'
,'Integer number'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'REAL'
,'Real number, i.e. an inexact, variable-precision numeric type'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'BOOLEAN'
,'True or False'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'TIMESTAMP'
,'Both date and time. Format: yyyy-mm-dd hh:mm:ss'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'CONTROLLEDVOCABULARY'
,'Controlled Vocabulary'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'MATERIAL'
,'Reference to a material'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'HYPERLINK'
,'Address of a web page'
);
insert into data_types
(id
,code
,description)
values
(nextval('DATA_TYPE_ID_SEQ')
,'XML'
,'XML document'
);
----------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table PROPERTY_TYPES
-----------------------------------------------------------------------
insert into property_types
(id
,code
,description
,label
,daty_id
,pers_id_registerer
,dbin_id)
values
(nextval('PROPERTY_TYPE_ID_SEQ')
,'DESCRIPTION'
,'A Description'
,'Description'
,(select id from data_types where code ='VARCHAR')
,(select id from persons where user_id ='system')
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
--------------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table DATA_SET_TYPES
--------------------------------------------------------------------------
insert into data_set_types
(id
,code
,description
,dbin_id)
values
(nextval('DATA_SET_TYPE_ID_SEQ')
,'UNKNOWN'
,'Unknown'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
-------------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table FILE_FORMAT_TYPES
-------------------------------------------------------------------------
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'HDF5'
,'Hierarchical Data Format File, version 5'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'PROPRIETARY'
,'Proprietary Format File'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'SRF'
,'Sequence Read Format File'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'TIFF'
,'TIFF File'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'TSV'
,'Tab Separated Values File'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into file_format_types
(id
,code
,description
,dbin_id)
values
(nextval('FILE_FORMAT_TYPE_ID_SEQ')
,'XML'
,'XML File'
,(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
---------------------------------------------------------------------
-- Purpose: Insert an initial data set into the table LOCATOR_TYPES
---------------------------------------------------------------------
insert into locator_types
(id
,code
,description)
values
(nextval('LOCATOR_TYPE_ID_SEQ')
,'RELATIVE_LOCATION'
,'Relative Location'
);
---------------------------------------------------------------------
-- Purpose: Insert an initial data into table RELATIONSHIP_TYPES
---------------------------------------------------------------------
insert into relationship_types
(id,
code,
label,
parent_label,
child_label,
description,
pers_id_registerer,
is_managed_internally,
is_internal_namespace,
dbin_id)
values
(
nextval('RELATIONSHIP_TYPE_ID_SEQ'),
'PARENT_CHILD',
'Parent - Child',
'Parent',
'Child',
'Parent - Child relationship',
(select id from persons where user_id ='system'),
'T',
'T',
(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
insert into relationship_types
(id,
code,
label,
parent_label,
child_label,
description,
pers_id_registerer,
is_managed_internally,
is_internal_namespace,
dbin_id)
values
(
nextval('RELATIONSHIP_TYPE_ID_SEQ'),
'PLATE_CONTROL_LAYOUT',
'Plate - Control Layout',
'Plate',
'Control Layout',
'Plate - Control Layout relationship',
(select id from persons where user_id ='system'),
'T',
'T',
(select id from database_instances where code = 'SYSTEM_DEFAULT')
);
This diff is collapsed.
-- Creating domains
CREATE DOMAIN AUTHORIZATION_ROLE AS VARCHAR(40) CHECK (VALUE IN ('ADMIN', 'POWER_USER', 'USER', 'OBSERVER', 'ETL_SERVER'));
CREATE DOMAIN BOOLEAN_CHAR AS BOOLEAN DEFAULT FALSE;
CREATE DOMAIN BOOLEAN_CHAR_OR_UNKNOWN AS CHAR(1) DEFAULT 'U' CHECK (VALUE IN ('F', 'T', 'U'));
CREATE DOMAIN CODE AS VARCHAR(60);
CREATE DOMAIN COLUMN_LABEL AS VARCHAR(128);
CREATE DOMAIN DATA_STORE_SERVICE_KIND AS VARCHAR(40) CHECK (VALUE IN ('PROCESSING', 'QUERIES'));
CREATE DOMAIN DATA_STORE_SERVICE_REPORTING_PLUGIN_TYPE AS VARCHAR(40) CHECK (VALUE IN ('TABLE_MODEL', 'DSS_LINK'));
CREATE DOMAIN EVENT_TYPE AS VARCHAR(40) CHECK (VALUE IN ('DELETION', 'MOVEMENT'));
CREATE DOMAIN FILE AS BYTEA;
CREATE DOMAIN FILE_NAME AS VARCHAR(100);
CREATE DOMAIN TEXT_VALUE AS TEXT;
CREATE DOMAIN OBJECT_NAME AS VARCHAR(50);
CREATE DOMAIN REAL_VALUE AS REAL;
CREATE DOMAIN TECH_ID AS BIGINT;
CREATE DOMAIN TIME_STAMP AS TIMESTAMP WITH TIME ZONE;
CREATE DOMAIN TIME_STAMP_DFL AS TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT CURRENT_TIMESTAMP;
CREATE DOMAIN USER_ID AS VARCHAR(50);
CREATE DOMAIN TITLE_100 AS VARCHAR(100);
CREATE DOMAIN GRID_EXPRESSION AS VARCHAR(2000);
CREATE DOMAIN GRID_ID AS VARCHAR(200);
CREATE DOMAIN ORDINAL_INT AS BIGINT CHECK (VALUE > 0);
CREATE DOMAIN DESCRIPTION_2000 AS VARCHAR(2000);
CREATE DOMAIN ARCHIVING_STATUS AS VARCHAR(100) CHECK (VALUE IN ('LOCKED', 'AVAILABLE', 'ARCHIVED', 'ARCHIVE_PENDING', 'UNARCHIVE_PENDING', 'BACKUP_PENDING'));
CREATE DOMAIN QUERY_TYPE AS VARCHAR(40) CHECK (VALUE IN ('GENERIC', 'EXPERIMENT', 'SAMPLE', 'DATA_SET', 'MATERIAL'));
CREATE DOMAIN ENTITY_KIND AS VARCHAR(40) CHECK (VALUE IN ('SAMPLE', 'EXPERIMENT', 'DATA_SET', 'MATERIAL'));
CREATE DOMAIN SCRIPT_TYPE AS VARCHAR(40) CHECK (VALUE IN ('DYNAMIC_PROPERTY', 'MANAGED_PROPERTY'));
\ No newline at end of file
This diff is collapsed.
-- Granting SELECT privilege to group OPENBIS_READONLY
GRANT SELECT ON SEQUENCE attachment_content_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE attachment_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE code_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE controlled_vocabulary_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE core_plugin_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE cvte_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_set_property_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_set_relationship_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_set_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_store_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE DATA_STORE_SERVICES_ID_SEQ TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE data_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE database_instance_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE dstpt_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE etpt_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE event_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE experiment_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE experiment_property_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE experiment_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE file_format_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE space_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE deletion_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE locator_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE material_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE material_property_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE material_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE mtpt_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE perm_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE person_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE project_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE property_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE role_assignment_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE sample_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE sample_property_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE sample_type_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE stpt_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE authorization_group_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE filter_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON SEQUENCE query_id_seq TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE attachment_contents TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE attachments TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE controlled_vocabularies TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE controlled_vocabulary_terms TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE core_plugins TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_all TO GROUP OPENBIS_READONLY;
GRANT SELECT ON data TO GROUP OPENBIS_READONLY;
GRANT SELECT ON data_deleted TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_set_properties TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_set_properties_history TO GROUP OPENBIS_READONLY;
GRANT SELECT ON data_set_relationships TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_set_relationships_all TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_set_type_property_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_set_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_stores TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE data_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE DATA_STORE_SERVICES TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE DATA_STORE_SERVICE_DATA_SET_TYPES TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE database_instances TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE database_version_logs TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE events TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE experiment_properties TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE experiment_properties_history TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE experiment_type_property_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE experiment_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE experiments_all TO GROUP OPENBIS_READONLY;
GRANT SELECT ON experiments TO GROUP OPENBIS_READONLY;
GRANT SELECT ON experiments_deleted TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE external_data TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE file_format_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE spaces TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE deletions TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE locator_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE material_properties TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE material_properties_history TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE material_type_property_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE material_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE materials TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE persons TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE projects TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE property_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE role_assignments TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE sample_properties TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE sample_properties_history TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE sample_type_property_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE sample_types TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE samples_all TO GROUP OPENBIS_READONLY;
GRANT SELECT ON samples TO GROUP OPENBIS_READONLY;
GRANT SELECT ON samples_deleted TO GROUP OPENBIS_READONLY;
GRANT SELECT ON sample_relationships TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE sample_relationships_all TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE authorization_groups TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE authorization_group_persons TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE filters TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE queries TO GROUP OPENBIS_READONLY;
GRANT SELECT ON TABLE scripts TO GROUP OPENBIS_READONLY;
-- Migration from 093 to 094 (see screening)
......@@ -170,6 +170,10 @@ data_set_type_HCS_IMAGE_OVERVIEW = tr.createNewDataSetType('HCS_IMAGE_OVERVIEW')
data_set_type_HCS_IMAGE_OVERVIEW.setDescription('Overview High Content Screening Images. Generated from raw images.')
data_set_type_HCS_IMAGE_OVERVIEW.setContainerType(False)
data_set_type_MICROSCOPY_IMG_OVERVIEW = tr.createNewDataSetType('MICROSCOPY_IMG_OVERVIEW')
data_set_type_MICROSCOPY_IMG_OVERVIEW.setDescription('Overview Microscopy Images. Generated from raw images.')
data_set_type_MICROSCOPY_IMG_OVERVIEW.setContainerType(False)
data_set_type_HCS_IMAGE_RAW = tr.createNewDataSetType('HCS_IMAGE_RAW')
data_set_type_HCS_IMAGE_RAW.setDescription('Raw High Content Screening Images')
data_set_type_HCS_IMAGE_RAW.setContainerType(False)
......@@ -342,6 +346,11 @@ assignment_DATA_SET_HCS_IMAGE_OVERVIEW_RESOLUTION.setMandatory(False)
assignment_DATA_SET_HCS_IMAGE_OVERVIEW_RESOLUTION.setSection(None)
assignment_DATA_SET_HCS_IMAGE_OVERVIEW_RESOLUTION.setPositionInForms(1)
assignment_DATA_SET_MICROSCOPY_IMG_OVERVIEW_RESOLUTION = tr.assignPropertyType(data_set_type_MICROSCOPY_IMG_OVERVIEW, prop_type_RESOLUTION)
assignment_DATA_SET_MICROSCOPY_IMG_OVERVIEW_RESOLUTION.setMandatory(False)
assignment_DATA_SET_MICROSCOPY_IMG_OVERVIEW_RESOLUTION.setSection(None)
assignment_DATA_SET_MICROSCOPY_IMG_OVERVIEW_RESOLUTION.setPositionInForms(1)
assignment_SAMPLE_PLATE_PLATE_GEOMETRY = tr.assignPropertyType(samp_type_PLATE, prop_type_PLATE_GEOMETRY)
assignment_SAMPLE_PLATE_PLATE_GEOMETRY.setMandatory(True)
assignment_SAMPLE_PLATE_PLATE_GEOMETRY.setSection(None)
......
......@@ -207,7 +207,8 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler<Data
DataSetRegistrationService<ImageDataSetInformation> service)
{
DataSetRegistrationTransaction<ImageDataSetInformation> transaction =
service.transaction(incomingDatasetFolder, service.getDataSetRegistrationDetailsFactory());
service.transaction(incomingDatasetFolder,
service.getDataSetRegistrationDetailsFactory());
IDataSet newDataset = transaction.createNewDataSet(imageDatasetDetails);
transaction.moveFile(incomingDatasetFolder.getPath(), newDataset);
return transaction.commit();
......@@ -439,7 +440,8 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler<Data
ThumbnailsInfo thumbnailsInfo = new ThumbnailsInfo();
for (ThumbnailsStorageFormat thumbnailsStorageFormat : thumbnailsStorageFormatList)
{
IDataSet thumbnailDataset = createThumbnailDataset(thumbnailsStorageFormat);
IDataSet thumbnailDataset =
createThumbnailDataset(imageDataSetInformation, thumbnailsStorageFormat);
thumbnailDatasets.add(thumbnailDataset);
generateThumbnails(imageDataSetStructure, incomingDirectory, thumbnailDataset,
......@@ -532,10 +534,12 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler<Data
}
}
private IDataSet createThumbnailDataset(ThumbnailsStorageFormat thumbnailsStorageFormat)
private IDataSet createThumbnailDataset(ImageDataSetInformation imageDataSetInformation,
ThumbnailsStorageFormat thumbnailsStorageFormat)
{
IDataSet thumbnailDataset =
createNewDataSet(ScreeningConstants.DEFAULT_OVERVIEW_IMAGE_DATASET_TYPE);
String thumbnailsDatasetTypeCode =
findThumbnailsDatasetTypeCode(imageDataSetInformation);
IDataSet thumbnailDataset = createNewDataSet(thumbnailsDatasetTypeCode);
thumbnailDataset.setFileFormatType(thumbnailsStorageFormat.getFileFormat()
.getOpenBISFileType());
thumbnailDataset.setMeasuredData(false);
......@@ -624,6 +628,30 @@ public class JythonPlateDataSetHandler extends JythonTopLevelDataSetHandler<Data
}
}
private static String findThumbnailsDatasetTypeCode(
ImageDataSetInformation imageDataSetInformation)
{
String dataSetTypeCode =
imageDataSetInformation.getDataSetType().getCode().toUpperCase();
if (isHCSImageDataSetType(dataSetTypeCode))
{
return ScreeningConstants.HCS_IMAGE_DATASET_TYPE_PREFIX
+ ScreeningConstants.IMAGE_THUMBNAIL_DATASET_TYPE_MARKER;
} else if (isMicroscopyImageDataSetType(dataSetTypeCode))
{
return dataSetTypeCode.replace(ScreeningConstants.MICROSCOPY_IMAGE_TYPE_SUBSTRING,
ScreeningConstants.MICROSCOPY_THUMBNAIL_TYPE_SUBSTRING);
} else
{
throw UserFailureException
.fromTemplate(
"The image dataset type '%s' is neither standard HCS type (starts with '%s') nor a microscopy type (contains '%s').",
dataSetTypeCode, ScreeningConstants.HCS_IMAGE_DATASET_TYPE_PREFIX,
ScreeningConstants.MICROSCOPY_IMAGE_SAMPLE_TYPE_PATTERN);
}
}
private static void setSameDatasetOwner(IDataSet templateDataset,
IDataSet destinationDataset)
{
......
......@@ -44,6 +44,12 @@ public class ScreeningConstants
*/
public static final String IMAGE_CONTAINER_DATASET_TYPE_MARKER = "_CONTAINER";
/**
* All image datasets (both hcs and microscopy) which contain this marker in the dataset type
* code are considered to be thumbnail datasets.
*/
public static final String IMAGE_THUMBNAIL_DATASET_TYPE_MARKER = "_OVERVIEW";
// --- HCS dataset types
/** Prefix of a dataset's type which stores hcs data. */
......@@ -104,6 +110,9 @@ public class ScreeningConstants
public static final String MICROSCOPY_CONTAINER_TYPE_SUBSTRING =
MICROSCOPY_IMAGE_TYPE_SUBSTRING + "_CONTAINER";
public static final String MICROSCOPY_THUMBNAIL_TYPE_SUBSTRING =
MICROSCOPY_IMAGE_TYPE_SUBSTRING + "_OVERVIEW";
/** type of the dataset which stores microscopy images. */
public static final String ANY_MICROSCOPY_IMAGE_DATASET_TYPE_PATTERN = "MICROSCOPY_IMAGE|"// legacy
+ MICROSCOPY_IMAGE_TYPE_PATTERN;
......
-------------------------------------------------------
-- Create MICROSCOPY_IMG_OVERVIEW data set type
-------------------------------------------------------
insert into data_set_types (id, code, description, dbin_id, is_container) values (
nextval('data_set_type_id_seq'),
'MICROSCOPY_IMG_OVERVIEW',
'Overview Microscopy Images. Generated from raw images.',
(select id from database_instances where is_original_source = 'T'),
'F'
);
-----------------------------------------------------------------------
-- Assign RESOLUTION property to MICROSCOPY_IMG_OVERVIEW data set type
-----------------------------------------------------------------------
CREATE OR REPLACE FUNCTION assign_resolution_property() RETURNS integer AS $$
DECLARE
rec RECORD;
next_ordinal ordinal_int;
BEGIN
FOR rec IN select id from data_set_types where code = 'MICROSCOPY_IMG_OVERVIEW' LOOP
next_ordinal = (select max(ordinal)+1 from data_set_type_property_types where id = rec.id);
if next_ordinal is null then
next_ordinal = 1;
end if;
insert into data_set_type_property_types
( id
,dsty_id
,prty_id
,is_mandatory
,is_managed_internally
,pers_id_registerer
,ordinal
)
values
(nextval('DSTPT_ID_SEQ')
,rec.id
,(select id from property_types where code = 'RESOLUTION' and is_internal_namespace = true)
,false
,false
,(select id from persons where user_id ='system')
,next_ordinal
);
END LOOP;
RETURN 1;
END;
$$ LANGUAGE 'plpgsql';
SELECT assign_resolution_property();
DROP FUNCTION assign_resolution_property();
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment