Skip to content

Commit 5d3c2e2

Browse files
authored
Merge pull request #319 from jbernal0019/master
Add 'StudyDate' and 'ProtocolName' fields to 'PACSFile' model
2 parents d2ed29e + 7f541fe commit 5d3c2e2

File tree

6 files changed

+56
-8
lines changed

6 files changed

+56
-8
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Generated by Django 2.2.12 on 2021-04-09 19:32
2+
3+
import datetime
4+
from django.db import migrations, models
5+
from django.utils.timezone import utc
6+
7+
8+
class Migration(migrations.Migration):
9+
10+
dependencies = [
11+
('pacsfiles', '0003_pacsfile_modality'),
12+
]
13+
14+
operations = [
15+
migrations.AddField(
16+
model_name='pacsfile',
17+
name='ProtocolName',
18+
field=models.CharField(blank=True, max_length=64),
19+
),
20+
migrations.AddField(
21+
model_name='pacsfile',
22+
name='StudyDate',
23+
field=models.DateField(db_index=True, default=datetime.datetime(2021, 4, 9, 19, 32, 14, 90971, tzinfo=utc)),
24+
preserve_default=False,
25+
),
26+
migrations.AlterField(
27+
model_name='pacsfile',
28+
name='SeriesInstanceUID',
29+
field=models.CharField(max_length=150),
30+
),
31+
migrations.AlterField(
32+
model_name='pacsfile',
33+
name='StudyInstanceUID',
34+
field=models.CharField(max_length=150),
35+
),
36+
]

chris_backend/pacsfiles/models.py

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,12 @@ class PACSFile(models.Model):
2020
PatientAge = models.IntegerField(blank=True, null=True)
2121
PatientSex = models.CharField(max_length=1, choices=[('M', 'Male'), ('F', 'Female')],
2222
blank=True)
23+
StudyDate = models.DateField(db_index=True)
2324
Modality = models.CharField(max_length=15, blank=True)
24-
StudyInstanceUID = models.CharField(max_length=150, db_index=True)
25+
ProtocolName = models.CharField(max_length=64, blank=True)
26+
StudyInstanceUID = models.CharField(max_length=150)
2527
StudyDescription = models.CharField(max_length=500, blank=True)
26-
SeriesInstanceUID = models.CharField(max_length=150, db_index=True)
28+
SeriesInstanceUID = models.CharField(max_length=150)
2729
SeriesDescription = models.CharField(max_length=500, blank=True)
2830
pacs = models.ForeignKey(PACS, on_delete=models.CASCADE)
2931

@@ -43,6 +45,8 @@ class PACSFileFilter(FilterSet):
4345
fname_exact = django_filters.CharFilter(field_name='fname', lookup_expr='exact')
4446
PatientName = django_filters.CharFilter(field_name='PatientName',
4547
lookup_expr='icontains')
48+
ProtocolName = django_filters.CharFilter(field_name='ProtocolName',
49+
lookup_expr='icontains')
4650
StudyDescription = django_filters.CharFilter(field_name='StudyDescription',
4751
lookup_expr='icontains')
4852
SeriesDescription = django_filters.CharFilter(field_name='SeriesDescription',
@@ -58,6 +62,6 @@ class Meta:
5862
model = PACSFile
5963
fields = ['id', 'min_creation_date', 'max_creation_date', 'fname', 'fname_exact',
6064
'PatientID', 'PatientName', 'PatientSex', 'PatientAge',
61-
'min_PatientAge', 'max_PatientAge', 'PatientBirthDate',
62-
'StudyInstanceUID', 'StudyDescription', 'SeriesInstanceUID',
63-
'SeriesDescription', 'pacs_identifier']
65+
'min_PatientAge', 'max_PatientAge', 'PatientBirthDate', 'StudyDate',
66+
'ProtocolName', 'StudyInstanceUID', 'StudyDescription',
67+
'SeriesInstanceUID', 'SeriesDescription', 'pacs_identifier']

chris_backend/pacsfiles/serializers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,9 @@ class Meta:
3333
model = PACSFile
3434
fields = ('url', 'id', 'creation_date', 'fname', 'fsize', 'path', 'PatientID',
3535
'PatientName', 'PatientBirthDate', 'PatientAge', 'PatientSex',
36-
'Modality', 'StudyInstanceUID', 'StudyDescription', 'SeriesInstanceUID',
37-
'SeriesDescription', 'pacs_identifier', 'pacs_name', 'file_resource')
36+
'StudyDate', 'Modality', 'ProtocolName', 'StudyInstanceUID',
37+
'StudyDescription', 'SeriesInstanceUID', 'SeriesDescription',
38+
'pacs_identifier', 'pacs_name', 'file_resource')
3839

3940
def get_file_link(self, obj):
4041
"""

chris_backend/pacsfiles/tests/test_serializers.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ def test_validate_updates_validated_data(self):
8989
"""
9090
path = 'SERVICES/PACS/MyPACS/123456-crazy/brain_crazy_study/SAG_T1_MPRAGE/file1.dcm'
9191
data = {'PatientID': '123456', 'PatientName': 'crazy',
92+
'StudyDate': '2020-07-15',
9293
'StudyInstanceUID': '1.1.3432.54.6545674765.765434',
9394
'StudyDescription': 'brain_crazy_study',
9495
'SeriesDescription': 'SAG T1 MPRAGE',
@@ -105,6 +106,7 @@ def test_validate_validates_path_has_not_already_been_registered(self):
105106
"""
106107
path = 'SERVICES/PACS/MyPACS/123456-crazy/brain_crazy_study/SAG_T1_MPRAGE/file1.dcm'
107108
data = {'PatientID': '123456', 'PatientName': 'crazy',
109+
'StudyDate': '2020-07-15',
108110
'StudyInstanceUID': '1.1.3432.54.6545674765.765434',
109111
'StudyDescription': 'brain_crazy_study',
110112
'SeriesDescription': 'SAG T1 MPRAGE',
@@ -113,6 +115,7 @@ def test_validate_validates_path_has_not_already_been_registered(self):
113115
pacs = PACS(identifier='MyPACS')
114116
pacs.save()
115117
pacs_file = PACSFile(PatientID='123456',
118+
StudyDate='2020-07-15',
116119
StudyInstanceUID='1.1.3432.54.6545674765.765434',
117120
SeriesInstanceUID='2.4.3432.54.845674765.763345',
118121
pacs=pacs)

chris_backend/pacsfiles/tests/test_views.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def setUp(self):
4343
pacs.save()
4444
pacs_file = PACSFile(PatientID='123456',
4545
PatientName='crazy',
46+
StudyDate='2020-07-15',
4647
StudyInstanceUID='1.1.3432.54.6545674765.765434',
4748
StudyDescription='brain_crazy_study',
4849
SeriesInstanceUID='2.4.3432.54.845674765.763345',
@@ -71,6 +72,7 @@ def setUp(self):
7172
{"template": {"data": [{"name": "path", "value": path},
7273
{"name": "PatientID", "value": "123456"},
7374
{"name": "PatientName", "value": "crazy"},
75+
{"name": "StudyDate", "value": '2020-07-15'},
7476
{"name": "StudyInstanceUID",
7577
"value": '1.1.3432.54.6545674765.765434'},
7678
{"name": "StudyDescription", "value": "brain_crazy_study"},
@@ -115,6 +117,7 @@ def test_pacsfile_create_failure_already_exists(self):
115117
path = 'SERVICES/PACS/MyPACS/123456-crazy/brain_crazy_study/SAG_T1_MPRAGE/file2.dcm'
116118
pacs = PACS.objects.get(identifier='MyPACS')
117119
pacs_file = PACSFile(PatientID='123456',
120+
StudyDate='2020-07-15',
118121
StudyInstanceUID='1.1.3432.54.6545674765.765434',
119122
SeriesInstanceUID='2.4.3432.54.845674765.763345',
120123
pacs=pacs)

chris_backend/pacsfiles/views.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ def list(self, request, *args, **kwargs):
3131
# append write template
3232
template_data = {'path': "", 'PatientID': "", 'PatientName': "",
3333
'PatientBirthDate': "", 'PatientAge': "", 'PatientSex': "",
34-
'Modality': "", 'StudyInstanceUID': "", 'StudyDescription': "",
34+
'StudyDate': "", 'Modality': "", 'ProtocolName': "",
35+
'StudyInstanceUID': "", 'StudyDescription': "",
3536
'SeriesInstanceUID': "", 'SeriesDescription': "",
3637
'pacs_name': ""}
3738
return services.append_collection_template(response, template_data)

0 commit comments

Comments
 (0)