Example #1
0
        private Dvtk.Sessions.ValidationControlFlags ValidateUseDefinitions(DicomThread dicomThread, DicomMessage dicomMessage)
        {
            Dvtk.Sessions.ValidationControlFlags validationFlag = Dvtk.Sessions.ValidationControlFlags.None;

            String iodName = dicomThread.GetIodNameFromDefinition(dicomMessage);

            if (iodName.Length == 0)
            {
                this.thread.WriteWarningInternal("- Skipping definition file validation: unable to find correct definition file for DimseCommand " + dicomMessage.CommandSet.DimseCommand.ToString() + " and SOP Class UID " + dicomMessage.CommandSet.GetSopClassUid() + ".  Are the correct definition files loaded?");
            }
            else
            {
                if (dicomMessage.IodNamesValidatedAgainst.Contains(iodName))
                {
                    this.thread.WriteInformationInternal("- Skipping definition file validation: already performed for \"" + iodName + "\".");
                }
                else
                {
                    dicomMessage.DataSet.IodId = iodName;
                    dicomMessage.IodNamesValidatedAgainst.Add(iodName);
                    validationFlag = Dvtk.Sessions.ValidationControlFlags.UseDefinitions;
                    this.thread.WriteInformationInternal("- Using \"" + iodName + "\" for definition file validation.");
                }
            }

            return(validationFlag);
        }
Example #2
0
        /// <summary>
        /// Validate the Dicom Message using a definition file.
        /// </summary>
        /// <param name="dicomMessage">The Dicom Message.</param>
        /// <param name="iodId">The IOD ID to use, implicitly determining which definition file to use.</param>
        ///

        public void Validate(DicomThread dicomThread, DicomMessage dicomMessage, String iodName)
        {
            this.thread.WriteInformationInternal("Validate Dicom message...");

            Dvtk.Sessions.ValidationControlFlags validationFlags = Dvtk.Sessions.ValidationControlFlags.None;

            // Determine if the VR's need to be validated.
            validationFlags |= ValidateValueRepresentations(dicomMessage);

            // Determine if the DicomMessage can or needs to be validated against a definition file.
            if (iodName.Length > 0)
            {
                validationFlags |= ValidateUseDefinitions(dicomMessage, iodName);
            }

            // If validation is needed, do it now.
            if (validationFlags != Dvtk.Sessions.ValidationControlFlags.None)
            {
                dicomThread.DvtkScriptSession.Validate(dicomMessage.DvtkDataDicomMessage, null, validationFlags);
            }
            else
            {
                dicomThread.WriteInformationInternal("No validation performed.");
            }
        }
Example #3
0
        public void Validate(DicomThread dicomThread, DicomMessage dicomMessage1, DicomMessage dicomMessage2)
        {
            this.thread.WriteInformationInternal("Validate Dicom message...");

            Dvtk.Sessions.ValidationControlFlags validationFlags = Dvtk.Sessions.ValidationControlFlags.None;

            // Determine if the VR's need to be validated.
            validationFlags |= ValidateValueRepresentations(dicomMessage1);

            // Determine if the DicomMessage can or needs to be validated against a definition file.
            validationFlags |= ValidateUseDefinitions(dicomThread, dicomMessage1);

            this.thread.WriteInformationInternal("- Using reference Dicom message.");
            dicomThread.DvtkScriptSession.Validate(dicomMessage1.DvtkDataDicomMessage, dicomMessage2.DvtkDataDicomMessage, validationFlags | Dvtk.Sessions.ValidationControlFlags.UseReferences);
        }
Example #4
0
        private Dvtk.Sessions.ValidationControlFlags ValidateValueRepresentations(DicomMessage dicomMessage)
        {
            Dvtk.Sessions.ValidationControlFlags validationFlag = Dvtk.Sessions.ValidationControlFlags.None;

            if (!dicomMessage.AreValueRepresentationsValidated)
            {
                validationFlag = Dvtk.Sessions.ValidationControlFlags.UseValueRepresentations;
                dicomMessage.AreValueRepresentationsValidated = true;
                this.thread.WriteInformationInternal("- Validating VR's");
            }
            else
            {
                this.thread.WriteInformationInternal("- Skipping VR's validation: already performed.");
            }

            return(validationFlag);
        }
Example #5
0
        private Dvtk.Sessions.ValidationControlFlags ValidateUseDefinitions(DicomMessage dicomMessage, String iodName)
        {
            Dvtk.Sessions.ValidationControlFlags validationFlag = Dvtk.Sessions.ValidationControlFlags.None;

            if (dicomMessage.IodNamesValidatedAgainst.Contains(iodName))
            {
                this.thread.WriteInformationInternal("- Skipping definition file validation: already performed for \"" + iodName + "\".");
            }
            else
            {
                dicomMessage.DataSet.IodId = iodName;
                dicomMessage.IodNamesValidatedAgainst.Add(iodName);
                validationFlag = Dvtk.Sessions.ValidationControlFlags.UseDefinitions;
                this.thread.WriteInformationInternal("- Using \"" + iodName + "\" for definition file validation.");
            }

            return(validationFlag);
        }