Display images with specified real-world geometry, then capture one or more points touched on image

To capture touches on an image

Example 1

We use a clinically validated pain scale which is a ten centimetre line on a piece of paper.
We ask patients to touch the place that most represents the level of pain
The distance from the origin to the place touched is the pain score for that individual.
The line must be exactly 10cm long so system needs to be able to
(a) show an image with pre-specified real world geometry (i.e. show this image at 12x12 cm)
(b) capture the pixels/cm/coordinates from bottom left corner for either one or multiple touches of the image

Example 2.

We show a child a picture of a human body and ask them to touch all the places it hurts
We record the coordinates of each touch


10x10 image - 100 pixels * 100 pixels

Child touches point 1 cm across and 1cm up

data looks like this

a) 10px,10px

@chrissyhroberts Have you seen the image map select? It's a select multiple mapped to an SVG and you can do things like select a state from a map or point to a specific body part.

You can see a video at https://twitter.com/OpenDataKit/status/966342785027723264

The docs are at https://docs.opendatakit.org/form-question-types/#image-map-select-widget

@yanokwa it doesn't meet the requirement of a pre-specified real-world geometry and it's also not analog so this is indeed a different feature. Would be interested in seeing if anyone else has a use-case for this. The analysis on these kinds of analog scales is not easy to do.

Thanks @yanokwa & @LN

The SVG image map is a brilliant development that I hadn't yet tried. It certainly meets one part of the need (i.e. touch where it hurts pictures). The real world geometry is however fairly crucial for most validated clinical tools. The visual analogue pain scale for one must be exactly 10cm, but there's also lots of stuff in ophthalmology, neurology and so on that use similarly calibrated analogue systems.

@yanokwa I played about with the image map select widget for collect a while ago, it was close to what I needed but not quite there. Rather than just selecting a region and it changing colour, it would be really useful if an additional pop-up came up for each selection with a 'range' type input (1-5 for example) as a way to capture levels of pain at particular places on the body.

Additionally, visually it would be really cool to display these selected range input as a shade of the selection colour i.e. the higher the number, the darker the shading colour, to make it easier to pick-out patterns.