Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 1x 1x 15x 15x 5x 15x 513x 1x | import { addProvider } from '../metaData';
let state: Record<string, any> = {}; // Calibrated pixel spacing per imageId
/**
* Simple metadata provider that stores some sort of meta data for each imageId.
*/
const metadataProvider = {
/**
* Adds metadata for an imageId.
* @param imageId - the imageId for the metadata to store
* @param payload - the payload
*/
add: (imageId: string, payload: any): void => {
const type = payload.type;
if (!state[imageId]) {
state[imageId] = {};
}
// Use the raw metadata, or create a deep copy of payload.metadata
state[imageId][type] =
payload.rawMetadata ?? structuredClone(payload.metadata);
},
/**
* Returns the metadata for an imageId if it exists.
* @param type - the type of metadata to enquire about
* @param imageId - the imageId to enquire about
*/
get: (type: string, imageId: string): any => {
return state[imageId]?.[type];
},
/**
* Clears all metadata.
*/
clear: (): void => {
state = {};
},
};
addProvider(metadataProvider.get);
export default metadataProvider;
|