mirror of
https://github.com/gauvainboiche/ketapk.git
synced 2026-09-02 11:13:11 +02:00
fix: Docker deployment
This commit is contained in:
+45
-18
@@ -1,38 +1,65 @@
|
||||
import { CalculatorEngine } from '../pkCore.js';
|
||||
import { CalculatorEngine } from '../../pkCore.js';
|
||||
|
||||
export function initCalculatorUI() {
|
||||
const weightInput = document.getElementById('calcWeight');
|
||||
const concInput = document.getElementById('calcConc');
|
||||
const modal = document.getElementById('modalCalc');
|
||||
const btnOpen = document.getElementById('btnOpenCalc');
|
||||
const btnClose = document.getElementById('btnCloseCalc');
|
||||
|
||||
// Conversion Bolus
|
||||
if (!modal || !btnOpen || !btnClose) return;
|
||||
|
||||
// 1. Ouverture de la modale & synchronisation avec le formulaire principal
|
||||
btnOpen.addEventListener('click', () => {
|
||||
const mainWeight = document.getElementById('inputWeight')?.value || 70;
|
||||
const mainConc = document.getElementById('inputConc')?.value || 5;
|
||||
|
||||
document.getElementById('calcWeight').value = mainWeight;
|
||||
document.getElementById('calcConc').value = mainConc;
|
||||
|
||||
modal.classList.remove('hidden');
|
||||
});
|
||||
|
||||
// 2. Fermeture via le bouton X
|
||||
btnClose.addEventListener('click', () => {
|
||||
modal.classList.add('hidden');
|
||||
});
|
||||
|
||||
// 3. Fermeture au clic sur le fond sombre
|
||||
modal.addEventListener('click', (e) => {
|
||||
if (e.target === modal) {
|
||||
modal.classList.add('hidden');
|
||||
}
|
||||
});
|
||||
|
||||
// 4. Logique de conversion en temps réel
|
||||
const calcWeightInput = document.getElementById('calcWeight');
|
||||
const mgInput = document.getElementById('calcMg');
|
||||
const mgKgInput = document.getElementById('calcMgKg');
|
||||
|
||||
// Conversion Perfusion
|
||||
const mgKgHInput = document.getElementById('calcMgKgH');
|
||||
const ugKgMinInput = document.getElementById('calcUgKgMin');
|
||||
|
||||
// 1. Bolus mg <-> mg/kg
|
||||
const getWeight = () => parseFloat(calcWeightInput.value) || 70;
|
||||
|
||||
// Bolus : mg -> mg/kg
|
||||
mgInput.addEventListener('input', () => {
|
||||
const w = parseFloat(weightInput.value) || 70;
|
||||
const mg = parseFloat(mgInput.value) || 0;
|
||||
mgKgInput.value = CalculatorEngine.mgToMgKg(mg, w).toFixed(2);
|
||||
const mg = parseFloat(mgInput.value);
|
||||
mgKgInput.value = isNaN(mg) ? '' : (mg / getWeight()).toFixed(2);
|
||||
});
|
||||
|
||||
// Bolus : mg/kg -> mg
|
||||
mgKgInput.addEventListener('input', () => {
|
||||
const w = parseFloat(weightInput.value) || 70;
|
||||
const mgKg = parseFloat(mgKgInput.value) || 0;
|
||||
mgInput.value = CalculatorEngine.mgKgToMg(mgKg, w).toFixed(1);
|
||||
const mgKg = parseFloat(mgKgInput.value);
|
||||
mgInput.value = isNaN(mgKg) ? '' : (mgKg * getWeight()).toFixed(1);
|
||||
});
|
||||
|
||||
// 2. Vitesse mg/kg/h <-> µg/kg/min
|
||||
// Perfusion : mg/kg/h -> µg/kg/min
|
||||
mgKgHInput.addEventListener('input', () => {
|
||||
const mgKgH = parseFloat(mgKgHInput.value) || 0;
|
||||
ugKgMinInput.value = CalculatorEngine.mgKgHToMicrogKgMin(mgKgH).toFixed(1);
|
||||
const mgKgH = parseFloat(mgKgHInput.value);
|
||||
ugKgMinInput.value = isNaN(mgKgH) ? '' : CalculatorEngine.mgKgHToMicrogKgMin(mgKgH).toFixed(1);
|
||||
});
|
||||
|
||||
// Perfusion : µg/kg/min -> mg/kg/h
|
||||
ugKgMinInput.addEventListener('input', () => {
|
||||
const ugKgMin = parseFloat(ugKgMinInput.value) || 0;
|
||||
mgKgHInput.value = CalculatorEngine.microgKgMinToMgKgH(ugKgMin).toFixed(2);
|
||||
const ug = parseFloat(ugKgMinInput.value);
|
||||
mgKgHInput.value = isNaN(ug) ? '' : CalculatorEngine.microgKgMinToMgKgH(ug).toFixed(2);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user