This is my most highly-developed database in my use of Memento. In fact, it's a little bit over-engineered, and then, when I had performance problems, I undid some of that over-engineering to get it to work somewhat faster.
I have Doses linking to Meds and to Prescription Fills. Meds links to Drugs, and Prescription Fills links to Prescriptions. Prescriptions links to People and to Meds.
I use a lot of JavaScript fields, mostly to reference info in the linked libraries and/or calculate something like Planned Hours Between Doses or Planned Next Dose, which is a DateTime kind of thing formatted for an Entry Status field. (You could use Calculation fields for this, if you really prefer.) Not many triggers, and no actions. So the JavaScript is minimal.
The main problem with my database right now is that -- because I use a lot of link-to-entry fields or JavaScript fields referencing linked libraries, and I use those fields as entry name, entry description, or entry status -- the time it takes to display the entries list can be quite long, as Memento is VERY slow with this construct. But, to NOT use them this way makes the entries list almost unusable, so I just struggle.
After initial setup -- getting all the drugs, meds, doctors, and prescriptions entered -- my main activity is to enter doses as I take them and prescriptions & prescription fills as I receive them. I wouldn't change much; it works really well. I take so many drugs that I create a new Doses library every 6 months, so my current one is Bill's Doses 2018Q34, for my doses taken in quarters 3 & 4 of 2018. Instead of Doctors being it's own library, I just keep them in my global People library.
I HIGHLY recommend you don't really copy field values from library to library. If you do that, and you ever make errors entering or updating something, you'll have mismatching data and a nightmare. Just reference them, like in Doses, I get Prescribing Physician like this...
if (field("Medication")[0].field("Prescription required?"))
field("Prescription fill")[0].field("Prescription")[0].field("Physician")[0].field("Person")[0].field("Full name");
else
"OTC";
I doubt anyone else on the planet would develop and use all this, but I do, and as I get older, I really depend on it more & more; I forget stuff; I forget when or even whether I took stuff, when a fill or a prescription will run out, and so on. Using this, all I have to remember is to always record what I receive and what I take immediately, before I get distracted. If I do that, the database saves me just fine.