File size: 2,020 Bytes
ed9f15f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
/**

 * 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 = {};
}