@@ -5764,43 +5764,45 @@ window.openPage = async (targetPageID) => {
5764
5764
5765
5765
// Helper function to create an object with required properties for a derivative image file
5766
5766
// guidedMicroFileConvertedImagesPath *************************
5767
- const createDerivativeImageFileObject = (fileName, extension) => ({
5767
+ const createDerivativeImageFileObject = (
5768
+ primaryImageFilePath,
5769
+ relativePathToPrimarySourceImage,
5770
+ postConversionExtension
5771
+ ) => ({
5768
5772
path: primaryImageFilePath,
5769
5773
type: "local",
5770
- description: `Image derived from ${pathToPrimaryImage}/${fileName} . Converted to ${extension } with MicroFile+ (RRID:SCR_018724) from MBF Bioscience. Microscopy metadata included in the file header.`,
5774
+ description: `Image derived from ${relativePathToPrimarySourceImage} . Converted to ${postConversionExtension } with MicroFile+ (RRID:SCR_018724) from MBF Bioscience. Microscopy metadata included in the file header.`,
5771
5775
"additional-metadata": "",
5772
5776
action: ["future-microscopy-image-derivative"],
5773
- extension,
5774
- "derivative-image-source-folder": pathToPrimaryImage,
5777
+ extension: postConversionExtension,
5775
5778
});
5776
5779
5777
5780
const createDerivativeFolderPlaceHolderForFutureMicroscopyimageConversions = (
5778
5781
relativePathToPrimaryImage,
5779
5782
primaryImageFilePath
5780
5783
) => {
5781
- // Declare variables used to create the derivative folder structure and file objects
5784
+ // EG ['derivative', 'sub-1', '1-images'] used to create the derivative image target folders
5782
5785
const relativePathArrayToDeriviativeImage = [
5783
5786
"derivative",
5784
5787
...relativePathToPrimaryImage.split("/").slice(0, -1).slice(1),
5785
5788
];
5786
- console.log("relativePathArrayToDeriviativeImage:", relativePathArrayToDeriviativeImage);
5789
+
5790
+ // Create the derivative image file names
5787
5791
const fileName = window.path.basename(primaryImageFilePath);
5788
5792
const fileExtension = window.path.extname(primaryImageFilePath);
5789
5793
const convertedJp2FileName = fileName.replace(fileExtension, ".jp2");
5790
5794
const convertedOmeTiffFileName = fileName.replace(fileExtension, ".ome.tif");
5791
- const datasetPathToPrimaryImage = relativePathToPrimaryImage.replace(
5795
+
5796
+ // EG 'derivative/sub-1/1-images/image-1.jpg' used to show where the images will be placed
5797
+ const relativePathToDerivativeImage = relativePathToPrimaryImage.replace(
5792
5798
"primary/",
5793
5799
"derivative/"
5794
5800
);
5795
5801
5796
- console.log("convertedJp2FileName:", convertedJp2FileName);
5797
- console.log("convertedOmeTiffFileName:", convertedOmeTiffFileName);
5798
- // Create the derivative folder path
5802
+ // Ensure the folder structure exists for the derivative image
5799
5803
let currentFolder = window.datasetStructureJSONObj;
5800
- // Create the folders if they don't exist
5801
5804
relativePathArrayToDeriviativeImage.forEach((folder) => {
5802
- if (!currentFolder["folders"][folder]) {
5803
- console.log("Folder does not exist, creating it");
5805
+ if (!currentFolder["folders"]?.[folder]) {
5804
5806
currentFolder["folders"][folder] = newEmptyFolderObj();
5805
5807
}
5806
5808
currentFolder = currentFolder["folders"][folder];
@@ -5809,35 +5811,32 @@ window.openPage = async (targetPageID) => {
5809
5811
// Add .jp2 file if it doesn't already exist
5810
5812
if (!currentFolder["files"][convertedJp2FileName]) {
5811
5813
derivativeImagePreviewsGenerated.push(
5812
- `${datasetPathToPrimaryImage }/${convertedJp2FileName}`
5814
+ `${relativePathToDerivativeImage }/${convertedJp2FileName}`
5813
5815
);
5814
5816
currentFolder["files"][convertedJp2FileName] = createDerivativeImageFileObject(
5815
- fileName,
5817
+ primaryImageFilePath,
5818
+ relativePathToPrimaryImage,
5816
5819
".jp2"
5817
5820
);
5818
5821
}
5819
- currentFolder["files"][convertedJp2FileName] = createDerivativeImageFileObject(
5820
- fileName,
5821
- ".jp2"
5822
- );
5823
5822
5824
5823
// Add .ome.tif file if it doesn't already exist
5825
5824
if (!currentFolder["files"][convertedOmeTiffFileName]) {
5826
5825
derivativeImagePreviewsGenerated.push(
5827
- `${datasetPathToPrimaryImage }/${convertedOmeTiffFileName}`
5826
+ `${relativePathToDerivativeImage }/${convertedOmeTiffFileName}`
5828
5827
);
5829
5828
currentFolder["files"][convertedOmeTiffFileName] = createDerivativeImageFileObject(
5830
- fileName,
5829
+ primaryImageFilePath,
5830
+ relativePathToPrimaryImage,
5831
5831
".ome.tif"
5832
5832
);
5833
5833
}
5834
-
5835
- console.log("Folder for derivative image:", currentFolder);
5836
5834
};
5837
-
5835
+ // Get the relative paths array to the primary images to the primary images
5836
+ // e.g. ['primary/sub-1/1-images/sub-1-slide-1.jpg'] and create derivative folder placeholders
5837
+ // for future microscopy image conversions in the datasetStructureJSONObj
5838
5838
for (const image of microscopyImages) {
5839
5839
const relativeFolderPathsToPrimaryImages = image["relativeDatasetStructurePaths"];
5840
-
5841
5840
for (const relativeFolderPathToPrimaryImage of relativeFolderPathsToPrimaryImages) {
5842
5841
try {
5843
5842
createDerivativeFolderPlaceHolderForFutureMicroscopyimageConversions(
0 commit comments