示例#1
0
        /* private static void ProcessMessageWithInstanceReference(byte[] message, ILogger log)
         * {
         *  // Get a reference to a blob named "sample-file"
         *  CloudBlob blob = container.GetBlobReference(Encoding.UTF8.GetString(message));
         *
         *  // Read Blob
         *  Stream stream = blob.OpenRead();
         *  DicomFile dicomFile = DicomFile.Open(stream);
         *
         *  System.Diagnostics.Trace.WriteLine(ToInstanceIdentifier(dicomFile.Dataset).ToString());
         *  log.LogInformation(ToInstanceIdentifier(dicomFile.Dataset).ToString());
         *
         *  StoreRetrievedData(dicomFile);
         *
         *  log.LogInformation("Successfully stored file.");
         * }
         *
         * private static void ProcessMessageWithStudyReference(byte[] message, ILogger log)
         * {
         *  string studyBlobs = Encoding.UTF8.GetString(message);
         *
         *  string[] instances = studyBlobs.Split(',');
         *
         *  foreach (string instance in instances)
         *  {
         *      // Get a reference to a blob named "sample-file"
         *      CloudBlob blob = container.GetBlobReference(instance);
         *
         *      // Read Blob
         *      Stream stream = blob.OpenRead();
         *      DicomFile dicomFile = DicomFile.Open(stream);
         *
         *      System.Diagnostics.Trace.WriteLine(ToInstanceIdentifier(dicomFile.Dataset).ToString());
         *      log.LogInformation(ToInstanceIdentifier(dicomFile.Dataset).ToString());
         *
         *      // StoreRetrievedData(dicomFile);
         *
         *      log.LogInformation("Successfully stored file.");
         *  }
         * } */

        private static void ProcessMessageWithPreGeneratedData(byte[] message)
        {
            PatientInstance pI = JsonSerializer.Deserialize <PatientInstance>(Encoding.UTF8.GetString(message));

            // 400, 400, 100 - 16MB
            // 100, 100, 100 - 1MB
            // 100, 100, 50 - 0.5MB
            DicomFile dicomFile = Samples.CreateRandomDicomFileWithPixelData(
                pI,
                rows: 100,
                columns: 100,
                frames: 50);

            StoreRetrievedData(dicomFile);
        }
示例#2
0
        private static async Task Stow(Message message, CancellationToken token)
        {
            PatientInstance pI = JsonSerializer.Deserialize <PatientInstance>(Encoding.UTF8.GetString(message.Body));

            // 400, 400, 100 - 16MB
            // 100, 100, 100 - 1MB
            // 100, 100, 50 - 0.5MB
            DicomFile dicomFile = Samples.CreateRandomDicomFileWithPixelData(
                pI,
                rows: 100,
                columns: 100,
                frames: 50);

            DicomWebResponse <DicomDataset> response = await client.StoreAsync(new List <DicomFile>() { dicomFile }, cancellationToken : token);

            int statusCode = (int)response.StatusCode;

            if (statusCode != 409 && statusCode < 200 && statusCode > 299)
            {
                throw new HttpRequestException("Stow operation failed", null, response.StatusCode);
            }

            return;
        }