{% extends "base.html" %} {% load static %} {% load crispy_forms_tags %} {% load url %} {% load profiles %} {% load bleach %} {% load humanize %} {% load remove_whitespace %} {% load naturaldelta %} {% load static %} {% load string %} {% block title %} {{ object.title }} - {{ block.super }} {% endblock %} {% block breadcrumbs %} {% endblock %} {% block sidebar %}
{% endblock %} {% block content %} {% if 'change_algorithm' in algorithm_perms %} {% if object.display_editors == None or not object.contact_email %} {% endif %} {% if object.public and not object.summary or object.public and not object.mechanism %} {% endif %} {% if object.public and not object.public_test_case %} {% endif %} {% endif %}

{{ object.title }}

{% if 'change_algorithm' in algorithm_perms %} Update Settings Update Description {% if not object.public %} Publish Algorithm {% endif %} {% endif %}

{% if object.logo %} Logo for {{ object.title }} {% endif %}

About

{% if object.display_editors %}
Creator{{ object.editors_group.user_set.all|pluralize }}:
{% for user in object.editors_group.user_set.all %}

{{ user|user_profile_link }}

{% endfor %}
{% endif %} {% if object.contact_email %} {% endif %} {% if object.active_image %}
Version:
{{ object.active_image.pk }}
Last updated:
{{ object.active_image.created }}
{% endif %} {% if object.publications.all %}
Associated publication{{ object.publications.all|pluralize }}:
{% for publication in object.publications.all %}
{{ publication.citation|clean }}
{% endfor %}
{% endif %}
Inputs:
    {% for input in object.inputs.all %}
  • {{ input.title }} {% if input.description %} ({{ input.description }}){% endif %}
  • {% endfor %}
Outputs:
    {% for output in object.outputs.all %}
  • {{ output.title }} {% if output.description %} ({{ output.description }}){% endif %}
  • {% endfor %}

Model Facts

Summary

{% if object.summary %} {{ object.summary|md2html }} {% elif object.detail_page_markdown %} {{ object.detail_page_markdown|md2html }} {% else %} {% endif %}

Mechanism

{% if object.mechanism %} {{ object.mechanism|md2html }} {% else %} {% endif %}

Validation and Performance

{% if object.validation_and_performance %} {{ object.validation_and_performance|md2html }} {% else %} {% endif %}

Uses and Directions

{% if object.uses_and_directions %} {{ object.uses_and_directions|md2html }} {% else %} {% endif %}

Warnings

{% if object.warnings %} {{ object.warnings|md2html }} {% else %} {% endif %}

Common Error Messages

{% if object.common_error_messages %} {{ object.common_error_messages|md2html }} {% else %} {% endif %}

Information on this algorithm has been provided by the Algorithm Editors, following the Model Facts labels guidelines from Sendak, M.P., Gao, M., Brajer, N. et al. Presenting machine learning model information to clinical end users with model facts labels. npj Digit. Med. 3, 41 (2020). 10.1038/s41746-020-0253-3

{% if "change_algorithm" in algorithm_perms %}

Admin Info

{% if algorithm.public %} This algorithm is visible to the public, {% if algorithm.access_request_handling != 'ACCEPT_ALL' %} however, users will need to request access, which you will need to approve {% if algorithm.access_request_handling == 'ACCEPT_VERIFIED_USERS' %} (unless they are verified) {% endif %} before they can run this algorithm. {% else %} and users' access requests will be granted automatically. {% endif %} {% else %} Only users that you add to the users group will be able to run this algorithm. {% endif %} This algorithm uses {{ object.workstation.title }} {% if object.workstation_config %} with configuration {{ object.workstation_config.title }}. {% else %} with its default configuration. {% endif %}

{% if object.average_duration %}

On average, successful jobs for this algorithm have taken {{ object.average_duration|naturaldelta }}.

{% endif %} {% if object.editor_notes %}

Notes

{{ object.editor_notes|md2html }} {% endif %} {% if object.usage_statistics %}

Algorithm Usage

{{ object.usage_chart.chart|json_script:"usage" }}
Total Jobs
{% for job_status, job_count in object.usage_chart.totals.items %}
{{ job_status }}
{{ job_count }}
{% endfor %}
Top Users
    {% for user in object.user_statistics %}
  1. {{ user|user_profile_link }}: {{ user.job_count }} job{{ user.job_count|pluralize }}
  2. {% endfor %}
{% endif %}

Update Settings Update Description

{% endif %}
{% if "change_algorithm" in algorithm_perms %}

Editors

The following users are able to edit, use this algorithm and see all of the results:

{% url 'algorithms:editors-update' slug=object.slug as edit_url %} {% include "groups/partials/user_list.html" with edit_url=edit_url form=editor_remove_form users=object.editors_group.user_set.all %}

Add Editors

Users

The following users are able to use this algorithm:

{% url 'algorithms:users-update' slug=object.slug as edit_url %} {% include "groups/partials/user_list.html" with edit_url=edit_url form=form users=object.users_group.user_set.all %}

Add Users

Permission Requests

Click here to manage the permission requests for this algorithm. {% if pending_permission_requests %} {{ pending_permission_requests }} pending request{{ pending_permission_requests|pluralize }}. {% endif %}

Container Images

{% if not object.active_image %}

You need to link your algorithm to a GitHub repo and create a new tag, or upload a valid algorithm container image.

{% endif %} {% if object.repo_name %}

New container images will be automatically built when https://github.com/{{ object.repo_name }} is tagged. However, if you wish, you can still upload container images here.

{% endif %}

{% if object.repo_name %} Update Linked Repo {% else %} Link GitHub Repo {% endif %} Upload a Container

To re-activate a previously uploaded container image, click on the info button next to it and then on "Make active image for algorithm".

{% endif %}
{# modal #} {% endblock %} {% block script %} {{ block.super }} {{ csrf_token|to_string|json_script:"csrfToken" }} {% if object.usage_statistics and "change_algorithm" in algorithm_perms %} {% endif %} {% endblock %}