Transcription

Philips’ iSyntax for Digital PathologyImage format

1 IntroductionDigital pathology requires large amounts of gigapixel images to be generated, stored, and deliveredwith medical grade image quality and high performance to provide a seamless digital workflow.Philips uses the iSyntax format, which is leveraging Philips’ leading IntelliSpace’s iSyntax imagerepresentation for radiology images. The iSyntax format has distinguished features for storingpathology Whole Slide Images (WSI).Philips is committed to an open pathology platform, enabling pathologists and researchers to unlockthe power of digital pathology using Philips IntelliSite Pathology Solution (PIPS). All information andresources about the iSyntax format can be found on the Open Pathology Portal atwww.openpathology.philips.com.The image pipeline utilized in Philips’ solutions for digital pathology such as PIPS is built on iSyntax.The pipeline encompasses all the steps from creating and storing WSI data when scanning todisplaying them to users. The following three steps are the main parts of the iSyntax image pipeline:1. Write – compression of data in the iSyntax format and storing it2. Read – reading of iSyntax data and decompressing it to create a source image3. Post processing – processing of the source image to optimize for display to usersFigure 1 iSyntax image pipelinePathology iSyntax image format24555 207 43941 2020 04 24Image pipeline overview

About this documentThis document describes the file format of iSyntax, i.e. the structure of iSyntax files generated byPIPS.For more information on the iSyntax image format, refer to the white paper 'Philips iSyntax forDigital Pathology' from Dr. Bas Hulsken, available on the resources/#isyntaxNoticeThis document contains source code, which is available as code samples compatible with Python andreference codes compatible with Octave and Matlab. The code samples/reference codes are verifiedwith: Python 3.7 Octave 5.1 Matlab 9.84555 207 43941 2020 04 24All code samples and reference codes listed in this document are available for download from theOpen Pathology Portal at www.openpathology.philips.com.Please note that the implementation provided in this document is for demonstration purposes andnot optimized for maximum performance, nor can it handle very large inputs.NoticeAll the brand and product names are trademarks of their respective companies.LicenseCopyright 2020 Koninklijke Philips N.V.Subject to the conditions recited below, a free copyright license is hereby granted to you to copy andredistribute this document as a whole only (you shall not copy or redistribute parts of thisdocument). Your redistribution(s) of this document as a whole must retain the above copyrightnotice, this license and the following disclaimer.THIS LICENSE AND THE CONTENT IN THIS DOCUMENT ARE PROVIDED "AS IS" AND ANY EXPRESS ORIMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OFMERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENTSHALL PHILIPS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, ORCONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTEGOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVERCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS LICENSEOR DOCUMENT IN ANY FORM, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.Pathology iSyntax image format3

2 iSyntax data modelThe iSyntax data model represents the whole slide as three images: label image, containing slide identification information. macro image, providing a thumbnail view of the slide. Whole Slide Image (WSI), representing the tissues region of interests, which are scanned athigh resolution and stored using the iSyntax compression format.4555 207 43941 2020 04 24The data model also contains metadata related to the parameters necessary for image acquisitione.g. scanning protocol, DICOM attributes and acquisition attributes.Figure 2 Image representation by sub-imagesPathology iSyntax image format4

3 iSyntax fileThe iSyntax file is designed to contain both metadata and pixel data corresponding to the iSyntaxdata model. An iSyntax file is represented by an XML header, End of Table (EOT), optionally aseektable and codeblocks.XMLHEADEREOT3 bytesSEEKTABLE(optional)CODEBLOCKSFigure 3 Primary representation of an iSyntax fileXML Header4555 207 43941 2020 04 24The XML Header contains the metadata related to the properties describing: JPEG image data for the label image, see section Label image JPEG image data for the macro image, see section Macro Image the WSIThe metadata is stored in UTF-8 encoded XML format.For more information, see section XML Header.End of Table (EOT)The EOT is a marker to indicate that the stream containing the XML Header has ended. EOTrepresented by 3 characters.EOTHex Representation“\r \n \x04”0D 0A 04Table 1 EOT charactersSeektableThe Seektable is a serialized representation of the block headers as per DICOM standard. It containsthe offset and size of the codeblocks.For more information, see section Seektable structure.Pathology iSyntax image format5

CodeblocksThe recursive Discrete Wavelet Transform (DWT) of the RAW pixel data creates a multiresolutionpyramid. Each level in the pyramid is divided into N x N size codeblocks. The codeblocks contain thecompressed coefficients. For more information, see section Codeblocks.4555 207 43941 2020 04 24Note that the size of the codeblock may vary from scanner to scanner. You can get the size of thecodeblock from the XML header in UFS IMAGE DIMENSION RANGE inUFSImageBlockHeaderTemplate dataobject.For more information, see section Image Dimension Ranges.Figure 4 WSI-images pyramid representationPathology iSyntax image format6

4 XML HeaderThe XML Header contains the metadata related to the properties describing the WSI and the JPEGimage data for both label image and macro imageThe metadata is stored in UTF-8 encoded XML format.The XML Header of the iSyntax file uses three different types of nodes: leaf nodes, branch nodes andarray nodes, see Node types.The root node is a branch node, type ‘DataObject‘ and named ‘DPUfsImport’. For more information,see section DPUfsImport node.Node typesLeaf nodeA leaf node is a node with no child nodes. Generally, a leaf node contains an element named‘Attribute’. Each leaf node contains four attributes in the same order: Name, Group, Element andPMSVR.Example of a leaf node:4555 207 43941 2020 04 24 Attribute Name "DICOM MANUFACTURER" Group "0x0008" Element "0x0070"PMSVR "IString" PHILIPS /Attribute Branch nodeA branch node is a node with child nodes, it contains leaf nodes. Generally, a branch node containsan element named ‘DataObject’ and has one attribute: ‘ObjectType’.Example of a branch node: DataObject ObjectType "DPScannedImage" /DataObject Array nodeArray nodes contains one or more similar type of leaf/branch nodes.Example of an array node Attribute Name "UFS IMAGE DIMENSION RANGES" Group "0x301d" Element "0x200a"PMSVR "IDataObjectArray" Array DataObject ObjectType "UFSImageDimensionRange" Attribute Name "UFS IMAGE DIMENSION RANGE" Group "0x301d" Element "0x200b"PMSVR "IUInt32Array" 0 1 9215 /Attribute /DataObject DataObject ObjectType "UFSImageDimensionRange" Attribute Name "UFS IMAGE DIMENSION RANGE" Group "0x301d" Element "0x200b"PMSVR "IUInt32Array" 0 1 8191 /Attribute /DataObject Pathology iSyntax image format7

DataObject ObjectType "UFSImageDimensionRange" Attribute Name "UFS IMAGE DIMENSION RANGE" Group "0x301d" Element "0x200b"PMSVR "IUInt32Array" 0 1 2 /Attribute /DataObject DataObject ObjectType "UFSImageDimensionRange" Attribute Name "UFS IMAGE DIMENSION RANGE" Group "0x301d" Element "0x200b"PMSVR "IUInt32Array" 0 1 3 /Attribute /DataObject DataObject ObjectType "UFSImageDimensionRange" Attribute Name "UFS IMAGE DIMENSION RANGE" Group "0x301d" Element "0x200b"PMSVR "IUInt32Array" 0 1 3 /Attribute /DataObject /Array /Attribute Metadata attributesAll the attributes with a name starting with ‘DICOM’ are taken from the DICOM standard. For theseattributes, the Group and Element form the 4-byte DICOM tag.All the attributes with a name not starting with ‘DICOM’ are tags which do not exist in the DICOMstandard. These are Philips private tags, required for specifying the digital pathology WSI format.4555 207 43941 2020 04 24Attributes are composed of: Name: the name of the attribute. Group: in the format (0xXXXX) in hexadecimal value. Element: in the format (0xXXXX) in hexadecimal value, PMSVR: describes the data type and format of the attribute value. Value: contains the attribute’s data.Group and Element identify an attribute.The basic attribute structure is: Attribute Name "DICOM MANUFACTURER" Group "0x0008" Element "0x0070"PMSVR "IString" PHILIPS /Attribute The following table shows the list of attributes with group tag, element tag and value type.Attribute NameGrouptagElementtagValue typeDICOM ACQUISITION DATETIME0008002AIStringDICOM MANUFACTURER00080070IStringDICOM MANUFACTURERS MODEL NAME00081090IStringDICOM DERIVATION DESCRIPTION00082111IStringDICOM DEVICE SERIAL NUMBER00181000IStringDICOM SOFTWARE VERSIONS00181020IStringArrayDICOM DATE OF LAST CALIBRATION00181200IStringArrayDICOM TIME OF LAST CALIBRATION00181201IStringArrayDICOM SAMPLES PER PIXEL00280002IUInt16DICOM BITS ALLOCATED00280100IUInt16DICOM BITS STORED00280101IUInt16DICOM HIGH BIT00280102IUInt16Pathology iSyntax image format8

GrouptagElementtagValue typeDICOM ICCPROFILE00282000IStringDICOM LOSSY IMAGE COMPRESSION00282110IStringDICOM LOSSY IMAGE COMPRESSION RATIO00282112IDoubleDICOM LOSSY IMAGE COMPRESSION METHOD00282114IStringPIIM DP SCANNER RACK NUMBER101D1007IUInt16PIIM DP SCANNER SLOT NUMBER101D1008IUInt16PIIM DP SCANNER OPERATOR ID101D1009IStringPIIM DP SCANNER CALIBRATION STATUS101D100AIStringPIM DP UFS INTERFACE VERSION301D1001IStringPIM DP UFS BARCODE301D1002IStringPIM DP SCANNED IMAGES301D1003IDataObjectArrayPIM DP IMAGE TYPE301D1004IStringPIM DP IMAGE DATA301D1005IStringPIM DP SCANNER RACK PRIORITY301D1010IUInt16DP COLOR MANAGEMENT301D1013IDataObjectArrayDP WAVELET QUANTIZER SETTINGS PER COLOR301D1019IDataObjectArrayDP WAVELET QUANTIZER SETTINGS PER LEVEL301D101AIDataObjectArrayDP WAVELET QUANTIZER301D101BIUInt16DP WAVELET DEADZONE301D101CIUInt16UFS IMAGE GENERAL HEADERS301D2000IDataObjectArrayUFS IMAGE NUMBER OF BLOCKS301D2001IUInt32UFS IMAGE DIMENSIONS OVER BLOCK301D2002IUInt16ArrayUFS IMAGE DIMENSIONS301D2003IDataObjectArrayUFS IMAGE DIMENSION NAME301D2004IStringUFS IMAGE DIMENSION TYPE301D2005IStringUFS IMAGE DIMENSION UNIT301D2006IStringUFS IMAGE DIMENSION SCALE FACTOR301D2007IDoubleUFS IMAGE DIMENSION DISCRETE VALUES STRING301D2008IStringArrayUFS IMAGE BLOCK HEADER TEMPLATES301D2009IDataObjectArrayUFS IMAGE DIMENSION RANGES301D200AIDataObjectArrayUFS IMAGE DIMENSION RANGE301D200BIUInt32ArrayUFS IMAGE DIMENSIONS IN BLOCK301D200CIUInt16ArrayUFS IMAGE BLOCK HEADERS301D200DIDataObjectArrayUFS IMAGE BLOCK COORDINATE301D200EIUInt32ArrayUFS IMAGE BLOCK COMPRESSION METHOD301D200FIStringUFS IMAGE BLOCK DATA OFFSET301D2010IUint64UFS IMAGE BLOCK SIZE301D2011IUint64UFS IMAGE BLOCK HEADER TEMPLATE ID301D2012IUInt32UFS IMAGE BLOCK HEADER TABLE301D2014IString4555 207 43941 2020 04 24Attribute NameTable 2 List of AttributesPathology iSyntax image format9

DPUfsImport nodeDe DPUfsImport node is the root node with the structure: DataObject ObjectType "DPUfsImport" /DataObject The following table shows the child nodes part of the DPUfsImport.Parent Data Object: etypeDescriptionRangeDICOM MANUFACTURER00080070IStringdicom:LOLeafDICOM data element(0008,0070)(Value Multiplicity:1)“PHILIPS”DICOM ACQUISITIONDATETIME0008002AIStringLeafDate & Time when slidetransfer started (XMLHeader created).DicomAcquisitionDate andDicomAcquisitionTime arecombined into one singleelementMinimum:1900-01-01T00:00:00DICOM MANUFACTURERSMODEL NAME00081090IStringLeafDICOM data element(0008,1090)(Value Multiplicity:1)“UFS Scanner”DICOM DEVICE SERIALNUMBER00181000IStringLeafDICOM data element(0018,1000)(Value Multiplicity: 1)“FMTOO19’DICOM SOFTWAREVERSIONS00181020IStringArra LeafyNote: Value is configurablein UFS duringmanufacturingSoftware versions of twosubcomponents.Note: There are nolimitations on the number ofentries in the list but also nolimitations on format/valuesof the strings in the softwareversions list.DICOM DATE OF LASTCALIBRATION00181200IStringArra LeafyDate & Time of lastcalibration by a serviceengineerDICOM TIME OF LASTCALIBRATION00181201IStringArra LeafyDate &Time of lastcalibration by a serviceengineerPIIM DP SCANNER RACKNUMBER101D1007IUInt16LeafUFS store position in whichthe rack was placed andfrom which the slide wastaken.[1.15]PIIM DP SCANNER SLOTNUMBER101D1008IUInt16LeafPosition in the rack wherethe slide was stored.[1.20]PIM DP UFS INTERFACEVERSION301D1001IStringdicom:LOLeafUnique identifier of theentire image transfer format“5.0”PIM DP UFS BARCODE301D1002IStringLeafBase64 encoded BarcodevalueN/APathology iSyntax image format104555 207 43941 2020 04 24Maximum:2154-12-31T23:59:59

ptionRangePIM DP SCANNED IMAGES301D1003IDataObjectArrayArrayN/APIIM DP SCANNEROPERATOR ID101D1009IStringLeaf“Operator ID”PIIM DP SCANNERCALIBRATION STATUS101D100AIStringLeafPIM DP SCANNER RACKPRIORITY301D1010IUInt16LeafBoolean indicates whetherlast calibration attemptfailed.“OK” “NOT OK”Table 3 DPUfsImport node attributesScanned Image nodeParent Data Object: escriptionRangeDICOM DERIVATIONDESCRIPTION00082111IStringLeafSingle string containing RAW: ”Philips UFS V%s”image format description iSyntax: “Philips UFS V%s Quality %d DWT %d