ryanneph / smallsocc Goto Github PK
View Code? Open in Web Editor NEWSMALL animal irradiation Sparse Orthogonal Collimator Controller - software for precise radiation delivery in small animal tumor studies
SMALL animal irradiation Sparse Orthogonal Collimator Controller - software for precise radiation delivery in small animal tumor studies
After each leaflet position change request is made to HW, don't allow any further interaction until positive feedback is received from HW.
During a treatment plan, don't advance to next leaflet sequence or start its timer until these feedback signals are received.
If negative feedback is received, place SW in "ERROR" state such that no interaction can occur until acknowledged and treatment plan is stopped. This state should be "bright" in some way to get the user's attention. Overlaying a red rectangle with a single button should be sufficient.
A manual calibration mode is requested to synchronize the leaflet positions between software and hardware.
The usage would be as follows:
Implementation details:
The following tasks should be implemented in support of the hardware/software integration:
metadata field "date_created" in the sequence json files is not properly initialized in memory when loading the json file.
ListView delegates have a number of visual states that reflect the underlying state of the data attached to them. The "Modified" state indicates any SequenceItem in the list that has had its leaflet extensions or metadata modified but hasn't yet been saved to json file.
The intended functionality is for the states of all SequenceItem delegates in the listview to revert to the default state after a successful save-to-json operation. This is currently unhandled and results in lingering "Modified" states on previously modified items in the present application runtime.
Options for handling include:
Current SequenceItem objects have a timecode_ms attribute that is intended to indicate how long after beginning the treatment plan the leaflet configuration should be automatically set on the collimator hardware.
To include this functionality the following minimal set of features should be added:
The following optional features can also be considered:
This is just a replication of the task list that was originally proposed by email:
So far I had a few features in mind which can be augmented or trimmed based on your vision for the project:
(GUI) Save to, Load from leaflet-sequence files - Including specification of automatic switching (time to spend at each sequence) or manual switching ("forward" & "backward" buttons to be used during treatment).
(GUI) Mode selector - switch between realtime-draggable position setting and move-only-on-confirm position setting.
(GUI) keyboard control - arrow keys to extend/retract by a configurable amount.
(Algorithms) fluence map to leaflet position backend function for automatically positioning leaflets to produce desired dose distribution
(HW/GUI) Synchronize position of hw leaflets and software representation. In most environments, this means installing limit switches or hall effect sensors that detect when moving parts reach "endstops" and trigger the switch. After initiating a calibration, all steppers are activated until endstop is triggered and then stopped. Then HW and SW are synchronized and ignoring drift, steppers can keep the two synchronized until another calibration is launched. Essentially follow the same process used by 3D printers prior to each print.
(GUI) Display dicom image within field based on relationship between dicom position and isocenter specification. Shift image so selected isocenter falls in center of field. This can later be leveraged as a control/feedback of treatment couch movement.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.