Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,12 @@ var/
.installed.cfg
*.egg
neuroEnv/
.DS_Store
bin/
pip-selfcheck.json
pyvenv.cfg
share/
man/

# PyInstaller
# Usually these files are written by a python script from a template
Expand Down
Empty file added neuropy/medication/__init__.py
Empty file.
5 changes: 5 additions & 0 deletions neuropy/medication/admin.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
from django.contrib import admin
from medication.models import Medication
# Register your models here.

admin.site.register(Medication)
7 changes: 7 additions & 0 deletions neuropy/medication/apps.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
from __future__ import unicode_literals

from django.apps import AppConfig


class MedicationConfig(AppConfig):
name = 'medication'
62 changes: 62 additions & 0 deletions neuropy/medication/fixtures/medication.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@
[
{
"model":"medication.medication",
"pk":1,
"fields":{
"name":"CONCERTA",
"med_type":"stimulant",
"treating_dis":"ADD/ADHD",
"half_life":"03:30:00",
"ramp_up":"03:30:00",
"peak_period":"07:00:00"
}
},
{
"model":"medication.medication",
"pk":2,
"fields":{
"name":"ADDERALL",
"med_type":"stimulant",
"treating_dis":"ADD/ADHD",
"half_life":"10:00:00",
"ramp_up":"07:00:00",
"peak_period":"04:00:00"
}
},
{
"model":"medication.medication",
"pk":3,
"fields":{
"name":"Focalin",
"med_type":"stimulant",
"treating_dis":"ADD/ADHD",
"half_life":"07:00:00",
"ramp_up":"06:30:00",
"peak_period":"06:00:00"
}
},
{
"model":"medication.medication",
"pk":5,
"fields":{
"name":"Ritalin LA",
"med_type":"stimulant",
"treating_dis":"ADD/ADHD",
"half_life":"03:30:00",
"ramp_up":"07:00:00",
"peak_period":"06:00:00"
}
},
{
"model":"medication.medication",
"pk":6,
"fields":{
"name":"Vyvanse",
"med_type":"stimulant",
"treating_dis":"ADD/ADHD",
"half_life":"11:00:00",
"ramp_up":"02:00:00",
"peak_period":"04:00:00"
}
}
]
28 changes: 28 additions & 0 deletions neuropy/medication/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-02-14 00:05
from __future__ import unicode_literals

from django.db import migrations, models


class Migration(migrations.Migration):

initial = True

dependencies = [
]

operations = [
migrations.CreateModel(
name='Medication',
fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('name', models.CharField(default='CONCERTA', max_length=20)),
('med_type', models.CharField(default='stimulant', max_length=20)),
('treating_dis', models.CharField(default='ADD/ADHD', max_length=25)),
('half_life', models.TimeField()),
('ramp_up', models.DurationField()),
('peak_period', models.DurationField()),
],
),
]
25 changes: 25 additions & 0 deletions neuropy/medication/migrations/0002_auto_20170213_1612.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
"""."""

# -*- coding: utf-8 -*-
# Generated by Django 1.10.5 on 2017-02-14 00:12
from __future__ import unicode_literals

from django.db import migrations


def load_medications_from_fixture(apps, schema_editor):
"""."""
from django.core.management import call_command
call_command("loaddata", "medication")


class Migration(migrations.Migration):
"""."""

dependencies = [
('medication', '0001_initial'),
]

operations = [
migrations.RunPython(load_medications_from_fixture),
]
Empty file.
32 changes: 32 additions & 0 deletions neuropy/medication/models.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
"""Medication model- no user relation."""

from __future__ import unicode_literals

from django.db import models
from django.utils.encoding import python_2_unicode_compatible


@python_2_unicode_compatible
class Medication(models.Model):
"""Medication instace class."""

name = models.CharField(
max_length=20,
default='CONCERTA')
med_type = models.CharField(max_length=20, default='stimulant')
treating_dis = models.CharField(max_length=25, default='ADD/ADHD')
half_life = models.DurationField()
ramp_up = models.DurationField()
peak_period = models.DurationField()
# Ease_priority_matrix=models.CharField

def __str__(self):
"""String representation of Medication."""
return "name: {},med_type: {}, treating_dis: {}, half_life: {}, ramp_up: {}, peak_period: {}".format(
self.name,
self.med_type,
self.treating_dis,
self.half_life,
self.ramp_up,
self.peak_period
)
65 changes: 65 additions & 0 deletions neuropy/medication/tests.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
"""Tests for medication app."""

from django.test import TestCase
from medication.models import Medication
import factory
import datetime


class MedicationFactory(factory.django.DjangoModelFactory):
"""Create test instance of todos."""

class Meta:
"""Invoke Todo instance using Todo model class."""

model = Medication

name = 'CONCERTA'
med_type = 'stimulant'
treating_dis = 'ADD/ADHD'
half_life = datetime.timedelta(hours=3, minutes=30) # 03:30:00
ramp_up = datetime.timedelta(hours=4, minutes=30) # 04:30:00
peak_period = datetime.timedelta(hours=7) # 07:00:00


class MedicationTestCase(TestCase):
"""Test the Medication model."""

def setUp(self):
"""Setup for medications."""
self.medications = [MedicationFactory.create() for i in range(10)]

def test_name(self):
"""Test that a medication instance has a name."""
medication = self.medications[1]
medication = Medication.objects.get(id=medication.id)
self.assertTrue(medication.name == "CONCERTA")

def test_treating_disorder(self):
"""Test that a medication instance has a name."""
medication = self.medications[1]
medication = Medication.objects.get(id=medication.id)
self.assertTrue(medication.treating_dis == "ADD/ADHD")

def test_med_type(self):
"""Test medication instance type."""
medication = self.medications[1]
medications = Medication.objects.get(id=medication.id)
self.assertTrue(medication.med_type == "stimulant")

def test_change_data(self):
"""Test Editing medication data."""
medication = self.medications[1]
medication = Medication.objects.get(id=medication.id)
medication.peak_period = datetime.timedelta(hours=10)
medication.save()
medication = Medication.objects.get(id=medication.id)
self.assertTrue(medication.peak_period == datetime.timedelta(hours=10))

def test_delete_med(self):
"""Test fetching medication after delete throws an exception."""
medication = self.medications[1]
medication = Medication.objects.get(id=medication.id)
medication.delete()
with self.assertRaises(Medication.DoesNotExist):
Medication.objects.get(id=medication.id)
3 changes: 3 additions & 0 deletions neuropy/medication/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
from django.shortcuts import render

# Create your views here.
1 change: 1 addition & 0 deletions neuropy/neuropy/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'medication',
'neuropy',
'userprofile',
'todo',
Expand Down