Skip to content

Instantly share code, notes, and snippets.

@zufrieden
Created March 20, 2025 07:55
Show Gist options
  • Save zufrieden/8655e2cfdcfca178b805a45a55698dcc to your computer and use it in GitHub Desktop.
Save zufrieden/8655e2cfdcfca178b805a45a55698dcc to your computer and use it in GitHub Desktop.
ehnv-bmi-obesite-form
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<style type="text/css">sup.asterisque {
color: #0080a6;
font-weight: bold;
font-size: 80%;
}
.hide {
display: none;
}
.btn.btn-info.form-link {
white-space: normal;
line-height: 1.2em;
}
.mt-4 {
margin-top: 12px;
}
.my-4 {
margin-top: 12px;
margin-bottom: 12px;
}
input[name=disease] {
color: #0080a6;
}
</style>
<fieldset style="display: flex; flex-direction: column;">
<div class="my-4"><label for="body-height">Ma taille (en cm)</label> <input class="form-control" id="body-height" type="number" /></div>
<div class="my-4"><label for="body-weight">Mon poids (en kg)</label> <input class="form-control" id="body-weight" type="number" /></div>
<div class="my-4"><label for="age">Mon âge</label> <input class="form-control" id="age" type="number" /></div>
</fieldset>
<div style="margin-top: 33px">
<p>Merci de cocher ce qui correspond à votre situation</p>
<p>Je souffre de...</p>
</div>
<fieldset style="display: flex; flex-direction: column;">
<div><input id="kidney-failure" name="disease" style="margin-right:16px" type="checkbox" value="kidney-failure" /><label for="kidney-failure">Insuffisance rénale sévère sans dialyse</label></div>
<div><input id="coronary-disease" name="disease" style="margin-right:16px" type="checkbox" value="coronary-disease" /><label for="coronary-disease">Maladie coronarienne</label></div>
<div><input id="cirrhose" name="disease" style="margin-right:16px" type="checkbox" value="cirrhose" /><label for="cirrhose">Cirrhose Child B/C</label></div>
<div><input id="mental-disorder" name="disease" style="margin-right:16px" type="checkbox" value="mental-disorder" /><label for="mental-disorder">Troubles psychiques ou psychiatriques sérieux</label></div>
<div><input id="chronic-substance-abuse" name="disease" style="margin-right:16px" type="checkbox" value="chronic-substance-abuse" /><label for="chronic-substance-abuse">Abus chronique de substances</label></div>
<div><input id="pulmonary-embolism" name="disease" style="margin-right:16px" type="checkbox" value="pulmonary-embolism" /><label for="pulmonary-embolism">J’ai fait une embolie pulmonaire dans les 6 derniers mois</label></div>
<div><input id="cancer" name="disease" style="margin-right:16px" type="checkbox" value="cancer" /><label for="cancer">J’ai un cancer non contrôlé ou je suis en rémission depuis moins de 2 ans</label></div>
</fieldset>
<p><button class="btn btn-primary" id="iwanttoknow" style="margin-top: 33px;" type="button">Je veux savoir</button></p>
<h4 class="js-result-title hide"><strong>Résultat :</strong></h4>
<div class="alert alert-danger hide" id="emptyFormAlert" role="alert">Veuillez remplir le formulaire</div>
<div class="hide" id="surgeryForm">
<div class="alert alert-info">
<p>Votre BMI est de: <span class="bmi-value">0</span></p>
<p><strong>Dans votre situation, la chirurgie pourrait être adaptée</strong>. En principe, une opération provoque une diminution de poids <!-- de XX à XX kg --> un an après l’opération.</p>
<p>
Nous vous proposons de prendre rendez-vous au cabinet de chirurgie en contactant notre secrétariat:</p>
<p><strong>Secrétariat du CYOCB</strong><br/>
<a href="mailto:[email protected]">[email protected]</a><br/>
Tél. <a href="tel:0041244244037">024 424 40 37</a><br/>
</p>
</div>
</div>
<div class="hide" id="referralForm">
<div class="alert alert-info">
<p>Votre BMI est de: <span class="bmi-value">0</span></p>
<p><strong>Dans votre situation (BMI supérieur à 50 ou âgé-e de plus de 65 ans), vous ne pouvez pas être pris-e en charge au CYOCB</strong>. Nous vous invitons à vous référer au centre d'obésité du CHUV pour en savoir plus sur les possibilités de traiter votre situation par la chirurgie.</p>
<a class="btn btn-info form-link mt-4" href="https://www.chuv.ch/fr/chirurgie-viscerale/chv-home/patients-et-familles/chirurgie-bariatrique-obesite" target="_blank">Centre d'obésité du CHUV</a></div>
</div>
<div class="hide" id="otherForm">
<div class="alert alert-info">
<p>Votre BMI est de: <span class="bmi-value">0</span></p>
<p><strong>Dans votre situation, une intervention chirurgicale n’est pas possible</strong>. En revanche, notre programme de suivi sans chirurgie est parfaitement adapté. Il permet d’obtenir de très bons résultats: en général, la plupart des patients... Le CYOCB a mis au point un programme destiné à faire évoluer vos habitudes pour améliorer durablement votre qualité de vie. Dans ce programme, vous bénéficierez d’un suivi personnalisé sur le plan médical, psychologique ou encore nutritionnel. Vous allez apprendre à rééquilibrer votre comportement alimentaire et à augmenter votre activité physique.</p>
<a class="btn btn-info form-link mt-4" href="/etablissements/centre-dobesite-et-de-chirurgie-bariatrique-cyocb/form-demande-infos" style="">Je souhaite recevoir des informations sur le programme obésité.</a></div>
</div>
<script defer>
var bodyWeight = document.querySelector('#body-weight');
var bodyHeight = document.querySelector('#body-height');
var age = document.querySelector('#age');
var formBtn = document.querySelector('#iwanttoknow');
var surgeryForm = document.querySelector('#surgeryForm');
var otherForm = document.querySelector('#otherForm');
var referralForm = document.querySelector('#referralForm');
var emptyFormAlert = document.querySelector('#emptyFormAlert');
var canisurgery = false;
formBtn.addEventListener('click', function () {
var bmi = calcBMI(bodyWeight.value, bodyHeight.value);
var diseases = checkSelectedDiseases(document.getElementsByName('disease')).length !== 0 ? true : false;
var age = document.querySelector('#age').value;
if (bmi > 35 && bmi < 50 && diseases === false && age >= 18 && age <= 65) {
canisurgery = true;
} else {
canisurgery = false;
}
if (bodyWeight.value && bodyHeight.value && age) {
emptyFormAlert.classList.add('hide');
displayForm(canisurgery, bmi, age);
}
else {
emptyFormAlert.classList.remove('hide');
}
document.querySelector('.js-result-title').classList.remove('hide');
});
function displayForm(displaySurgery = false, bmi, age) {
if (bmi > 50 || age > 65) {
referralForm.querySelector('.bmi-value').innerText = bmi;
referralForm.classList.remove('hide');
surgeryForm.classList.add('hide');
otherForm.classList.add('hide');
return;
}
if (displaySurgery) {
surgeryForm.querySelector('.bmi-value').innerText = bmi;
surgeryForm.classList.remove('hide');
otherForm.classList.add('hide');
referralForm.classList.add('hide');
} else {
otherForm.querySelector('.bmi-value').innerText = bmi;
otherForm.classList.remove('hide');
surgeryForm.classList.add('hide');
referralForm.classList.add('hide');
}
}
function checkSelectedDiseases(elements) {
var selected = [];
elements.forEach(function (element) {
if (element.checked) {
selected.push(element.value)
}
})
return selected;
}
function calcBMI(weight, height) {
if (weight == "" || weight == undefined)
return false;
if (height == "" || height == undefined)
return false;
return(weight / Math.pow(height/100, 2)).toFixed(1);
}
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment