refacto: Exporting is now in CSV the values + auto gestion of perfusion

This commit is contained in:
gauvainboiche
2026-08-02 14:44:03 +02:00
parent c0843ed083
commit abe44eca1d
9 changed files with 646 additions and 217 deletions
+60 -38
View File
@@ -1,56 +1,78 @@
{
"app": {
"title": "药代动力学",
"version": "v1.00 • 乔治·米翁博士"
"title": "药代动力学模拟",
"version": "v1.00 • Dr Georges Mion"
},
"nav": {
"mode_esk": "艾斯克塔明",
"mode_rac": "消旋",
"mode_esk": "右旋氯胺酮",
"mode_rac": "消旋氯胺酮",
"calculator": "计算器",
"export_pdf": "导出 PDF",
"export_csv": "导出 CSV",
"raz": "重置"
},
"patient": {
"title": "患者参数",
"weight": "体重 (kg)",
"age": "年龄 (岁)",
"height": "身高 (cm)",
"concentration": "药物浓度 (mg/mL)"
"name_label": "患者姓名",
"name_placeholder": "例如:张三",
"weight_label": "患者体重 (kg)",
"weight_warning": "⚠️ 药代动力学模型仅在 30 - 120 kg 范围内保证准确性。",
"infusion_unit_label": "连续输注单位"
},
"models": {
"title": "药代动力学模型"
"units": {
"mg_kg_h": "mg / kg / h",
"mcg_kg_min": "µg / kg / min",
"mg_h": "mg / h (固定剂量)"
},
"timeline": {
"title": "给药与输液时间线 (0 - 300 分钟)",
"scroll_hint": "水平滚动 👉",
"bolus": "bolus 剂量 (mg)",
"perf": "输注速率 (mg/kg/h)"
"buttons": {
"export_csv": "📊 导出 CSV 数据 (ng/mL)"
},
"calculator": {
"title": "计算器与剂量换算",
"patient_weight": "患者体重",
"drug_conc": "浓度",
"bolus_header": "推注剂量换算",
"total_dose": "总剂量 (mg)",
"relative_dose": "相对剂量 (mg/kg)",
"infusion_header": "输液换算",
"rate_mgkgh": "速率 (mg/kg/h)",
"rate_ugkgmin": "速率 (µg/kg/min)"
"table": {
"summary_title": "🔍 浓度计算控制表 (0 - 300 min)",
"summary_subtitle": "点击展开/折叠",
"col_time": "时间",
"col_bolus": "负荷剂量 (mg)",
"col_infusion": "有效输注",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"csv": {
"title": "KetaPK - 原始数据报告",
"weight": "患者体重 (kg)",
"unit": "输注单位",
"col_time": "时间 (min)",
"col_bolus": "负荷剂量 (mg)",
"col_infusion": "有效输注速率",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"zones": {
"inactive": "活性",
"anti_hyperalgesic": "抗痛觉过敏",
"analgesia": "镇痛",
"psychedelic": "致幻",
"emergence": "苏醒",
"inactive": "活性",
"anti_hyperalgesic": "抗痛觉过敏",
"analgesia": "镇痛",
"psychedelic": "致幻",
"emergence": "苏醒",
"narcosis": "麻醉",
"excessive": "过量"
},
"pdf": {
"title": "KetaPK - 药代动力学模拟报告",
"date": "模拟日期:",
"mode": "所选模式:",
"patient_info": "患者:体重 {weight} 公斤 | 年龄 {age} 岁 | 身高 {height} 厘米",
"disclaimer": "由 KetaPK Web 生成。请仔细核对"
"models": {
"title": "📈 药代动力学模型"
},
"timeline": {
"title": "⏱️ 给药与输注按时间录入 (0 - 300 min)",
"scroll_hint": "横向滚动 👉",
"bolus": "负荷剂量 (mg)",
"perf": "输注速率"
},
"calculator": {
"title": "计算器与剂量转换",
"patient_weight": "患者体重",
"drug_conc": "浓度",
"bolus_header": "负荷剂量转换",
"total_dose": "总剂量 (mg)",
"relative_dose": "相对剂量 (mg/kg)",
"infusion_header": "输注速率转换",
"rate_mgkgh": "速率 (mg/kg/h)",
"rate_ugkgmin": "速率 (µg/kg/min)"
}
}
+52 -30
View File
@@ -7,50 +7,72 @@
"mode_esk": "ESKETAMINE",
"mode_rac": "RACEMIC",
"calculator": "Calculator",
"export_pdf": "Export PDF",
"export_csv": "Export CSV",
"raz": "Reset"
},
"patient": {
"title": "Patient Parameters",
"weight": "Weight (kg)",
"age": "Age (years)",
"height": "Height (cm)",
"concentration": "Drug Concentration (mg/mL)"
"name_label": "Patient Name",
"name_placeholder": "e.g. SMITH John",
"weight_label": "Patient Weight (kg)",
"weight_warning": "⚠️ Pharmacokinetic models are not guaranteed outside the 30 - 120 kg range.",
"infusion_unit_label": "Continuous infusion unit"
},
"models": {
"title": "PK Models"
"units": {
"mg_kg_h": "mg / kg / h",
"mcg_kg_min": "µg / kg / min",
"mg_h": "mg / h (fixed dose)"
},
"timeline": {
"title": "Chronological Dosing & Infusion (0 - 300 min)",
"scroll_hint": "Horizontal scroll 👉",
"bolus": "Bolus (mg)",
"perf": "Infusion (mg/kg/h)"
"buttons": {
"export_csv": "📊 Export CSV values (ng/mL)"
},
"calculator": {
"title": "Calculator & Dose Conversions",
"patient_weight": "Patient Weight",
"drug_conc": "Concentration",
"bolus_header": "Bolus Conversion",
"total_dose": "Total Dose (mg)",
"relative_dose": "Relative Dose (mg/kg)",
"infusion_header": "Infusion Conversion",
"rate_mgkgh": "Rate (mg/kg/h)",
"rate_ugkgmin": "Rate (µg/kg/min)"
"table": {
"summary_title": "🔍 Concentration Control Table (0 - 300 min)",
"summary_subtitle": "Click to expand/collapse",
"col_time": "Time",
"col_bolus": "Bolus (mg)",
"col_infusion": "Active Infusion",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"csv": {
"title": "KetaPK - Raw Data Report",
"weight": "Patient weight (kg)",
"unit": "Infusion unit",
"col_time": "Time (min)",
"col_bolus": "Bolus (mg)",
"col_infusion": "Active infusion",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"zones": {
"inactive": "Inactive",
"anti_hyperalgesic": "Anti-Hyperalgesic",
"anti_hyperalgesic": "Anti-hyperalgesic",
"analgesia": "Analgesia",
"psychedelic": "Psychedelic",
"emergence": "Emergence",
"narcosis": "Narcosis",
"excessive": "Excessive"
},
"pdf": {
"title": "KetaPK - Pharmacokinetic Simulation Report",
"date": "Simulation Date: ",
"mode": "Selected Mode: ",
"patient_info": "Patient: Weight {weight} kg | Age {age} yrs | Height {height} cm",
"disclaimer": "Generated by KetaPK Web. Please double-check."
"models": {
"title": "Pharmacokinetic Models"
},
"timeline": {
"title": "Chronological Doses & Infusion Entry (0 - 300 min)",
"scroll_hint": "Horizontal scroll 👉",
"bolus": "Bolus (mg)",
"perf": "Infusion rate"
},
"calculator": {
"title": "Calculator & Dose Conversions",
"patient_weight": "Patient Weight",
"drug_conc": "Concentration",
"bolus_header": "Bolus Conversion",
"total_dose": "Total dose (mg)",
"relative_dose": "Relative dose (mg/kg)",
"infusion_header": "Infusion Conversion",
"rate_mgkgh": "Rate (mg/kg/h)",
"rate_ugkgmin": "Rate (µg/kg/min)"
}
}
+45 -23
View File
@@ -7,15 +7,53 @@
"mode_esk": "ESKETAMINE",
"mode_rac": "RACÉMIQUE",
"calculator": "Calculateur",
"export_pdf": "Exporter PDF",
"export_csv": "Exporter CSV",
"raz": "RAZ"
},
"patient": {
"title": "Caractéristiques Patient",
"weight": "Poids (kg)",
"age": "Âge (ans)",
"height": "Taille (cm)",
"concentration": "Concentration Produit (mg/mL)"
"name_label": "Nom du patient",
"name_placeholder": "ex: DUPONT Jean",
"weight_label": "Poids du patient (kg)",
"weight_warning": "⚠️ Modèles pharmacocinétiques non garantis hors de la plage 30 - 120 kg.",
"infusion_unit_label": "Unité de perfusion continue"
},
"units": {
"mg_kg_h": "mg / kg / h",
"mcg_kg_min": "µg / kg / min",
"mg_h": "mg / h (dose fixe)"
},
"buttons": {
"export_csv": "📊 Exporter valeurs CSV (ng/mL)"
},
"table": {
"summary_title": "🔍 Tableau de contrôle des concentrations calculées (0 - 300 min)",
"summary_subtitle": "Cliquer pour afficher/masquer",
"col_time": "Temps",
"col_bolus": "Bolus (mg)",
"col_infusion": "Perf. Active",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"csv": {
"title": "KetaPK - Rapport de donnees brutes",
"weight": "Poids du patient (kg)",
"unit": "Unite de perfusion",
"col_time": "Temps (min)",
"col_bolus": "Bolus (mg)",
"col_infusion": "Perfusion active",
"col_domino": "Domino (ng/mL)",
"col_clements": "Clements (ng/mL)",
"col_kamp": "Kamp (ng/mL)"
},
"zones": {
"inactive": "Inactif",
"anti_hyperalgesic": "Anti-hyperalgésique",
"analgesia": "Analgésie",
"psychedelic": "Psychédélique",
"emergence": "Émergence",
"narcosis": "Narcose",
"excessive": "Excessif"
},
"models": {
"title": "Modèles Pharmacocinétiques"
@@ -24,7 +62,7 @@
"title": "Saisie Chronologique Doses & Perfusion (0 - 300 min)",
"scroll_hint": "Défilement horizontal 👉",
"bolus": "Bolus (mg)",
"perf": "Perf (mg/kg/h)"
"perf": "Débit perf."
},
"calculator": {
"title": "Calculateur & Conversions de Doses",
@@ -36,21 +74,5 @@
"infusion_header": "Conversion Perfusion",
"rate_mgkgh": "Débit (mg/kg/h)",
"rate_ugkgmin": "Débit (µg/kg/min)"
},
"zones": {
"inactive": "Inactif",
"anti_hyperalgesic": "Anti-Hyperalgésique",
"analgesia": "Analgésie",
"psychedelic": "Psychédélique",
"emergence": "Émergence",
"narcosis": "Narcose",
"excessive": "Excessif"
},
"pdf": {
"title": "KétaPK - Rapport de Simulation Pharmacocinétique",
"date": "Date de simulation : ",
"mode": "Mode sélectionné : ",
"patient_info": "Patient : Poids {weight} kg | Âge {age} ans | Taille {height} cm",
"disclaimer": "Ce document est généré par KétaPK Web. Veuillez vérifier les sorties avant toute action."
}
}