• English
  • Français (French)

Data pack manager specifications

General

  • Used to make many varieties of data available to the FreeMedForms project users, such as:
    • Drugs & ATC & interactions database with interactions
    • ICD-10 database (for personnal use only)
    • Zip codes databases
  • A generic XML configuration file describes all available data packs.
  • Application download this configuration file and extra content, ask user to install or not pack.
  • Some pack are mandatory, some are optionnal
  • Some pack are free, some must be bought
  • User can define multiple data pack servers (one for the private forms another for the free one and mandatory pack)
  • An automatic update is available (warn user at each data pack update)

Data packs

Can depend on, exclude, conflict with, replace other data packs.

They have a

  • uid (we must write a naming prototype)
  • translated string for: labels, description, update text, license
  • date of update
  • full update log
  • validity time limitation

Data pack server

They have

  • a uid (we must write a naming prototype)
  • a list of packs
Data pack server structure
  • FTP (or HTTP for public ones) access
  • directory structure:
    • root [here we can limit access to subscribed users - FTP.User@FTP.Password]
      • server.conf.xml
      • pack [dir]
        • packname [dir]
          • pack.conf.xml
        • packname [dir]
          • pack.conf.xml
        • […]
      • licensefiles [dir]
        • packname [dir]
          • fr.txt
          • en.txt
          • de.txt
          • […]
      • users [dir] [if user limitation]
        • ???

Only FreeMedForms apps should be able to connect the server (how to manage this ?) Ideas (to be implemented)

  • Access only by SFTP (as FTP sends passwords in cleartext)

Server configuration file description

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE FreeMedForms>
 
<DataPackServer>
 
  <ServerDescription>
    <!-- Non translatable values -->
    <uuid>freemedforms.certified.local</uuid>
    <authors>Eric Maeker, MD</authors>
    <version>0.6.0</version>
    <fmfv>0.6.2</fmfv>
    <fdv>0.6.4</fdv>
    <cdate>2011-11-26</cdate>
    <lmdate>2011-11-26</lmdate>
    <icon>__theme__/freemedforms.png</icon>
    <RecomUpFreq nonParsed="EachMonth">2</RecomUpFreq>
    <weblink></weblink>
    <bibliography/>
 
    <!-- Translatable values -->
    <licence>GPLv3</licence>
    <label lang="fr">Données locales du projet FreeMedForms</label>
    <label lang="xx">FreeMedForms project local data</label>
    <description lang="fr">Données par défaut pour FreeMedForms</description>
    <description lang="xx">Default data for FreeMedForms</description>
    <updateinfo>
      <updateversion from="0.6.0">
        <text lang="fr">Première mise à disposition.</text>
        <text lang="en">First release.</text>
      </updateversion>
    </updateinfo>
 
  </ServerDescription>
 
  <ServerContents>
    <Pack serverFileName="./icd10/icd10.xml"/>
    <Pack serverFileName="./drugs/drugs.xml"/>
  </ServerContents>
 
</DataPackServer>

Code specification

  • Limit the build dependencies
  • Built as a shared library
  • Needs XML, Network, Gui
  • UI
    • A dialog for automatic download/update (just an information to the user, a progress, blocking or not)
    • A dialog to view/install/uninstall all data packs from data pack servers (view info, select for installation, force update, etc)
      • A global “update” button allows to update ALL datapacks in a row
      • Each line of the grid is a datapack with the following columns:
        • A description column
        • A type column (zipodes, drugs database, etc)
        • A legacy column (free/proprietary/etc)
        • A column allows to install/deinstall it with an hyperlink (either “install” or “deinstall”) and beside, an “update” hyperlink
      • Allow the possibility to manually install a local data pack file?
    • A dialog to configure all data pack servers
      • A grid with all servers
      • buttons add/remove
      • a slave zone to edit the selected server settings (address, port, …) or directly edit in the grid

DataPack::Core, DataPack::IServerManager

  • DataPack::Core : Central place for configuration
  • DataPack::IServerManager : Central place for server and pack management

DataPack::IServerEngine

  • Virtual interface for the implementation of datapack server accessing

Algorithms

Application starts

  • Init DataPack::Core
  • Feed values to DataPack::Core (path…)
  • Feed XML config of the IServerManager
  • According to user settings → check for datapack updates

Check Updates

  • Get all server description files

DataPack installation

en/drafts/datapack/description.txt · Dernière modification: 2012/11/28 20:35 par Christian A. Reiter
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki FreeMedForms © Eric Maeker, MD