public void Initialize( ) { try { DicomHelper = new DicomHelpers( ); DataAccessHelper = new DataAccessHelpers( ); var storagePath = DicomHelpers.GetTestDataFolder("storage", true); var mediaIdFactory = new DicomMediaIdFactory(); MediaStorageService storageService = new FileStorageService(storagePath); var factory = new Pacs.Commands.DCloudCommandFactory(storageService, DataAccessHelper.DataAccess, new DicomMediaWriterFactory(storageService, mediaIdFactory), mediaIdFactory); StoreService = new ObjectStoreService(factory); QueryService = new ObjectArchieveQueryService(DataAccessHelper.DataAccess); PopulateData( ); } catch (Exception) { Cleanup( ); throw; } }
public static void Start(int port, string aet) { AETitle = aet; string storageConection = ConfigurationManager.AppSettings["app:PacsStorageConnection"]; if (storageConection.StartsWith("|datadirectory|", StringComparison.OrdinalIgnoreCase)) { var appDataPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData); var lastIndex = storageConection.IndexOf('|', 1); var userPathPart = storageConection.Substring(lastIndex + 1); storageConection = appDataPath + userPathPart; } IDicomMediaIdFactory mediaIdFactory = new DicomMediaIdFactory(); DbSchemaProvider schemaProvider = new StorageDbSchemaProvider(); DatabaseService = new SqlDatabaseFactory(ConfigurationManager.AppSettings["app:PacsDataArchieve"]); IObjectArchieveDataAccess dataAccess = new ObjectArchieveDataAccess( schemaProvider, new ObjectArchieveDataAdapter( schemaProvider, DatabaseService ) ); IMediaStorageService storageService = new FileStorageService(storageConection); IDicomMediaWriterFactory dicomMediaWriterFactory = new DicomMediaWriterFactory( storageService, mediaIdFactory ); StorageService = new ObjectStoreService( new Pacs.Commands.DCloudCommandFactory( storageService, dataAccess, dicomMediaWriterFactory, mediaIdFactory ) ); QueryService = new ObjectArchieveQueryService(dataAccess); RetrieveService = new ObjectRetrieveService( storageService, dicomMediaWriterFactory, mediaIdFactory ); _server = DicomServer.Create <SCP>(port); }
public void Initialize( ) { DicomHelper = new DicomHelpers( ); DataAccessHelper = new DataAccessHelpers( ); var storagePath = DicomHelpers.GetTestDataFolder("storage", true); var mediaIdFactory = new DicomMediaIdFactory( ); MediaStorageService storageService = new FileStorageService(storagePath); var factory = new Pacs.Commands.DCloudCommandFactory(storageService, DataAccessHelper.DataAccess, new DicomMediaWriterFactory(storageService, mediaIdFactory), mediaIdFactory); StoreService = new ObjectStoreService(factory); }
private static IObjectStoreService CreateStorageService(string storagePath, string databaseConnectionString) { IDicomMediaIdFactory mediaIdFactory = new DicomMediaIdFactory( ); IMediaStorageService storageService = new FileStorageService(storagePath); DbSchemaProvider schemaProvider = new StorageDbSchemaProvider( ); IDatabaseFactory databaseFacory = new SqlDatabaseFactory(databaseConnectionString); ObjectArchieveDataAdapter dataAdapter = new ObjectArchieveDataAdapter(schemaProvider, databaseFacory); IObjectArchieveDataAccess dataAccess = new ObjectArchieveDataAccess(databaseConnectionString, schemaProvider, dataAdapter); IDicomMediaWriterFactory mediaWriterFactory = new DicomMediaWriterFactory(storageService, mediaIdFactory); IDCloudCommandFactory factory = new DCloudCommandFactory(storageService, dataAccess, mediaWriterFactory, mediaIdFactory); IObjectStoreService StoreService = new ObjectStoreService(factory); return(StoreService); }
public void Initialize( ) { DicomHelper = new DicomHelpers( ); DataAccessHelper = new DataAccessHelpers( ); var storagePath = DicomHelpers.GetTestDataFolder("storage", true); var mediaIdFactory = new DicomMediaIdFactory( ); MediaStorageService storageService = new FileStorageService(storagePath); IObjectArchieveQueryService queryService = new ObjectArchieveQueryService(DataAccessHelper.DataAccess); var factory = new Pacs.Commands.DCloudCommandFactory(storageService, DataAccessHelper.DataAccess, new DicomMediaWriterFactory(storageService, mediaIdFactory), mediaIdFactory); StoreService = new ObjectStoreService(factory); var urlProvider = new MockRetrieveUrlProvider(); WebStoreService = new WebObjectStoreService(StoreService, urlProvider); WebQueryService = new QidoRsService(queryService, mediaIdFactory, storageService); }
public ResponseContent Convert(ConverterData data) { List <ConvertedFileInfo> convertedDcm = new List <ConvertedFileInfo>(); ResponseContent responseContent = new ResponseContent( ); if (data.Files.Count == 0) { responseContent.Status = System.Net.HttpStatusCode.NoContent; return(responseContent); } switch (data.Format) { case KnownFormats.JSON: { foreach (var file in data.Files) { var converter = new JsonDicomConverter(); var dcmFile = Dicom.DicomFile.Open(new MemoryStream(file.Data)); converter.WriteInlineBinary = true; convertedDcm.Add(new ConvertedFileInfo( ) { FileName = Path.ChangeExtension(file.FileName, KnownFormats.JSON), Data = Encoding.UTF8.GetBytes(converter.Convert(dcmFile.Dataset)) }); } } break; case KnownFormats.XML: { foreach (var file in data.Files) { var converter = new XmlDicomConverter(); var dcmFile = Dicom.DicomFile.Open(new MemoryStream(file.Data)); converter.WriteInlineBinary = true; convertedDcm.Add(new ConvertedFileInfo( ) { FileName = Path.ChangeExtension(file.FileName, KnownFormats.XML), Data = Encoding.UTF8.GetBytes(converter.Convert(dcmFile.Dataset)) }); } } break; case KnownFormats.JPG: { foreach (var file in data.Files) { FileStorageService storageService = new FileStorageService(Path.GetTempPath()); DicomMediaIdFactory mediaIdFactory = new DicomMediaIdFactory(); JpegMediaWriter writers = new JpegMediaWriter(storageService, mediaIdFactory); var dcmFile = Dicom.DicomFile.Open(new MemoryStream(file.Data)); var locations = writers.CreateMedia(new DicomMediaWriterParameters() { Dataset = dcmFile.Dataset, MediaInfo = new DicomMediaProperties() { MediaType = writers.MediaType } }); int count = 1; foreach (var location in locations) { var fileName = locations.Count > 1 ? Path.ChangeExtension((Path.GetFileNameWithoutExtension(file.FileName) + count++), KnownFormats.JPG): Path.ChangeExtension(file.FileName, KnownFormats.JPG); using (var stream = location.Download()) { convertedDcm.Add(new ConvertedFileInfo( ) { Data = stream.ReadAllBytes(), FileName = fileName }); } location.Delete(); } } } break; default: { responseContent.Status = System.Net.HttpStatusCode.UnsupportedMediaType; } break; } responseContent.FileName = Path.ChangeExtension(convertedDcm.First().FileName, "zip"); responseContent.Content = new ByteArrayContent(ZippingService.CreateZipData(convertedDcm)); responseContent.Status = System.Net.HttpStatusCode.OK; return(responseContent); }