/// <summary> /// Constructs a deserialization-only DICOM softcopy presentation state object. /// </summary> /// <param name="psSopClass">The SOP class of this type of softcopy presentation state.</param> /// <param name="dicomFile">The presentation state file.</param> protected DicomSoftcopyPresentationState(SopClass psSopClass, DicomFile dicomFile) { if (dicomFile.MediaStorageSopClassUid != psSopClass.Uid) { string message = string.Format("Expected: {0}; Found: {1}", psSopClass, SopClass.GetSopClass(dicomFile.MediaStorageSopClassUid)); throw new ArgumentException("The specified DICOM file is not of a compatible SOP Class. " + message, "dicomFile"); } _presentationSopClass = psSopClass; _dicomFile = dicomFile; _serialized = true; _sourceAETitle = _dicomFile.SourceApplicationEntityTitle; _stationName = _dicomFile.DataSet[DicomTags.StationName].ToString(); _institution = Institution.GetInstitution(_dicomFile); _manufacturer = _dicomFile.DataSet[DicomTags.Manufacturer].ToString(); _manufacturersModelName = _dicomFile.DataSet[DicomTags.ManufacturersModelName].ToString(); _deviceSerialNumber = _dicomFile.DataSet[DicomTags.DeviceSerialNumber].ToString(); _softwareVersions = _dicomFile.DataSet[DicomTags.SoftwareVersions].ToString(); _presentationInstanceNumber = _dicomFile.DataSet[DicomTags.InstanceNumber].GetInt32(0, 0); _presentationSopInstanceUid = _dicomFile.DataSet[DicomTags.SopInstanceUid].ToString(); _presentationSeriesDateTime = DateTimeParser.ParseDateAndTime(_dicomFile.DataSet, 0, DicomTags.SeriesDate, DicomTags.SeriesTime); _presentationSeriesNumber = GetNullableInt32(_dicomFile.DataSet[DicomTags.SeriesNumber], 0); _presentationSeriesInstanceUid = _dicomFile.DataSet[DicomTags.SeriesInstanceUid].ToString(); _presentationLabel = _dicomFile.DataSet[DicomTags.ContentLabel].ToString(); }