add more multiuser support
This commit is contained in:
+37
-1
@@ -3,6 +3,7 @@ import json
|
||||
import os
|
||||
import pathlib
|
||||
from typing import Tuple
|
||||
import uuid
|
||||
|
||||
from django.http import Http404, HttpRequest
|
||||
from generic.mixins import AuthorMixin, QuestionMixin
|
||||
@@ -879,6 +880,30 @@ class Case(models.Model, AuthorMixin, QuestionMixin):
|
||||
self._ordered_series_cache = ordered
|
||||
return ordered
|
||||
|
||||
def get_case_named_stacks(self):
|
||||
stacks = []
|
||||
for series in self.get_ordered_series():
|
||||
series_images = list(series.get_images())
|
||||
series_images_with_urls = [(img, f"{REMOTE_URL}{img.image.url}") for img in series_images]
|
||||
images = [url for _, url in series_images_with_urls]
|
||||
declared_groups = _build_declared_series_groups(series, series_images_with_urls)
|
||||
stacks.append(
|
||||
{
|
||||
"name": str(series),
|
||||
"imageIds": images,
|
||||
"seriesId": series.pk,
|
||||
"series": declared_groups,
|
||||
}
|
||||
)
|
||||
results = [
|
||||
{
|
||||
"caseId": f"CASE-{self.pk}",
|
||||
"studyId": "Current Case",
|
||||
"stacks": stacks,
|
||||
}
|
||||
]
|
||||
return json.dumps(results)
|
||||
|
||||
@staticmethod
|
||||
def _parse_dicom_date(value):
|
||||
if not value:
|
||||
@@ -2949,4 +2974,15 @@ class PrerequisiteRequired(Exception):
|
||||
|
||||
def __init__(self, message=None, *, prereq=None):
|
||||
super().__init__(message or "Prerequisite required")
|
||||
self.prereq = prereq
|
||||
self.prereq = prereq
|
||||
|
||||
|
||||
class MultiuserSession(models.Model):
|
||||
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
|
||||
name = models.CharField(max_length=255, blank=True)
|
||||
creator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name="created_multiuser_sessions")
|
||||
active_case = models.ForeignKey(Case, on_delete=models.SET_NULL, null=True, blank=True)
|
||||
created_at = models.DateTimeField(auto_now_add=True)
|
||||
|
||||
def __str__(self):
|
||||
return f"Session {self.name or str(self.id)[:8]} by {self.creator}"
|
||||
Reference in New Issue
Block a user