public void ProcessRequest(HttpContext context) { StreamReader reader = new StreamReader(context.Request.InputStream); string inputstr = HttpUtility.UrlDecode(reader.ReadToEnd()); JavaScriptSerializer js = new JavaScriptSerializer(); Img img = js.Deserialize <Img>(inputstr); if (img != null) { string Pic_Path = HttpContext.Current.Server.MapPath(img.Name + ".png"); using (FileStream fs = new FileStream(Pic_Path, FileMode.Create)) { using (BinaryWriter bw = new BinaryWriter(fs)) { byte[] data = Convert.FromBase64String(img.ImageData); bw.Write(data); bw.Close(); } } DicomUtility.Bmp2Dcm(Pic_Path, Pic_Path.Replace("png", "dcm"), img.Name, "F", img.Age.ToString(), img.ProcessNum, img.Modality, img.HospitalName); DicomUtility.SendDcm(Pic_Path.Replace("png", "dcm"), "127.0.0.1", 104); } context.Response.ContentType = "text/plain"; context.Response.Write("suc"); }
public void Process(DicomDataset dicomDataset, DicomItem item, ProcessContext context = null) { EnsureArg.IsNotNull(dicomDataset, nameof(dicomDataset)); EnsureArg.IsNotNull(item, nameof(item)); var redactedValues = new List <string>(); if (item.ValueRepresentation == DicomVR.AS) { var values = ((DicomAgeString)item).Get <string[]>(); foreach (var value in values) { var result = _redactFunction.Redact(DicomUtility.ParseAge(value)); if (result != null) { redactedValues.Add(DicomUtility.GenerateAgeString(result)); } } } else if (item.ValueRepresentation == DicomVR.DA) { var values = DicomUtility.ParseDicomDate((DicomDate)item); foreach (var value in values) { var result = _redactFunction.Redact(value); if (result != null) { redactedValues.Add(DicomUtility.GenerateDicomDateString((DateTimeOffset)result)); } } } else if (item.ValueRepresentation == DicomVR.DT) { DateTimeObject[] values = DicomUtility.ParseDicomDateTime((DicomDateTime)item); foreach (var value in values) { DateTimeObject result = _redactFunction.Redact(value); if (result != null) { redactedValues.Add(DicomUtility.GenerateDicomDateTimeString(result)); } } } else if (item.ValueRepresentation == DicomVR.SQ) { dicomDataset.AddOrUpdate <DicomDataset>(DicomVR.SQ, item.Tag); return; } if (redactedValues.Count != 0) { dicomDataset.AddOrUpdate(item.ValueRepresentation, item.Tag, redactedValues.ToArray()); } else { dicomDataset.AddOrUpdate <string>(item.ValueRepresentation, item.Tag, values: null); } _logger.LogDebug($"The value of DICOM item '{item}' is redacted."); }