From edb04b651346c739af01992c37e1595001fbe617 Mon Sep 17 00:00:00 2001 From: David Gault Date: Thu, 11 Jan 2024 12:57:27 +0000 Subject: [PATCH 1/2] Update handling and parsing of acquisition metadata --- src/loci/formats/in/ZarrReader.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/loci/formats/in/ZarrReader.java b/src/loci/formats/in/ZarrReader.java index 450706c..e046ec7 100644 --- a/src/loci/formats/in/ZarrReader.java +++ b/src/loci/formats/in/ZarrReader.java @@ -82,6 +82,7 @@ import ome.xml.model.StructuredAnnotations; import ome.xml.model.primitives.NonNegativeInteger; import ome.xml.model.primitives.PositiveInteger; +import ome.xml.model.primitives.Timestamp; import loci.formats.services.OMEXMLService; import loci.formats.services.ZarrService; @@ -752,14 +753,28 @@ private void parsePlate(Map attr, String root, String key, Metad Map acquistion = (Map) acquisitions.get(a); Integer acqId = (Integer) acquistion.get("id"); String acqName = (String) acquistion.get("name"); - String acqStartTime = (String) acquistion.get("starttime"); + String acqDescription = (String) acquistion.get("description"); + Integer acqStartTime = (Integer) acquistion.get("starttime"); + Integer acqEndTime = (Integer) acquistion.get("endtime"); Integer maximumfieldcount = (Integer) acquistion.get("maximumfieldcount"); acqIdsIndexMap.put(acqId, a); store.setPlateAcquisitionID( MetadataTools.createLSID("PlateAcquisition", 0, acqId), 0, a); - if (maximumfieldcount != null) { + if (acqName != null) { + store.setPlateAcquisitionName(acqName, 0, a); + } + if (acqDescription != null) { + store.setPlateAcquisitionDescription(acqDescription, 0, a); + } + if (acqDescription != null) { store.setPlateAcquisitionMaximumFieldCount(new PositiveInteger(maximumfieldcount), 0, a); } + if (acqStartTime != null) { + store.setPlateAcquisitionStartTime(new Timestamp(acqStartTime.toString()), 0, a); + } + if (acqEndTime != null) { + store.setPlateAcquisitionEndTime(new Timestamp(acqEndTime.toString()), 0, a); + } } } From e29d0696c821f66d93ebddc0705a1c4e13106a0b Mon Sep 17 00:00:00 2001 From: David Gault Date: Fri, 12 Jan 2024 11:22:06 +0000 Subject: [PATCH 2/2] Acquisition handling: fix maximumfieldcount check --- src/loci/formats/in/ZarrReader.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loci/formats/in/ZarrReader.java b/src/loci/formats/in/ZarrReader.java index e046ec7..c479223 100644 --- a/src/loci/formats/in/ZarrReader.java +++ b/src/loci/formats/in/ZarrReader.java @@ -766,7 +766,7 @@ private void parsePlate(Map attr, String root, String key, Metad if (acqDescription != null) { store.setPlateAcquisitionDescription(acqDescription, 0, a); } - if (acqDescription != null) { + if (maximumfieldcount != null) { store.setPlateAcquisitionMaximumFieldCount(new PositiveInteger(maximumfieldcount), 0, a); } if (acqStartTime != null) {