PLEASE NOTE: this library is not actively maintained and receives only minimal updates necessary. Most of it is no longer in active use at Ro.
A Django wrapper for fda.gov National Drug Code (NDC) database. fdadb stores each row under one name MedicationName object instead of having multiple drugs with the same name next to each other, for example: In the NDC database there are around 21 Viagras (with different strengths) so in such case we save the MedicationName: Viagra and under this name we store all the 21 instances. This allows for better user experience when searching through the list of drugs.
pip install fdadb
- Add
fdadb
to yourINSTALLED_APPS
./manage.py migrate fdadb
./manage.py fetch_ndc_database
- might take 15-30 minutes (the command will fetch all items from FDA database and save it in your project)
All APIs are searchable with ?q=term query param.
Returns list of MedicationName objects (pass ?q=termtosearch
to filter the results),
this API supports ElasticSearch for fast querying. Pagination does not work yet when ElasticSearch is enabled
(in most cases this does not cause any issues, as this API is generally used for drug autocomplete). You can change the
autocomplete limit by setting FDADB_AUTOCOMPLETE_LIMIT
in your Django configuration (default: 10
).
The ElasticSearch uses ngram for the query parameter.
Returns list of medication strengths
Returns list of Medication NDCs
To enable support of ElasticSearch in autocomplete, set:
ELASTICSEARCH_URL
in project configuration- Run
./manage.py fdadb_es_index
after fetching the NDC database (use--drop_indexes
in case you want to cleanup the medications index)
- ./manage.py fdadb_es_index - indexes the products into ElasticSearch
- ./manage.py fetch_ndc_database - fetches products data from NDS DB and saves in the database
- Django 1.11, 2.1, 2.2
- Python 3.4-3.6