Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#! /usr/bin/env python
import commonImageDropbox
import commonDropbox
reload(commonImageDropbox)
reload(commonDropbox)
def setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, factory):
imageRegistrationDetails = factory.createImageRegistrationDetails(imageDataset, incoming)
for propertyCode, value in metadataParser.getDatasetPropertiesIter():
imageRegistrationDetails.setPropertyValue(propertyCode, value)
tr = service.transaction(incoming, factory)
dataset = tr.createNewDataSet(imageRegistrationDetails)
imageDataSetFolder = tr.moveFile(incoming.getPath(), dataset)
tr.commit()
commonDropbox.createSuccessStatus(iBrain2DatasetId, dataset, incoming.getPath())
# -------
# Global variable where we set the iBrain2 id of the dataset at the beginning,
# so that the rollback can use it as well.
iBrain2DatasetId = None
def register(incomingPath):
metadataParser = commonDropbox.DerivedDatasetMetadataParser(incomingPath)
iBrain2DatasetId = metadataParser.getIBrain2DatasetId()
openbisDatasetParent = metadataParser.getParentDatasetPermId()
(spaceOrError, plate) = commonDropbox.tryGetConnectedPlate(state, openbisDatasetParent)
if plate == None:
commonDropbox.RegistrationConfirmationUtils().createFailureStatus(iBrain2DatasetId, spaceOrError, incomingPath)
return
imageDataset = commonImageDropbox.IBrain2ImageDataSetConfig()
imageDataset.setOverviewImageDatasetType()
imageDataset.setPlate(spaceOrError, plate)
imageDataset.setFileFormatType("JPG")
imageDataset.setRecognizedImageExtensions(["jpg", "jpeg", "png", "gif"])
imageDataset.setStoreChannelsOnExperimentLevel(False)
imageDataset.setGenerateThumbnails(True)
imageDataset.setMaxThumbnailWidthAndHeight(imageDataset.THUMBANAIL_SIZE)
setPropertiesAndRegister(imageDataset, iBrain2DatasetId, metadataParser, incoming, factory)
def rollback_transaction(service, transaction, algorithmRunner, throwable):
commonDropbox.createFailureStatus(iBrain2DatasetId, throwable, incoming)
if incoming.isDirectory():
register(incoming.getPath())