onconova.oncology.controllers.comorbidities
ComorbiditiesAssessmentController
Bases: ControllerBase
create_comorbidities_assessment(payload)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.post(
path="",
response={201: ModifiedResourceSchema, **COMMON_HTTP_ERRORS},
permissions=[perms.CanManageCases],
operation_id="createComorbiditiesAssessment",
)
def create_comorbidities_assessment(self, payload: scm.ComorbiditiesAssessmentCreate):
return 201, payload.model_dump_django()
|
delete_comorbidities_assessment(comorbiditiesAssessmentId)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.delete(
path="/{comorbiditiesAssessmentId}",
response={204: None, 404: None, **COMMON_HTTP_ERRORS},
permissions=[perms.CanManageCases],
operation_id="deleteComorbiditiesAssessment",
)
def delete_comorbidities_assessment(self, comorbiditiesAssessmentId: str):
instance = get_object_or_404(
orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId
)
instance.delete()
return 204, None
|
get_all_comorbidities_assessment_history_events(comorbiditiesAssessmentId)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="/{comorbiditiesAssessmentId}/history/events",
response={
200: Paginated[
HistoryEvent.bind_schema(scm.ComorbiditiesAssessmentCreate)
],
404: None,
**COMMON_HTTP_ERRORS,
},
permissions=[perms.CanViewCases],
operation_id="getAllComorbiditiesAssessmentHistoryEvents",
)
@paginate()
@ordering()
def get_all_comorbidities_assessment_history_events(
self, comorbiditiesAssessmentId: str
):
instance = get_object_or_404(
orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId
)
return pghistory.models.Events.objects.tracks(instance).all() # type: ignore
|
get_all_comorbidities_assessments_matching_the_query(query)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="",
response={
200: Paginated[scm.ComorbiditiesAssessment],
**COMMON_HTTP_ERRORS,
},
permissions=[perms.CanViewCases],
operation_id="getComorbiditiesAssessments",
)
@paginate()
@ordering()
@anonymize()
def get_all_comorbidities_assessments_matching_the_query(self, query: Query[scm.ComorbiditiesAssessmentFilters]): # type: ignore
queryset = orm.ComorbiditiesAssessment.objects.all().order_by("-date")
return query.filter(queryset)
|
get_all_comorbidities_panels()
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="/meta/panels",
response={200: List[scm.ComorbiditiesPanel], **COMMON_HTTP_ERRORS},
permissions=[perms.CanViewCases],
operation_id="getComorbiditiesPanels",
)
def get_all_comorbidities_panels(self): # type: ignore
return [
scm.ComorbiditiesPanel(
name=name,
categories=[
scm.ComorbidityPanelCategory.model_validate(
dict(
label=category.label,
conditions=list(
ICD10Condition.objects.filter(code__in=category.codes)
),
)
)
for category in [
category
for category in panel.__dict__.values()
if isinstance(category, ComorbidityPanelCategoryType)
]
],
)
for name, panel in orm.ComorbiditiesAssessment.COMORBIDITY_PANELS_DETAILS.items()
]
|
get_comorbidities_assessment_by_id(comorbiditiesAssessmentId)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="/{comorbiditiesAssessmentId}",
response={200: scm.ComorbiditiesAssessment, 404: None, **COMMON_HTTP_ERRORS},
permissions=[perms.CanViewCases],
operation_id="getComorbiditiesAssessmentById",
)
@anonymize()
def get_comorbidities_assessment_by_id(self, comorbiditiesAssessmentId: str):
return get_object_or_404(orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId)
|
get_comorbidities_assessment_history_event_by_id(comorbiditiesAssessmentId, eventId)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="/{comorbiditiesAssessmentId}/history/events/{eventId}",
response={
200: HistoryEvent.bind_schema(scm.ComorbiditiesAssessmentCreate),
404: None,
**COMMON_HTTP_ERRORS,
},
permissions=[perms.CanViewCases],
operation_id="getComorbiditiesAssessmentHistoryEventById",
)
def get_comorbidities_assessment_history_event_by_id(
self, comorbiditiesAssessmentId: str, eventId: str
):
instance = get_object_or_404(
orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId
)
return get_object_or_404(
pghistory.models.Events.objects.tracks(instance), pgh_id=eventId # type: ignore
)
|
get_comorbidities_panel_by_name(panel)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.get(
path="/meta/panels/{panel}",
response={200: scm.ComorbiditiesPanel, 404: None, **COMMON_HTTP_ERRORS},
permissions=[perms.CanViewCases],
operation_id="getComorbiditiesPanelsByName",
)
def get_comorbidities_panel_by_name(self, panel: ComorbiditiesAssessmentPanelChoices):
panel_details = orm.ComorbiditiesAssessment.COMORBIDITY_PANELS_DETAILS.get(panel)
if not panel_details:
return 404
panel_categories = [
category
for category in panel_details.__dict__.values()
if isinstance(category, ComorbidityPanelCategoryType)
]
return 200, scm.ComorbiditiesPanel(
name=str(panel),
categories=[
scm.ComorbidityPanelCategory.model_validate(
dict(
label=category.label,
default=ICD10Condition.objects.filter(
code=category.default
).first(),
conditions=list(
ICD10Condition.objects.filter(code__in=category.codes)
),
)
)
for category in panel_categories
],
)
|
revert_comorbidities_assessment_to_history_event(comorbiditiesAssessmentId, eventId)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.put(
path="/{comorbiditiesAssessmentId}/history/events/{eventId}/reversion",
response={201: ModifiedResourceSchema, 404: None, **COMMON_HTTP_ERRORS},
permissions=[perms.CanManageCases],
operation_id="revertComorbiditiesAssessmentToHistoryEvent",
)
def revert_comorbidities_assessment_to_history_event(
self, comorbiditiesAssessmentId: str, eventId: str
):
instance = get_object_or_404(
orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId
)
return 201, get_object_or_404(instance.events, pgh_id=eventId).revert()
|
update_comorbidities_assessment(comorbiditiesAssessmentId, payload)
Source code in onconova/oncology/controllers/comorbidities.py
| @route.put(
path="/{comorbiditiesAssessmentId}",
response={200: ModifiedResourceSchema, 404: None, **COMMON_HTTP_ERRORS},
permissions=[perms.CanManageCases],
operation_id="updateComorbiditiesAssessment",
)
def update_comorbidities_assessment(self, comorbiditiesAssessmentId: str, payload: scm.ComorbiditiesAssessmentCreate):
with transaction.atomic():
instance = get_object_or_404(
orm.ComorbiditiesAssessment, id=comorbiditiesAssessmentId
)
return scm.ComorbiditiesAssessmentCreate.model_validate(payload).model_dump_django(instance=instance)
|
runner