function calculateRiskValues(params) { let newRiskCalculator; let complicationRiskCalculator; switch (params.treatmentMethod) { case "1": // Эндоваскулярная хирургия newRiskCalculator = new EndovascularNewNeuroDeficitRisks(params.age); complicationRiskCalculator = new EndovascularComplicationNeuroDeficiencyRisks(params.age); break; case "2": // Микрохирургия newRiskCalculator = new MicrosurgeryNewNeuroDeficitRisks(params.age); complicationRiskCalculator = new MicrosurgeryComplicationNeuroDeficitRisks(params.age); break; case "3": // Неизвестно default: newRiskCalculator = new CommonNewNeuroDeficitRisks(params.age); complicationRiskCalculator = new CommonComplicationNeuroDeficiencyRisks(params.age); break; } let newAgeRisk = newRiskCalculator.calculate_risks_age(); let newAsaRisk = newRiskCalculator.calculate_risks_asa ? newRiskCalculator.calculate_risks_asa(params.asaCategory) : null; let newCciRisk = newRiskCalculator.calculate_risks_cci ? newRiskCalculator.calculate_risks_cci(params.cciCategory) : null; let complicationsAgeRisk = complicationRiskCalculator.calculate_risks_age(); let complicationsAsaRisk = complicationRiskCalculator.calculate_risks_asa ? complicationRiskCalculator.calculate_risks_asa(params.asaCategory) : null; let complicationsCciRisk = complicationRiskCalculator.calculate_risks_cci ? complicationRiskCalculator.calculate_risks_cci(params.cciCategory) : null; return generateResultsHTML(newAgeRisk, newAsaRisk, newCciRisk, complicationsAgeRisk, complicationsAsaRisk, complicationsCciRisk); } function generateResultsHTML(newAgeRisk, newAsaRisk, newCciRisk, complicationsAgeRisk, complicationsAsaRisk, complicationsCciRisk) { let result = "
"; result += "
Возрастные риски
"; if (newAgeRisk) { let newAgeRiskText = (newAgeRisk.min === newAgeRisk.max) ? `${newAgeRisk.min}%` : `${newAgeRisk.min}% - ${newAgeRisk.max}%`; let complicationsAgeRiskText = (complicationsAgeRisk.min === complicationsAgeRisk.max) ? `${complicationsAgeRisk.min}%` : `${complicationsAgeRisk.min}% - ${complicationsAgeRisk.max}%`; result += `

Возникновение нового неврологического дефицита: ${newAgeRiskText}

`; result += `

Возникновение умеренных и тяжёлых интрагоспитальных осложнений: ${complicationsAgeRiskText}

`; } else { result += `

Недостаточно информации для расчётов.

`; } result += "
"; result += "
Риски, связанные с коморбидностью (оценка по ASA)
"; if (newAsaRisk) { let newAsaRiskText = (newAsaRisk.min === newAsaRisk.max) ? `${newAsaRisk.min}%` : `${newAsaRisk.min}% - ${newAsaRisk.max}%`; let complicationsAsaRiskText = (complicationsAsaRisk.min === complicationsAsaRisk.max) ? `${complicationsAsaRisk.min}%` : `${complicationsAsaRisk.min}% - ${complicationsAsaRisk.max}%`; result += `

Возникновение нового неврологического дефицита: ${newAsaRiskText}

`; result += `

Возникновение умеренных и тяжёлых интрагоспитальных осложнений: ${complicationsAsaRiskText}

`; } else { result += `

Недостаточно информации для расчётов.

`; } result += "
"; result += "
Риски, связанные с коморбидностью (оценка по CCI)
"; if (newCciRisk) { let newCciRiskText = (newCciRisk.min === newCciRisk.max) ? `${newCciRisk.min}%` : `${newCciRisk.min}% - ${newCciRisk.max}%`; result += `

Возникновение нового неврологического дефицита: ${newCciRiskText}

`; if (complicationsCciRisk){ let complicationsCciRiskText = (complicationsCciRisk.min === complicationsCciRisk.max) ? `${complicationsCciRisk.min}%` : `${complicationsCciRisk.min}% - ${complicationsCciRisk.max}%`; result += `

Возникновение умеренных и тяжёлых интрагоспитальных осложнений: ${complicationsCciRiskText}

`; } else result += `

Возникновение умеренных и тяжёлых интрагоспитальных осложнений: Недостаточно информации для расчётов

`; } else { result += `

Недостаточно информации для расчётов.

`; } result += "
"; result += "
"; return result; } function clearResults() { let resultsColumn = document.getElementById("resultsColumn"); // Hide results resultsColumn.classList.remove("visible"); // Hide the column first setTimeout(() => { resultsColumn.classList.add("d-none"); // Then expand the form column let formColumn = document.getElementById("formColumn"); formColumn.classList.remove("col-lg-6"); formColumn.classList.add("col-lg-12"); }, 500); // Timing should align with the CSS transition duration }