private void toolStripButtonDeleteTag_Click(object sender, EventArgs e) { AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); if (selectedScript == null) { return; } Anonymizer currentAnonymizer = selectedScript.Anonymizer; if (currentAnonymizer == null) { return; } List <DicomTagNode> nodes = (from n in treeGridViewTags.Rows.Cast <DataGridViewRow>() where n.Selected select n as DicomTagNode).ToList(); foreach (DicomTagNode node in nodes) { // treeGridViewTags.Nodes.Remove(node); treeGridViewTags.Rows.Remove(node); currentAnonymizer.DeleteMacro(node.DicomTag.Code); } if (nodes.Count > 0) { SetDirty(); } }
private DicomTagNode AddAnonymizationTag(AnonymizeScript selectedScript, long tag, string name, string macro) { DicomTag dicomTag = DicomTagTable.Instance.Find(tag); DicomTagNode node = new DicomTagNode(); node.CreateCells(treeGridViewTags); node.SetValues(string.Format("({0:X4},{1:X4})", tag.GetGroup(), tag.GetElement()), name, macro); treeGridViewTags.Rows.Add(node); // treeGridViewTags.Rows.Add(node); node.DicomTag = dicomTag; // node.Image = Resources.Tag_16x16; //if (dicomTag != null && dicomTag.VR == DicomVRType.SQ) // node.Image = Resources.Tags_16x16; Anonymizer selectedAnonymizer = null; if (selectedScript != null) { selectedAnonymizer = selectedScript.Anonymizer; } if (selectedAnonymizer != null) { selectedAnonymizer[tag] = macro; node.Tag = selectedAnonymizer.FindTag(tag); return(node); } return(null); }
public void RenameScript(string oldFriendlyName, string newFriendlyName) { string exceptionMessage; if (ScriptExists(oldFriendlyName)) { exceptionMessage = string.Format("Script does not exist: '{0}'", oldFriendlyName); throw new Exception(exceptionMessage); } if (ScriptExists(newFriendlyName)) { exceptionMessage = string.Format("Script name already used: '{0}'", newFriendlyName); throw new Exception(exceptionMessage); } AnonymizeScript s = _scripts.Find(x => x.FriendlyName.Equals(oldFriendlyName, StringComparison.OrdinalIgnoreCase)); if (s != null) { s.FriendlyName = newFriendlyName; if (string.Equals(_activeScriptName, oldFriendlyName, StringComparison.InvariantCultureIgnoreCase)) { _activeScriptName = s.FriendlyName; } } }
private void InitializeMacroCombo(AnonymizeScript selectedScript) { DataGridViewComboBoxColumn column = (DataGridViewComboBoxColumn)treeGridViewTags.Columns[TAGS_VALUE_COLUMN]; column.Items.Clear(); if (selectedScript == null) { return; } column.DisplayStyle = DataGridViewComboBoxDisplayStyle.DropDownButton; Anonymizer selectedAnonymizer = selectedScript.Anonymizer; if (selectedAnonymizer != null) { foreach (string key in selectedAnonymizer.MacroProcessor.Macros.Keys) { column.Items.Add(string.Format("${{{0}}}", key)); } column.Items.Add("${random_string(5)}"); column.Items.Add("${add_days(7)}"); column.Items.Add("${add_days(5)}"); column.Items.Add("${random_time(05:00:00)}"); column.Items.Add("${replace}"); } }
// Modifying Script private void toolStripButtonInsertTag_Click(object sender, EventArgs e) { List <long> tags = GetTags(); using (InsertElementDlg dlgInsert = new InsertElementDlg(tags)) { if (dlgInsert.ShowDialog(this) == DialogResult.OK) { AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); DicomTagNode node = null; foreach (long tag in dlgInsert.Tags) { DicomTag dicomTag = DicomTagTable.Instance.Find(tag); DicomTagNode tagNode = AddAnonymizationTag(selectedScript, tag, dicomTag != null ? dicomTag.Name : string.Empty, GetDefaultMacro(dicomTag)); if (node == null) { node = tagNode; } } if (dlgInsert.Tags.Count > 0) { SetDirty(); } if (node != null) { treeGridViewTags.ClearSelection(); Console.WriteLine("Need to SelectRow"); //treeGridViewTags.SelectRow(node.Index); treeGridViewTags.FirstDisplayedScrollingRowIndex = node.Index; } } } }
public string GetNewScriptName(ScriptNameEnum scriptType) { string rootName = "Script"; switch (scriptType) { case ScriptNameEnum.New: rootName = "New"; break; case ScriptNameEnum.Default: rootName = "Default"; break; case ScriptNameEnum.Copy: rootName = "Copy"; break; } string suffix = GetNextScriptSuffix(); string friendlyName = string.Format("{0}{1}", rootName, suffix); AnonymizeScript script = _scripts.Find(x => x.FriendlyName.Equals(friendlyName, StringComparison.OrdinalIgnoreCase)); if (script == null) { return(friendlyName); } return(string.Empty); }
private void ActivateScript() { AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); _scripts.SetActive(selectedScript); UpdateUI(); SetDirty(); }
public void Add(AnonymizeScript script) { _scripts.Add(script); if (string.IsNullOrEmpty(_activeScriptName)) { _activeScriptName = script.FriendlyName; } }
public void Delete(string deleteScriptName) { AnonymizeScript s = _scripts.Find(x => x.FriendlyName.Equals(deleteScriptName, StringComparison.OrdinalIgnoreCase)); if (s != null) { Delete(s); } }
public AnonymizeScript(string friendlyName, AnonymizeScript previousScript) { Anonymizer = new Anonymizer(false); FriendlyName = friendlyName; foreach (TagMacro tagMacro in previousScript.Anonymizer.TagMacros) { Anonymizer.TagMacros.Add(tagMacro); } }
public AnonymizeScripts(bool defaultScript) { _scripts = new List <AnonymizeScript>(); if (defaultScript) { AnonymizeScript scriptDefault = new AnonymizeScript("Default Script", true); _scripts.Add(scriptDefault); SetActive(scriptDefault); } }
public Anonymizer ActiveAnonymizer() { AnonymizeScript activeScript = ActiveScript(); if (activeScript != null) { return(activeScript.Anonymizer); } return(null); }
private void toolStripButtonAddDefault_Click(object sender, EventArgs e) { string newScriptName = _scripts.GetNewScriptName(AnonymizeScripts.ScriptNameEnum.Default); AnonymizeScript newScript = new AnonymizeScript(newScriptName, true); _scripts.Add(newScript); ListViewItem lvi = listViewAnonymizeScripts.Items.Add(newScriptName); lvi.Tag = newScript; EnterChangeNameMode(lvi); SetDirty(); }
public void Delete(AnonymizeScript script) { string removedScriptName = script.FriendlyName; _scripts.Remove(script); if (string.Equals(removedScriptName, _activeScriptName, StringComparison.OrdinalIgnoreCase)) { _activeScriptName = string.Empty; if (_scripts.Count > 0) { _activeScriptName = _scripts[0].FriendlyName; } } }
private void listViewAnonymizeScripts_AfterLabelEdit(object sender, LabelEditEventArgs e) { _changeNameMode = false; if (e.Label == null) { return; } string labelTrimmed = e.Label.Trim(); e.CancelEdit = true; //do something with variable trimmed ListViewItem lvi = listViewAnonymizeScripts.Items[e.Item]; if (lvi != null) { AnonymizeScript script = lvi.Tag as AnonymizeScript; if (script != null) { if (_scripts.ScriptExists(labelTrimmed)) { // Check to see if name is just a case change (i.e. 'Script 1' --> 'SCRIPT 1') if (string.Equals(script.FriendlyName, e.Label, StringComparison.OrdinalIgnoreCase)) { listViewAnonymizeScripts.SelectedItems[0].Text = labelTrimmed; script.FriendlyName = labelTrimmed; if (string.Equals(_scripts.ActiveScriptName, labelTrimmed, StringComparison.Ordinal)) { _scripts.ActiveScriptName = labelTrimmed; } SetDirty(); } // Otherwise cancel edit if label already exists e.CancelEdit = true; } else { // Still cancel the edit, but replace with trimmed text listViewAnonymizeScripts.SelectedItems[0].Text = labelTrimmed; script.FriendlyName = labelTrimmed; if (string.Equals(_scripts.ActiveScriptName, labelTrimmed, StringComparison.Ordinal)) { _scripts.ActiveScriptName = labelTrimmed; } SetDirty(); } } } }
public AnonymizeScript SetActive(string friendlyName) { AnonymizeScript script = _scripts.Find(x => x.FriendlyName.Equals(friendlyName, StringComparison.OrdinalIgnoreCase)); if (script != null) { _activeScriptName = script.FriendlyName; } else { string exceptionMessage = string.Format("Script not found: '{0}'", friendlyName); throw new Exception(exceptionMessage); } return(script); }
public void Initialize() { DicomEngine.Startup(); // LoadScriptList(); listViewAnonymizeScripts.Items.Clear(); // Select SelectActiveScript(); AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); UpdateScriptDataGrid(selectedScript); listViewAnonymizeScripts.AutoResizeColumns(ColumnHeaderAutoResizeStyle.ColumnContent); listViewAnonymizeScripts.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); _isDirty = false; }
private void CloneScript() { AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); if (selectedScript != null) { string newScriptName = string.Format("{0} Copy", selectedScript.FriendlyName); if (_scripts.ScriptExists(newScriptName)) { newScriptName = _scripts.GetNewScriptName(AnonymizeScripts.ScriptNameEnum.Copy); } AnonymizeScript newScript = new AnonymizeScript(newScriptName, selectedScript); _scripts.Add(newScript); ListViewItem lviNew = listViewAnonymizeScripts.Items.Add(newScriptName); lviNew.Tag = newScript; EnterChangeNameMode(lviNew); SetDirty(); } }
private void UpdateUI() { bool itemsSelected = listViewAnonymizeScripts.SelectedItems.Count > 0; toolStripButtonSave.Enabled = _isDirty; toolStripButtonClone.Enabled = itemsSelected; toolStripButtonDelete.Enabled = itemsSelected; toolStripButtonActivate.Enabled = itemsSelected; // Script Definition Toolstrip buttons toolStripButtonInsertTag.Enabled = itemsSelected; toolStripButtonDeleteTag.Enabled = itemsSelected; // foreach (ListViewItem lvi in listViewAnonymizeScripts.Items) { if (lvi == null) { break; } if (lvi.Tag == null) { break; } AnonymizeScript script = lvi.Tag as AnonymizeScript; if (script != null) { if (string.Equals(_scripts.ActiveScriptName, script.FriendlyName, StringComparison.OrdinalIgnoreCase)) { lvi.ImageIndex = 0; } else { lvi.ImageIndex = -1; } } } }
private void LoadMacros(AnonymizeScript selectedScript) { treeGridViewTags.Rows.Clear(); ObservableCollection <TagMacro> macros = new ObservableCollection <TagMacro>(); if (selectedScript != null) { macros = selectedScript.Anonymizer.TagMacros; } foreach (TagMacro macro in macros) { DicomTag dicomTag = DicomTagTable.Instance.Find(macro.Tag); string name = dicomTag != null ? dicomTag.Name : string.Empty; DicomTagNode node = new DicomTagNode(); string sValue = string.Format("{0:X4},{1:X4}", macro.Tag.GetGroup(), macro.Tag.GetElement()); // bool bRet = node.SetValues(sValue, name, macro.Macro); // DataGridViewRow row = new DataGridViewRow(); node.CreateCells(treeGridViewTags); node.SetValues(sValue, name, macro.Macro); treeGridViewTags.Rows.Add(node); node.DicomTag = dicomTag; node.Tag = macro; AddToList(macro.Macro); //if (dicomTag != null) //{ // if (dicomTag.VR == DicomVRType.SQ) // node.Image = Resources.Tags_16x16; // else // node.Image = Resources.Tag_16x16; //} } // treeGridViewTags.Refresh(); }
public AnonymizeScript ActiveScript() { AnonymizeScript script = _scripts.Find(x => x.FriendlyName.Equals(_activeScriptName, StringComparison.OrdinalIgnoreCase)); return(script); }
public void SetActive(AnonymizeScript s) { SetActive(s.FriendlyName); }
//public void LoadScriptList() //{ // try // { // _scripts = Extensions.DeserializeFromXml<AnonymizeScripts>(_filename); // } // catch (Exception) // { // } // if (_scripts == null) // { // _scripts = new AnonymizeScripts(true); // } //} private void UpdateScriptDataGrid(AnonymizeScript selectedScript) { InitializeMacroCombo(selectedScript); LoadMacros(selectedScript); }
public void RenameScript(AnonymizeScript script, string newFriendlyName) { RenameScript(script.FriendlyName, newFriendlyName); }
public bool ScriptExists(string newScriptName) { AnonymizeScript s = _scripts.Find(x => x.FriendlyName.Equals(newScriptName, StringComparison.OrdinalIgnoreCase)); return(s != null); }
private void listViewAnonymizeScripts_SelectedIndexChanged(object sender, EventArgs e) { AnonymizeScript selectedScript = listViewAnonymizeScripts.GetSelectedScript(); UpdateScriptDataGrid(selectedScript); }