Dynamic tables with dynamic filters (Jed Carty)

160 views
Skip to first unread message

J Z

unread,
Apr 6, 2021, 5:44:29 PM4/6/21
to TiddlyWiki
I'm trying to create a database of drug trials that have helped with various different symptoms. I want to display these as dynamic tables (using Jed Carty's at the moment). 

I want to be able to click on a particular symptom and see the trials that have been helpful, not helpful, and harmful for that particular symptom. 

At the moment, the database is organised by having tiddlers with a title (corresponding to the trial reference) and each with fields that correspond to the various symptoms these trials looked at. Each symptom can have the field value: improved, no change, deteriorated, not measured.

I'm trying to create a template tiddler to generate these tables, but I don't want to create a template for each symptom. At present, it looks like this:

<<ColumnTable """[depression[improved]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

<<ColumnTable """[depression[no change]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

<<ColumnTable """[depression[deteriorated]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

This works, but I would like to change the symptom (depression) to something dynamic. I thought of using the title of the tiddler, but

<<ColumnTable """[<currentTiddler>[no change]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

doesn't work. I've tried various different syntax variations without success. 

Any help would be much appreciated. The resulting website will be free and hopefully of use for people with mental health problems. Many thanks!

J Z

unread,
Apr 15, 2021, 12:18:48 PM4/15/21
to tiddl...@googlegroups.com
Still no joy here. I've tried the different ideas below to generate a dynamic filter. Any help would be appreciated.
J

Discarded ideas

Using tags

Set macro for tag

\define symptoms(symptom:'suicial_ideation+') $symptom$

<<symptoms>>

These fail:

<<ColumnTable """[tag[<<__symptoms__>>]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[tag[<<symptoms>>]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[tag[$symptoms$]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[tag[$(symptoms)$]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

Using title as variable:

The following fail:

<<ColumnTable """[currentTiddler[Improved]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[<<currentTiddler>>[Improved]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[<<__currentTiddler__>>[Improved]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

No apostrophes:
<<ColumnTable "[<<__currentTiddler__>>[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable [<<__currentTiddler__>>[Improved]] """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

Math symbols
<<ColumnTable """[<<__currentTiddler__>>+'[Improved]']""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable """[<<__currentTiddler__>>+[Improved]]""" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

Setting variables:

<$set name=symptom value=<<currentTiddler>>>
<<symptom>>
</$set>

<<symptom>>

(this works so far)

Then these fail:

<<ColumnTable "[<<symptom>>[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "[<<_symptom_>>[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "[<<__symptom__>>[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "["""$symptom$"""[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "[""$symptom$""[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "["$symptom$"[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

Setting macros:

\define symptoms(symptom:<<currentTiddler>>) $symptom$

<<symptoms>>

(works)

Then they fail like the list above. And also:

<<ColumnTable "[<<__symptoms__[Improved]>>]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "[$(symptoms)$[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "['$(symptoms)$[Improved]']" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>
<<ColumnTable "['$(symptoms)$'[Improved]]" """duration drug1 dose1 drug2 dose2 drug3 dose3""" true>>

--
You received this message because you are subscribed to a topic in the Google Groups "TiddlyWiki" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/tiddlywiki/lotJQdnUMSk/unsubscribe.
To unsubscribe from this group and all its topics, send an email to tiddlywiki+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/908eff40-e687-48e4-8cf4-bd7acf02f7cdn%40googlegroups.com.

Mark S.

unread,
Apr 15, 2021, 1:30:32 PM4/15/21
to TiddlyWiki
You might take a look at https://kookma.github.io/TW-Shiraz/#Tutorial%20Dynamic%20Tables which is possibly better supported.

In your filters, you can't use [<<__currentTiddler__>>[Improved]] 

Inside filters, the syntax drops the angle bracket. Also, <__variable__> only works inside of macros, So you need something like this:

[<currentTiddler>[Improved]]

Not saying this will work (I would need to study your set up more), but the other definitely won't

Mark S.

unread,
Apr 15, 2021, 1:35:55 PM4/15/21
to TiddlyWiki
Back again. In your examples, what is "duration drug1 dose1 drug2 dose2 drug3 dose3"  ? 

Are those fields to be used as column headers ??

J Z

unread,
Apr 15, 2021, 6:20:06 PM4/15/21
to tiddl...@googlegroups.com
Many thanks Mark. Yes, they are fields. One idea was to use the title of the tiddler to be the same than one of the fields. This would allow to have a template tiddler that I can then use for different symptoms. I'm sure that there could be other ways of achieving the same, but I'm relatively new at this. Many thanks again for your help!

Virus-free. www.avast.com

Mark S.

unread,
Apr 15, 2021, 9:01:49 PM4/15/21
to TiddlyWiki
In your examples, is "Improved" supposed to be a tag, or the contents of a field? If a field, what field?

J Z

unread,
Apr 16, 2021, 6:09:54 AM4/16/21
to tiddl...@googlegroups.com
Thanks Mark. 'Improved' is the content of a field. The field varies. The idea was for the title of the tiddler to be the same as the field's name. That way, I can generate tables of drugs that help with a particular symptom using the same template. So the if the title of the field is 'depression' then the table will show me the tiddlers with studies that have helped with depression. I can change the title to 'anxiety' and the same applies.  All tiddlers have the same fields, many which are symptoms. Hope this makes sense. 
Thanks for the Shiraz dynamic table recommendation btw. Looks really good. Will look at it now to see if I can achieve what I'm trying to do.

Mark S.

unread,
Apr 16, 2021, 11:50:29 AM4/16/21
to TiddlyWiki
I'm not sure if the approach you're using is optimal, but you should have fun working things out. For instance, this approach will limit you to titles with no characters and no mixed case.

This works with the Shiraz dynamic tables

\define display-status(stat:"Something") 
<<table-dynamic filter:"[$(currentTiddler)$[$stat$]]" fields:"duration drug1 dose1 drug2 dose2 drug3 dose3" stateTiddler:"exmp01" caption:"''Table 1. Dynamic table example''">>
\end

<<display-status Improved>>



Mark S.

unread,
Apr 16, 2021, 11:51:44 AM4/16/21
to TiddlyWiki
I see we can't edit google posts any more. I should have said:

"will limit you to titles with no spaces and no mixed case."

J Z

unread,
Apr 16, 2021, 12:20:17 PM4/16/21
to tiddl...@googlegroups.com
That is brilliant! You just made my day. It works great. I'm not sure whether the approach is optimal either, but it will do the trick. Thank you so much for your time!

Reply all
Reply to author
Forward
0 new messages