User Tools

Site Tools


FreeDiams Roadmap

This is the roadmap for FreeDiams. It can be also concidered as a part of the changelog between main stable versions.

Next version Coding started at Planned release
1.0.0 jan 2014 Sept, 2016
0.9.2 jan 2014 July, 2014

Where possible, kindly avoid multiple small edits.


  • This page includes an outline for the next version of FreeDiams. Lengthy text (> 1-2 lines) is best replaced by a link elsewhere.

Version roadmap


  • Some parts of the roadmaps are linked with the FreeDDIManager application (drug database builder)
Issues Planned Priority Process
DDI database update Jun/Aug 2014 critical 50%
French drugs database update Jun/Aug 2014 critical 100%
Canadian drugs database update Jun/Aug 2014 critical 70%
FDA drugs database update Jun/Aug 2014 critical 50%
Unit-testings Planned Priority Process
DDI checking unit-tests (if possible) Sept 2014 low 0%


Issues Planned Priority Process
Allow not-GUI usage of FreeDiams for interaction checking only Dec 2014 critical 0%
Full integration of PIMs computation Late 2014 / early 2015 critical 30%
Unit-testings Planned Priority Process
FreeDiams CorePlugin unit-tests (if possible) Sept 2014 low 0%

Under discussion


Currently available workforce in FreeMedForms community is unable to regularly update and review a ddi database. Members of the FMF French community will select a non free ddi database without links to pharmaceutical industry and write a plugin to integrate it with FreeDiams. See External French drugs database & FreeDiams.


  • in the schema
    • change “Dosages” to “Strength”
  • split and store separately strength and units?
  • see drug strength storage in db (#2 line 4 in) this post
  • Make DRUGS.TYPE_MP and DRUGS.AUTHORIZATION varchar(40) and add to tooltips under UID_label: <UID>; <ATC> with labels defined in the INFORMATIONS table?



  • HUMIRA and corticosteroids and immunosuppressants (methotrexate)



  • In Debian/Ubuntu see output of
    lintian -i -I *.dsc *.deb
  • In protocol window clicking on ProtocolView Remove button → removes ALL protocols
  • Re-order the daily schemes ?
  • Add version N° to transmitted dosage
  • Add an automatic “missing DDI” reporter (for users with internet connection)
  • Update documentation
  • Add a form to review FreeDiams and send to the dev list when FreeDiams is used more than 100 times
  • Describe plan for how to contribute interactions
  • Manage : click in file navigator on a *.di file –> opens FreeDiams and load the file
  • Manage : Drag a *.di file on a FreeDiams instance –> opens the file
  • Manage biological datas units switching (related project
  • Put applications params into the user database when the MySQL server is activated
  • Automatic management of plural forms for periods in prescriptions
  • Add proxy params for the updatechecker and the messagesender objects
  • support for combo search (text search catches both commercial and molecules)
  • when dropping templates : need to check/know which database to use, and check validity of drugs
  • inform user if opened prescription contains no-longer-commercialized drugs
  • re-write documentation for Available personal protocols
  • update patient available tokens
  • add an undo function in daily scheme widget
  • Templates → add print, save and quit if used with an external EMR ?
  • Add a dialog for users who want to share : Templates or Protocols (need a sender and an document integrator)
  • when changing font size of template view → change the font without need to restart app
  • extend search molecules wildcards to apply also to form, strength
  • Manage the XML value in `FreeDiams_In version=xxx` ?
  • Copy/paste bug in Qt when used with MacOs.
  • support for combo search (text search catches both commercial and molecules)
  • support for decimal “.” not just “,” … this is not just a database question but pertains also to Creatinine (mg/l)
  • toolbar icon for limitations: maybe replace “clock” with “hourglass” as better communicating that “time is running out”?
  • management of sequential prescription (1/2cp day one, 1cp day two…)
  • In order to simplify interactions testings :
    • make FreeDiams able to read an XML file and check found interactions
      • XML Schema :
      • <InteractionTest expected=“true/false”>
        • <Atc code=“” OR label=“”>
        • <Atc code=“” OR label=“”>
      • </InteractionTest>
    • create a report of tested interactions in a table
  • Create a total interaction score. Before saving/printing if score > MaxScore –> alert user of the interactions.
  • in Preferences > Drugs > Selector add columns
    • TYPE_MP (or Marketing Permission?)
    • Authorization
  • CLI
    • support for (see this post)
    • fertility state information
    • lactation
    • takes alcohol
  • generic prescribing (save prescription XML without requiring a company drug UID)
  • make GUI “controllably visible” any parameterized patient details? see this post
  • consider to replace toolbar icon for limitations “clock” with “hourglass” as better communicating that “time is running out”?
  • can FD by default (or Preference) suppress display of uncommercialised drugs?
  • prepare adverse effects database : link ATC codes to known adverses effects, create a search engine.
  • In print dialog: allow to include / exclude specific tokens (like clinical data : allergies, pregnant, lactation, renal function, creatinine clearance etc)
  • prepare a XML encoded file for:
    • chronic renal failure and ATC dosages or contra-indications
    • same for lactation and pregnancy
    • same for elderly and pediatrics
  • Integrates probably inappropriate drugs in elderly:
  • Add a tag in the IAM tree for duplicates screening in the FreeDiams IA engine (eg: cyp substrats==no duplicate screening)
  • Sync from USB
  • Create a new XML Tag exchangeIn file : <EMRPDFCache value=“yes/no” path=“/abs/path/to/store/and/return/files.pdf”/> ???
  • Add in drugs database schema the AE_REPORT_URL to ease the reporting of adverse effects
GNUmed specific dev

Now that I've consolidated the GNUmed FreeDiams API I'd like to further develop it. The two use cases I would want to cover next are: 1. pass a list of drugs to FreeDiams and tell FreeDiams “show me what you think about the combination of these drugs in a patient” Ideally, the information could be passed back to the caller in a parseable format. 2. pass a drug to FreeDiams and tell FreeDiams “show me everything you know about this drug” Ideally, the information could be passed back to the caller in a parseable format. Please suggest how we can cooperate on these two things.

approach to drug dosage in renal failure
"non-UID" drugs imported from external EMRs

How will FreeDiams try to match “non-UID” drugs imported from external EMRs…

  • first solution should be:
    • all INNs must be informed
    • each INN must have
      • a fully configurated strength
      • a fully configurated route
    • With these data, FreeDiams can try to match a drug containing the exact composition required and show the drug's brand name.
  • second idea:
    • same data are needed
    • FreeDiams will create a “virtual drug” (meaning unmarketed) with the data and include it in the IA processing (using its INNs, strength and route)
Interaction synthesis
  • heading: tested prescription (remember all tested drugs)
  • add a user global comment
  • interactions
    • grouped by risk level (headings)
    • showing in a table
      • related drugs
      • related ATC or IAM classes
      • risk
      • management
  • global interacting score ?
  • when printing allow user to add a global comment
  • INN Dosage are stored using the ATC ID =⇒ on ATC table update :: wrong association
  • DDI dose-dependent, Duplication alerts

The next generation should include some new changes:

  • Database MASTER and DRUGS table should be joined as one table.
  • I have to think on some new fields in INTERACTIONS and in IAM_TREE
  • INTERACTIONS should inform on daily/weekly/monthly total dose.
    • See for exemple: WARFARINE/ASPIRIN interaction Contraindicated or Discourage association according to the total daily dose of ASPIRIN prescribed. Idem for some METHOTREXATE DDI.
  • IAM_TREE should inform the DDI engine on the calculation of duplicates. All *molecule* duplication should not be warned (eg: LEVODOPA), idem for interacting classes (like CYP450 substrats). These data should be informed in FreeToolBox (code is not actually written)
patient id, parameters & printing

Printing should include patient identification and parameters. FreeDiams used with FMF EMR should not rely on the user specified prescription headers (and its tag system) to give acurate and useful information to the pharmacist. For instance, FreeDiams should systematically print the patient's age in months or years and months for pediatric patients under 3 years old. Weight in kilograms only (as recommended by all American and British best practices) must be automatically added to pediatric patient's orders. Some drugs require specific parameters such as body surface area. Knowing renal function can be useful for certain drugs or drugs combinations. Setting all these parameters according to age, sex, or prescribed drugs would be impossible with the current way of handling patient's id information through header and tags.

Creatinin && ClCr units

Question from Jim Busser:

Some time ago, I made some notes that future versions will directly handle umol/L and mg/dL

Is FreeDiams the object of any more development currently, and can it be on any roadmap soon that the units of * mg/dL * umol/L

can be made to recognize and be correctly shown when the following are passed “in” ?

<Creatinine value="1.36" unit="mg/dL"/>
<Creatinine value="120" unit="umol/L"/>

Next, can CrCl (mL/min) be auto-calculated for such parameters? The conversion factors are:

* µmol/L / 8.4 –> mg/L * mg/dL x 10 –> mg/L

and for CrCl (mL/min –> mL/sec) the conversion is

* mL/min x 0.0167 –> mL/s

and I would remove mmol/L from the UI, since I do not think those units are anywhere used.

Adding command line only features
freediams --convert prescription.xml
en/drafts/erx/roadmap.txt · Last modified: 2016/09/29 13:03 by Jérôme Pinguet