/** * Application State Management */ export const appState = { models: { classifier: null, poorGood: null, grader: null, yolo: null }, croppedEmbryos: [], embryoResults: [], embryoRemarks: {}, // Store remarks for each embryo by index currentEmbryoIndex: 0, currentImage: null, zoomLevel: 1, finalResult: null }; /** * Update model state */ export function setModel(modelName, model) { appState.models[modelName] = model; } /** * Get model by name */ export function getModel(modelName) { return appState.models[modelName]; } /** * Set cropped embryos */ export function setCroppedEmbryos(embryos) { appState.croppedEmbryos = embryos; appState.currentEmbryoIndex = 0; } /** * Get current embryo */ export function getCurrentEmbryo() { return appState.croppedEmbryos[appState.currentEmbryoIndex]; } /** * Set current image */ export function setCurrentImage(imageData) { appState.currentImage = imageData; } /** * Update zoom level */ export function setZoomLevel(level) { appState.zoomLevel = level; } /** * Get zoom level */ export function getZoomLevel() { return appState.zoomLevel; } /** * Set current embryo index */ export function setCurrentEmbryoIndex(index) { appState.currentEmbryoIndex = index; } /** * Get embryo count */ export function getEmbryoCount() { return appState.croppedEmbryos.length; } /** * Set remark for an embryo */ export function setEmbryoRemark(index, remark) { appState.embryoRemarks[index] = remark; } /** * Get remark for an embryo */ export function getEmbryoRemark(index) { return appState.embryoRemarks[index] || ''; } /** * Get all remarks */ export function getAllRemarks() { return appState.embryoRemarks; } /** * Clear all remarks */ export function clearAllRemarks() { appState.embryoRemarks = {}; }