diff --git a/README.md b/README.md index be2c0125..abaa06e3 100644 --- a/README.md +++ b/README.md @@ -146,4 +146,40 @@ A valid JSON object can look like this: "tumor": "no" } } -``` \ No newline at end of file +``` + +### Attachment Data + +**Responsible dropbox:** +[QBiC-register-exp-proj-attachment](drop-boxes/register-attachments-dropbox) + +**openBIS structure:** + +Attachments are attached to the Q_PROJECT_DETAILS experiment type and its sample type Q_ATTACHMENT_SAMPLE. + +**Expected data structure** +The data structure needs to be a root folder, containing a file `metadata.txt`. + +Incoming structure overview: + +``` +|- (top level folder name, normally a time stamp of upload time) + | + |- metadata.txt +``` + +**Expected metadata** +Metadata is expected to be denoted in line-separated key-value pairs, where key and value are separated by a '='. The following structure/pairs are expected: + +``` +user= +info= +barcode= +type= +``` +The code of the attachment sample is built from the project code followed by three zeroes, conforming to the regular expression "Q[A-Z0-9]{4}000", e.g. QABCD000. + +See code examples: +https://github.com/qbicsoftware/attachi-cli/blob/master/attachi/attachi.py#L63 +https://github.com/qbicsoftware/projectwizard-portlet/blob/9c86f500b26af4cf2613cfae32e470bf5d50bf78/src/main/java/life/qbic/projectwizard/io/AttachmentMover.java#L145 + diff --git a/drop-boxes/register-attachments-dropbox/register-attachment-dropbox.py b/drop-boxes/register-attachments-dropbox/register-attachment-dropbox.py index cd82f564..27abd34c 100755 --- a/drop-boxes/register-attachments-dropbox/register-attachment-dropbox.py +++ b/drop-boxes/register-attachments-dropbox/register-attachment-dropbox.py @@ -92,18 +92,6 @@ def process(transaction): sa.setExperiment(exp) info = None - #if isProject: - #experiments = search_service.listExperiments("/" + space + "/" + project) - #for e in experiments: - # if project+"_INFO" in e.getExperimentIdentifier(): - # info = e - #if not info: - # info = transaction.createNewExperiment('/' + space + '/' + project + '/'+ project+'_INFO', "Q_PROJECT_DETAILS") - #else: - # info = transaction.getExperiment('/' + space + '/' + project + '/' + code) - # register new experiment and sample - #sa.setExperiment(info) - # create new dataset dataSet = transaction.createNewDataSet("Q_PROJECT_DATA") dataSet.setMeasuredData(False) dataSet.setPropertyValue("Q_SECONDARY_NAME", secname)