+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a JPEGBaseLineProcess1 one.
+ * @return True when JPEGBaseLineProcess1found. False in all other cases.
+ */
+bool gdcmDocument::IsJPEGBaseLineProcess1TransferSyntax(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ std::string Transfer = ((gdcmValEntry *)Element)->GetValue();
+ if ( Transfer == "1.2.840.10008.1.2.4.50" )
+ return true;
+ return false;
+}
+
+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a JPEGExtendedProcess2-4 one.
+ * @return True when JPEGExtendedProcess2-4 found. False in all other cases.
+ */
+bool gdcmDocument::IsJPEGExtendedProcess2_4TransferSyntax(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+ return ( ((gdcmValEntry *)Element)->GetValue() == "1.2.840.10008.1.2.4.51"
+);}
+
+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a JPEGExtendeProcess3-5 one.
+ * @return True when JPEGExtendedProcess3-5 found. False in all other cases.
+ */
+bool gdcmDocument::IsJPEGExtendedProcess3_5TransferSyntax(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ std::string Transfer = ((gdcmValEntry *)Element)->GetValue();
+ if ( Transfer == "1.2.840.10008.1.2.4.52" )
+ return true;
+ return false;
+}
+
+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a JPEGSpectralSelectionProcess6-8 one.
+ * @return True when JPEGSpectralSelectionProcess6-8 found. False in all
+ * other cases.
+ */
+bool gdcmDocument::IsJPEGSpectralSelectionProcess6_8TransferSyntax(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ std::string Transfer = ((gdcmValEntry *)Element)->GetValue();
+ if ( Transfer == "1.2.840.10008.1.2.4.53" )
+ return true;
+ return false;
+}
+
+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a RLE Lossless one.
+ * @return True when RLE Lossless found. False in all
+ * other cases.
+ */
+bool gdcmDocument::IsRLELossLessTransferSyntax(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ std::string Transfer = ((gdcmValEntry *)Element)->GetValue();
+ if ( Transfer == "1.2.840.10008.1.2.5" ) {
+ return true;
+ }
+ return false;
+}
+
+/**
+ * \brief Determines if Transfer Syntax was already encountered
+ * and if it corresponds to a JPEG Lossless one.
+ * @return True when RLE Lossless found. False in all
+ * other cases.
+ */
+bool gdcmDocument::IsJPEGLossless(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ // faire qq chose d'intelligent a la place de ça
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ const char * Transfert = ((gdcmValEntry *)Element)->GetValue().c_str();
+
+ if ( memcmp(Transfert+strlen(Transfert)-2 ,"70",2)==0) return true;
+ if ( memcmp(Transfert+strlen(Transfert)-2 ,"55",2)==0) return true;
+
+ if (((gdcmValEntry *)Element)->GetValue() == "1.2.840.10008.1.2.4.57")
+return true;
+
+ return false;
+}
+
+/**
+ * \brief Determines if the Transfer Syntax was already encountered
+ * and if it corresponds to a JPEG2000 one
+ * @return True when JPEG2000 (Lossly or LossLess) found. False in all
+ * other cases.
+ */
+bool gdcmDocument::IsJPEG2000(void) {
+ gdcmDocEntry* Element = GetDocEntryByNumber(0x0002, 0x0010);
+ if ( !Element )
+ return false;
+ LoadDocEntrySafe(Element);
+
+ std::string Transfer = ((gdcmValEntry *)Element)->GetValue();
+ if ( (Transfer == "1.2.840.10008.1.2.4.90")
+ || (Transfer == "1.2.840.10008.1.2.4.91") )
+ return true;
+ return false;
+}
+
+/**
+ * \brief Predicate for dicom version 3 file.
+ * @return True when the file is a dicom version 3.
+ */
+bool gdcmDocument::IsDicomV3(void) {
+ // Checking if Transfert Syntax exists is enough
+ // Anyway, it's to late check if the 'Preamble' was found ...
+ // And ... would it be a rich idea to check ?
+ // (some 'no Preamble' DICOM images exist !)
+ return (GetDocEntryByNumber(0x0002, 0x0010) != NULL);
+}
+