camicroscope / camicroscope Goto Github PK
View Code? Open in Web Editor NEWDigital pathology image viewer with support for human/machine generated annotations and markups.
License: BSD 3-Clause "New" or "Revised" License
Digital pathology image viewer with support for human/machine generated annotations and markups.
License: BSD 3-Clause "New" or "Revised" License
in api/Data/ there are a lot of .php files acting as api endpoints. It's not very well organized; we should determine a clear organization going forward and document which endpoints do what.
previously:
// add small watermark
viewer.addHandler('update-viewport', function() {
viewer.drawer.context.fillText('caMicroscope', document.documentElement.clientWidth-100, document.documentElement.clientHeight-20)
});
It sometimes acted really strangely (maybe only in safari??)
Need help with a few things in order to complete merge:
I noticed that when ingesting images with strange filenames, such as:
EX10-0218-4-CK818-[Boon's]-AV.svs18-AV.svs
EX10-0218DV-1-[NBF]-CK8
the QUIP viewer wouldn't display the images. If I first renamed the files to something more standard, then QUIP would work just fine.
When I drew a very long and complex freeline using the annotation tool, and tried to save it, an error popped up saying "wrong human secret". Is this because the length of the post message to php is limited?
We need to be consistent in our naming of common attributes such as patient/subject, specimen, and image/case.
ID, case-id, case_id, imageID etc., are all names that point to the same thing - a UID for the image. Lets clean this up in the upcoming 1.0 release
Re: human markups #101
Click pencil button on toolbar to enter a new annotation, left menu pops up with nothing in it.
Once user is logged in the session variable $_SESSION["email"]
has the email address of the user and can be used to identify it.
It is available across all PHP files in camicroscope and can be used to add user information to POST requests.
camic_state.get_url_state()
is undefined at StateSchema.js (line 23), and what is it used for?While most of the application has authentication simply in one place, simply uncommenting the session key and user in authentication.php is not sufficient, in part due to a similar check in flextables index.
Enough of the codebase looks for absolute paths, so rev proxy deployments fail.
Withdrawn.
may exist render already, but
render items: https://developer.box.com/v2.0/reference#get-a-folders-items
for a given item, download it and load metadata
There are two array keys in config.php
that have been duplicated, and defined differently. Could you guys please coordinate & help sort this out?
config.php in develop branch
"deleteAnnotation" was defined 2 years ago.
Then it was defined again in the same file 6 months ago.
retrieveTemplate was defined about a year ago...
And then it was defined again in the same file about 6 months ago.
We already have this functionality. This would require exposing it in one of the branches and testing it before merging to productions
That is, select an area, THEN decide what to do with it.
openseadragon/openseadragon#1225
We should evaluate one of the two options suggested here, and compare it's performance with our own in-house solution from 2013.
When a Hamamatsu file with extension ndpi is uploaded using the Image Uploader, the resulting file has a dpi extension. The file is then not recognized by the server as an openslide compatible format.
I am running sbubmi/quip_*:1.0 images.
s/w Ashish, looks like build is failing due to some artifacts residing in ViewerDockerContainer/html/. According to the Dockerfile, camicroscope is being pulled in from the camicroscope repository. Same thing with Security.
Doing simple test – removing camicroscope from html dir to trigger auto-build, and see if the removal of the directory fixes the error.
Example error.
Related to #96.
The name is an artifact from the days when we had mootools and openseadragon. We don't use moo anymore. So let's simplify this to viewer.php
As a proof of concept for indexedDB and configuration persistence, save whether or not to disable the scroll wheel as zoom.
Adding issue to quip_distro (#128)
Three files use getProperties.php
, but the file is missing. If that section of code is ever called, it will fail:
geoJSONHandler_Lymph.js
geoJSONHandler.js
geoJSONHandler_sc.js
Noted: a api/Data/getPropertiesClone.php
was created, but I'm having a hard time tracking down the deletion of aforementioned getProperties.php
.
Note: In the context of this code, "getProperties" seems to be a misnomer and should be renamed appropriately. This file is actually used for deletion purposes.
Related: #95
for external applications
this will just copy the url, as urls contain state, but yes.
using something like intro.js
Someone tried to delete a markup, and the normal shortcut wouldn't work. On QUIP1, the shortcut is (CTRL + Left Click ) on the annotation, but on QUIP2, that doesn't work.
The composite tools don't seem to make any sense to me. In most interactions, I get "select one and only one algorithm" regardless of if I've done so or not.
We have the ability to store and load view state(i.e. zoom and pan position). The viewer gives a sharable link that can be used to launch camicroscope from this old state.
We need to document the types of state we want to support, example:
viewport
, algorithms
etc. so that external agents can push this state information too.
Our sliders should be templated. Here is an example of code that should have been templated. During our refactoring, we should be able to push the template into Mongo, and then populate the form from a separate file that relies on that template.
caMicroscope/js/annotationtools/osdAnnotationTools.js
Lines 2414 to 2622 in e7c690e
(In addition to the ux fixes)
General
Image Loader
Feature Scape
caMicroscope
caMic Lymphocyte
Following up on:
SBU-BMI/quip_distro#40 (comment)
Follow GitFlow workflow
GOAL: A way to see high detail in a region without changing the main view.
Possible Implementation: Open a separate window or div and keep its x and y position matched with the crosshair/pointer position.
it locks the annotation in absolute screen position, but not the slide.
Currently there are some hardcoded assumptions about the order, also there are a few unnecessary callback that can be refactored out.
Adding issue to quip_distro (#127)
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.