Skip to content

Commit

Permalink
Merge pull request #846 from ImageMarkup/isic-161-rename-primary-conc…
Browse files Browse the repository at this point in the history
…omitant

Rename primary_biopsy -> concomitant_biopsy
  • Loading branch information
danlamanna authored Feb 26, 2024
2 parents 2cd2a1d + 42997fc commit bdbf4d6
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 13 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
# Generated by Django 4.1.13 on 2024-02-26 15:28

from django.db import migrations


class Migration(migrations.Migration):

dependencies = [
("ingest", "0050_accession_primary_biopsy"),
]

operations = [
migrations.RenameField(
model_name="accession",
old_name="primary_biopsy",
new_name="concomitant_biopsy",
),
]
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# Generated by Django 4.1.13 on 2024-02-26 15:31

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
("ingest", "0051_rename_primary_biopsy_accession_concomitant_biopsy"),
]

operations = [
migrations.AddConstraint(
model_name="accession",
constraint=models.CheckConstraint(
check=models.Q(
models.Q(
("concomitant_biopsy", True),
("metadata__diagnosis_confirm_type", "histopathology"),
),
models.Q(("concomitant_biopsy", True), _negated=True),
_connector="OR",
),
name="accession_concomitant_biopsy_diagnosis_confirm_type",
),
),
]
22 changes: 9 additions & 13 deletions isic/ingest/models/accession.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,14 @@ class Meta(CreationSortedTimeStampedModel.Meta):
& ~Q(blob_name="")
| ~Q(status=AccessionStatus.SUCCEEDED),
),
CheckConstraint(
name="accession_concomitant_biopsy_diagnosis_confirm_type",
check=Q(
concomitant_biopsy=True,
metadata__diagnosis_confirm_type="histopathology",
)
| ~Q(concomitant_biopsy=True),
),
# identical lesion_id implies identical patient_id
ExclusionConstraint(
name="accession_lesion_id_patient_id_exclusion",
Expand Down Expand Up @@ -197,7 +205,7 @@ class Meta(CreationSortedTimeStampedModel.Meta):
Patient, on_delete=models.SET_NULL, null=True, blank=True, related_name="accessions"
)

primary_biopsy = models.BooleanField(default=False, db_index=True)
concomitant_biopsy = models.BooleanField(default=False, db_index=True)

objects = AccessionQuerySet.as_manager()

Expand Down Expand Up @@ -501,15 +509,3 @@ def remove_unstructured_metadata(
self.save()

return modified

def full_clean(self, *args, **kwargs):
if (
self.lesion
and self.primary_biopsy
and self.cohort.accessions.filter(lesion=self.lesion, primary_biopsy=True).exclude(
pk=self.pk
)
):
raise ValidationError("Lesion already has a primary biopsy.")

return super().full_clean(*args, **kwargs)

0 comments on commit bdbf4d6

Please sign in to comment.