"Generate" additional list/calendar values basing on two columns


As a “demo” project to get started with Coda I’m trying to build a document to handle prescribed medicine.

As you could see in a simplified example I have a calendar view that contains medicine list prescribed for the day. Medications table has a Take Time column that defines in which time period specific pills should be taken.

The question is how to make a proper calendar visualization basing on provided data so the day in the calendar will contain series of events rather than one event. And events will belong not to date but to morning/noon/evening of the date and basically every day in my specific case will potentially contain 3 events (as per “Medicine Take Times” table: morning, noon, evening). To be more specific 12th of April should contain no events at all (now it contains empty event instead) while 17th of Apr should contain morning event from 9am to 11am with the value of “Chlorophyll, Omega-3, Glycine” and evening event from 8pm to 12am with the value of “Omega-3, Gaba”.

hi @ArtemM , welcome!

I had a look at the issue together with @joost_mineur (who helped me out pointing to a list related issue I overlooked)

What you have in mind is not possible for the moment as far as I know. However if you are willing to alter your procedure you may come up with something fits your needs. The screen video below is based on the following assumptions

  1. you have a table with your products
  2. you have a table with your dayparts (though you do not need them in this set-up)
  3. you have a result table

You push a button and the results table is filled-out as you can see below. What could be added is an automation that runs everyday to inform you about the med of the day.

Hope it helps to spot opportunities!

best, christiaan

1 Like

You are an absolut King for setting this up @Christiaan_Huizer

1 Like

Hello @Christiaan_Huizer
Thanks for the tip! I’ve came up with the similar solution. The root of the “issue” from my understanding is that currently there are no dynamic tables which are purely formula-based and that calendar view does not support dynamic/formula based inputs. So no way to expand dimensions other than use temporary table which contradicts reactive approach but looks like the only possible way.

So I came up with VERY UGLY formula I can’t really understand now from the first try which generates detailed rows. Concept is based on two FormulaMaps multiply dimensions ( e.g. dates*take times).
That kind of works except list generated by that formula seems to be somehow corrupted. At least I don’t see why I see list items with some internal IDs

Here is expanded document. It contains “old” calendar first and then “new” calendar with pills grouped by take time.
Maybe I’m doing something wrong here which causes such list behavior? Is it a bug?

At the local pharmacy, you can get a pill box for morning noon and night…

Just joking.

hi @ArtemM

I guess that that the info we see, is the result of this in your words ugly formula, but ugly or not, it should not produce the references we notice.

RunActions([Calendar Entries].DeleteRows(),    
    [Medication Taking Data].FormulaMap(
      WithName(CurrentValue, TakeDate,
    [Medicine Take Times].FormulaMap(
    WithName(CurrentValue, TakeTime, 
      AddRow([Calendar Entries],[Calendar Entries].[Start Date and Time],
        TakeDate.[Taking Date]+TakeTime.[Time Start], [Calendar Entries].Medications, 
        [Medication Taking Data].Filter(CurrentValue.[Taking Date]=TakeDate.[Taking Date]).[All Medications to Take].FormulaMap(
          CurrentValue.Filter(TakeTime.[Possible Pills at Time].Contains(CurrentValue))),
        [Calendar Entries].[End Date and Time],
        TakeDate.[Taking Date]+TakeTime.[Time End]
), DeleteRows([Calendar Entries].Filter(CurrentValue.Medications.Length()=0))

How and why it works as it works, I cannot tell, maybe @Federico_Stefanato has some ideas?
your assumption (below) seems correct to me.

The root of the “issue” from my understanding is that currently there are no dynamic tables which are purely formula-based and that calendar view does not support dynamic/formula based inputs

best, Christiaan

Thanks, @Christiaan_Huizer I’ve filled a bug report on forum and redone my document to be more codaish. Having lists in a cell (several values in one cell) is not optimal unless list entries are very primitive (e.g. referenced tables with just a couple of columns). In my case such approach restricts further manipulations.

So instead of having list of medicine in one column I now generate a row per date, taking time, medicine and then group rows by taking start time. That provides more flexibility and remove glitches with “unknown object”.

hi @ArtemM , looks good!

What is your specific use case, only meds for private purposes or are you serving fitness centra and others?

Just started with coda and was testing capabilities in first place. That is for personal use. @Christiaan_Huizer