Here you will find an explanation for every metadata LABEL that can be provided in the Machine's Dockerfile, along with reference tables and an example.
Docker LABEL interface version - version 1 is deprecated, so value must be version 2
LABEL com.envoyai.metadata-version=2
Formal description of the inputs to the Machine. The EnvoyAI Platform uses a system based on JSON-Schema but uses different defaults, and has additional features to describe files and DICOM studies. Either JSON or YAML formatted schemas are accepted.
LABEL com.envoyai.schema-in="\
dicom-study-in:\n\
dicom-type: dicom-study"
See the hello world walkthrough for more info.
Formal description of the outputs of the Machine. The EnvoyAI Platform uses a system based on JSON-Schema but uses different defaults, and has additional features to describe files and DICOM studies. Either JSON or YAML formatted schemas are accepted.
LABEL com.envoyai.schema-out="\
dicom-study-out:\n\
dicom-type: dicom-study"
See the hello world walkthrough for more info.
Information about the machine, author, and organization. This information is currently only visible on the developer portal, but after some modification to the available properties and some curation of the values, this may be visible publicly. Here is a list of properties that may be provided, along with examples from an imaginary company, AlgoHoldings.
Name | Key | Example | Description |
---|---|---|---|
Name * | name | "AlgoEye ™" | The Name of your Machine |
Title | title | "Neural Net powered detector of incidental findings." | Title (treated as a sub-title) of your Machine |
Author | author | "Dr. John Doe PHD" OR "AlgoHoldings Staff" | Individual(s) credited with authorship |
Organization | organization | AlgoHoldings © | Company or Organization with ownership |
Input Details | input-details | "Chest CR" OR "Screening Chest CT with 3mm slices" | Description of the input of an algorithm, this usually needed, beyond the constraints set in schema-in, to properly demonstrate the Machine. |
Output Details | output-details | "Secondary Capture with RGB Overlay" OR "incidental findings and measurements" | Description of the output of an algorithm, this helps interested parties to understand the outputs and how they might be used. |
Link to Manual | link-to-manual | "https://algoholdings.ai/docs/algoeye.pdf" | URL to the user manual. |
Link to Samples | link-to-samples | "https://s3.amazonaws.com/algo-eye-samples/sample1.zip" | URL to sample input and or output data. |
Release Version | release-version | "1.0.1-2017-01-02#78b23445" OR "2.0.0-RC1" | Version of underlying Algorithm, not the Machine, required for regulatory purposes. |
Abstract | abstract | "Bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla" | A summary of the the underlying algorithm, and how the Machine should be used. |
Fda Status | fda-status | "Pending" OR "FDA Cleared" OR "Research Only" | United States Regulatory Status |
CE Mark Status | ce-mark-status | "Pending" OR "CE Mark Cleared" OR "Research Only" | European Union Regulatory Status |
Health Canada Status | health-ca-status | "Pending" OR "Health Canada Cleared" OR "Research Only" | Canada Regulatory Status |
PMDA Status | pmda-status | "Pending" OR "PMDA Cleared" OR "Research Only" | Japan Regulatory Status |
MFDS status | mfds-status | "Pending" OR "MFDS Cleared" OR "Research Only" | Korea Regulatory Status |
Date Trained | date-trained | "2017-01-02" | Date that the Machine Learning Model, if used, was trained. |
Data Source | data-source | "University of Imagination Hospital Chest CR repository" | Source of the training data, if used. |
Ground Truth | ground-truth | "Chest CR annotated by board certified radiologists" | Description of the method by which training data, if used, was labeled. |
Training Algorithm | training-algorithm | "Neural Net" or "Statistical Regressions after feature extraction with heuristics based segmentation" | Description of the algorithms used. |
Performance | performance | "99.98% Accuracy" | Accuracy and or precision, and any other relevant measurements of performance. |
* Only Name is required.
Note: the data type of all values is string
LABEL com.envoyai.info="\
name: Echo Machine\n\
title: Test machine for demonstration or testing purposes only\n\
author: Staff\n\
organization: EnvoyAI"
default is false
. If present and true
, then the Docker execution
environment will be nvidia-docker, allowing access to NVidia GPU.
LABEL com.envoyai.nvidia=true
See test-cuda for a simplified example.
See related faq for more information.
default is false
. If present and true
, then the Docker execution
environment will have access to the internet.
LABEL com.envoyai.network=true
This does have implications for use in production use, see related faq for more information.
The number of minutes the Docker should be awaited before exiting. Default is 60
.
LABEL com.envoyai.timeout="15"
Any dicom tags in addition to the minimum set of fields for a given SOP. each tag should be referenced by it's keyword and separated on a new line.
LABEL com.envoyai.dicom-tags="\
PatientSex\
PatientAge"
We have found dicom.innolitics.com to be a good dicom tag (and keyword) reference. For more information about deidentifacation and reidentifacation of dicom see PHI.md.
This should have a value if the Machine's results can be viewed using a radiology viewer. If missing, a default value will be created.
com.envoyai.display
must contain two ordered lists of display-elements, source-display-group
generally
representing the inputs, and results-display-group
generally representing the outputs, as well as a result-summary
which provides the consumer with a
Each display-element must have a title, id, and content. Title simply suggests how the viewer should label the value,
the id allows you to reference the display element in feedback, the content tells the viewer what to actually show,
usually with a pointer object. A pointer object contains a single property, pointer
, which in turn has a source
prop
describing if the value comes from the input or the output of the algorithm, and a property
prop which will match the name
of the property from either input or output.
LABEL com.envoyai.display="\
source-display-group:\n\
display-elements:\n\
- title: Input DICOM\n\
id: input-dicom\n\
content:\n\
pointer:\n\
source: input\n\
property: dicom-study-in\n\
results-display-group:\n\
display-elements:\n\
- title: Input DICOM\n\
id: output-dicom\n\
content:\n\
pointer:\n\
source: input\n\
property: dicom-study-out"
This should have a value if a Machine's results can be viewed using a radiology viewer. If missing, a default value will be created. The current feedback selectors:
Name | Key | LABEL value | Description |
---|---|---|---|
Accept / Reject | accept-reject |
selector-type: accept-reject |
will prompt the user to either agree or disagree with the results. |
Choose One | choose-one-display-element |
selector-type: choose-one-display-element selector-config: choose-options: - display-element-id-1 - display-element-id-2 - display-element-id-3 |
will prompt the user to either agree or disagree with the results. |
LABEL com.envoyai.selector="\
selector-type: choose-one-display-element\n\
selector-config:\n\
choose-options:\n\
- guess-0\n\
- guess-1\n\
- guess-2\n\
default-option: guess-0"
This should have a value if a Machine's results include findings, measurements,
or impressions that belong in the radiology report. Each relevant property
can be associated with the report by including a pointer to the property in
the findings
list. Here is a simple extract from test-report:
LABEL com.envoyai.report="\
findings:\n\
- code: '36118008'\n\
code-system: snomed-ct\n\
value:\n\
pointer:\n\
source: output\n\
property: pneumothorax\n\
- code: 'RID5350'\n\
code-system: radlex\n\
value:\n\
pointer:\n\
source: output\n\
property: pneumonia-present"
Each data type that the finding pointer points to will indicate a different meaning as described in the table below:
type | meaning | example |
---|---|---|
boolean | indicates the presence (when true ) or absence (when false )of the finding identified by the code |
Pneumonia present or not present |
string | indicates the presence of the condition specified by the code , and optionally identifies a more specific code or expression |
Open or closed pneumothorax |
number | represents the value of the measurement identified by the code |
Tumor volume |
array<object> | indicates that there are many things of the same type, containing multiple properties each. Each sub-property code will be related by the code of the parent | List of lung nodules and each nodule's attributes |