User Tools

Site Tools


Working with annotations

PMA.core supports three types of annotations: PMA.core annotations, native annotations, and 3rd party annotations.

Annotation type Origin Format Read/Write
Pathomation; SDK WKT Read/write
Native Vendor-specific viewer; Pannoramic viewer; ImageScope Embedded in the vendor file format Read-only
Third-party Indica Labs HALO; Definiens; Visiopharm .Annotation XML; .XML; .MLD (binary) Read-only

Internal storage

PMA.core uses its own internal format with the following structure:

  • Geometry: based on WKT (Well-known text). Supports the following shapes Polygon, Linestring, Point and Multipoint
  • Color: the outline color in html format
  • Fill Color: the fill color(if any), only valid for closed shapes like polygon
  • Classification: A text specifying the classification of an annotation like tumor, necrosis etc.
  • Notes: Free text notes and additional information you want to store for every annotation

PMA.core supports 3rd party annotations from the following vendors Visiopharm, Indica Labs and Aperio. Each of these formats is supported via parsing the respective vendor specific file:

  • Visiopharm .mld
  • Indica Labs .annotations
  • Aperio .xml

Creating and saving

PMA.core annotations

For reading the PMA.core annotations for a slide you can use the API call GetAnnotations, that returns all PMA.core annotations in json format.

All other PMA.core annotation functionality is provided via the SaveAnnotations API call. This call can create new, update and delete many annotations in one API call. PMA.core also provides the functionality to get the length and/or the surface area for already saved annotations via the GetAnnotationDistance and GetAnnotationSurfaceArea API calls.

3rd Party annotations

PMA.core can access 3rd party annotations via the External Files interface and the associated API calls. This API associates a number of files containing any known 3rd party annotations with a slide (see previous paragraph). To associate external files with a slide you have to use the API call SetExternalAnnotationFiles. This takes an array of tuples containing the Name and Path for each associated 3rd party annotation file. For Name you can use any text to differentiate from other annotations an the Path needs to be a virtual path to the file containing the annotations. You can get the previously set external annotations files for a slide via the GetExternalAnnotationFiles API call, which returns the array of Name/Path tuples for each file associated with any slide

Exporting and format conversion

PMA.core provides a very powerful API to export and convert all known annotations formats to each other, whether they are PMA.core, 3rd party or native annotations. The API call ExportAnnotations can convert any compatible source of annotations (PMA.core annotations, Native annotations , Visiopharm , Indica Labs , Aperio) to any of the 3rd party formats (Visiopharm, Indica Labs & Aperio). This call also supports two more very useful formats for use outside of PMA.core i.e. the CSV and WKT (Well-Known text) formats. PMA.core will try to convert each format as flawlessly as possible but some shapes are not reproducible as shapes in other formats. If the source and destination formats are the same, PMA.core will not perform any conversion & will output the original file.

More background

Did you know that PMA.core is actually a great tool to integrate different annotations originating for different sources? For more background, have a look at the Pathomation ANNotation subset of functionality in the API.

We have a blog article on annotations and how to handle them, not just within PMA.core, but throughout the entire Pathomation software platform.

working_with_annotations.txt · Last modified: 2023/11/21 17:13 by chris