Hidden Values Example 2: Calculate Using a Date
A common calculation is to take the date of the Last Menstrual Period (LMP) and calculate the Estimated Date of Delivery (EDD).
In general terms, the way we do this is by taking the date of LMP and adding approximately 9 months to it.
In CommCare terms, we want to take the value of the question "Date of Last Menstrual Period" and add 274 days (9 months + 1 week) to it. The resulting date is the EDD!
Let's try it out!
- Create a new hidden value by clicking on the 'Add Question' followed by Hidden Value from the question tree.
- Change the Question ID to "edd"
- Click on "Edit" next to the Calculate Condition box
- Drag the question "Date of Last Menstrual Period" over to the Expression Editor (Advanced) box until you see the green check mark, and then release
- Write a "+" because we want to add something to this date
- Type "274." Your total expression should look like this:
- At the beginning of the expression write date and then put parentheses around the expression like this:
The reason you have to write date first and then put the parentheses around the expression is that when you add an integer number to the question lmp, the result is by default stored as a string, not as a date. We have to "cast" it as a date by putting date first and then parentheses around the expression. Otherwise it will just look like a long number!
...
Tutoriel sur les Valeurs 2: Calculs utilisant une date
La méthode de calcul habituelle consiste à noter la date des dernières règles (DDR) et de calculer la Date prévue d’accouchement (DPA).
D’une manière générale, nous allons prendre la date DDR et y ajouter environ 9 mois.
En termes de CommCare, nous voulons prendre la valeur de la question « Date des dernières règles » et y ajouter 274 jours (9 mois + 1 semaine). La date obtenue est la DPA !
Faisons un essai !
- Créez une nouvelle valeur masquée en cliquant sur « Ajouter une question » suivi de Valeur masquée à partir de l’Arbre à questions.
- Modifier l’Identifiant de la Question en « edd »
- Cliquez sur « Éditez » à côté de la boîte Condition de calcul
- Faites glisser la question « Date des dernières règles » sur la boîte Éditeur d’Expression (Avancé) jusqu’à ce que vous voyiez la coche verte, puis lâchez la souris
- Écrivez un « + » parce que nous voulons ajouter quelque chose à cette date
- Tapez « 274 ». Votre expression totale devrait ressembler à ceci :
- Au début de l’expression écrivez « date », puis mettez l’expression entre parenthèses comme suit :
La raison pour laquelle vous devez écrire « date » d’abord et ensuite mettre l’expression entre parenthèses est que lorsque vous ajoutez un nombre entier à la question Imp, le résultat est par défaut stocké sous forme de chaîne, et non de date. Nous devons « l’exprimer » sous forme de date en commençant par inscrire « date » et en mettant ensuite l’expression entre parenthèses. Autrement il ressemblera tout simplement à un long numéro !
Cliquez sur « Enregistrer » et vous serez prêt à vous lancer !
Info | ||
---|---|---|
| ||
Great- we have a lot of resources for this and now that you understand the general principles, there are a lot you can do with the instructions on our Common Logic and Calculations page. If you can't figure it out using those resources, send a note to the commcare users group! You can also use the same tools to write complex AND/OR statements for Display or Validation conditions |
In the next part of the tutorial you will learn how to write an "if" statement.
Panel | ||
---|---|---|
| ||
Super- nous avons beaucoup de ressources pour cela, et maintenant que vous comprenez les principes généraux, il y a beaucoup de choses que vous pouvez faire avec les instructions qui se trouvent sur notre page Logique commune et calculs. Si vous n’arrivez pas à comprendre l’utilisation de ces ressources, envoyez une note au groupe d’utilisateurs de CommCare ! Vous pouvez également utiliser les mêmes outils pour écrire des énoncés complexes ET/OU pour les conditions d’Affichage ou de Validation |
Dans la partie suivante du Tutoriel, vous apprendrez comment rédiger un énoncé « si ».