XNAT 1.7 DicomEdit 4, DicomEdit 6, and Mizer

Slides:



Advertisements
Similar presentations
Introducing JavaScript
Advertisements

JavaScript FaaDoOEngineers.com FaaDoOEngineers.com.
1 CSC 551: Web Programming Spring 2004 client-side programming with JavaScript  scripts vs. programs  JavaScript vs. JScript vs. VBScript  common tasks.
George Blank University Lecturer. CS 602 Java and the Web Object Oriented Software Development Using Java Chapter 4.
Working with JavaScript. 2 Objectives Introducing JavaScript Inserting JavaScript into a Web Page File Writing Output to the Web Page Working with Variables.
Javascript Client-side scripting. Up to now  We've seen a little about how to control  content with HTML  presentation with CSS  Javascript is a language.
Introduction to PHP. PHP Origins Rasmus LerdorfRasmus Lerdorf (born Greenland, ed Canada) PHP originally abbreviation for ‘Personal Home Pages’, now ‘PHP.
1 Web Wizards Guide To PHP David Lash Chapter 1 Introduction to PHP.
XP 1 Working with JavaScript Creating a Programmable Web Page for North Pole Novelties Tutorial 10.
DT228/3 Web Development JSP: Directives and Scripting elements.
Java An introduction. Example 1 public class Example1 { public static void main (String [] args) { System.out.println (“This is the first example”); int.
Introduction to scripting
PHP: Introduction By Trevor Adams.
PHP: Hypertext Processor Fred Durao
Javascript and the Web Whys and Hows of Javascript.
Copyright © 2003 Pearson Education, Inc. Slide 1-1 Web Design & Development PHP.
JavaScript, Fifth Edition Chapter 1 Introduction to JavaScript.
Introduction to Shell Script Programming
Week 9 PHP Cookies and Session Introduction to JavaScript.
JAVA SERVER PAGES. 2 SERVLETS The purpose of a servlet is to create a Web page in response to a client request Servlets are written in Java, with a little.
Avoid using attributes? Some of the problems using attributes: Attributes cannot contain multiple values (child elements can) Attributes are not easily.
Input, Output, and Processing
Computer Science 101 Introduction to Programming.
New Perspectives on XML, 2nd Edition
Copyright © 2012 Pearson Education, Inc. Publishing as Pearson Addison-Wesley C H A P T E R 2 Input, Processing, and Output.
Chapter 3 Functions, Events, and Control Structures JavaScript, Third Edition.
XML 2nd EDITION Tutorial 4 Working With Schemas. XP Schemas A schema is an XML document that defines the content and structure of one or more XML documents.
CSD 340 (Blum)1 Starting JavaScript Homage to the Homage to the Square.
Overview of Form and Javascript fundamentals. Brief matching exercise 1. This is the software that allows a user to access and view HTML documents 2.
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Web111a_chapt08.ppt HTML: Section 8 JavaScript CGI Programs (Server Side programs) Common Gateway Interface Run on server Communicate with user across.
Introduction to XML XML – Extensible Markup Language.
XP New Perspectives on XML, 2 nd Edition Tutorial 7 1 TUTORIAL 7 CREATING A COMPUTATIONAL STYLESHEET.
JavaScript. JavaScript Introduction JavaScript is the world's most popular programming language. It is the language for HTML and the web, for servers,
Internet & World Wide Web How to Program, 5/e © by Pearson Education, Inc. All Rights Reserved.
Javascript Basic Concepts Presentation By: Er. Sunny Chanday Lecturer CSE/IT RBIENT.
Introduction to PHP. PHP Origins Rasmus LerdorfRasmus Lerdorf (born Greenland, ed Canada) PHP originally abbreviation for ‘Personal Home Pages’, now ‘PHP.
XNAT Administration Jenny Gurney, CNDA Operations JUNE 7, 2016.
Introduction to JavaScript MIS 3502, Fall 2016 Jeremy Shafer Department of MIS Fox School of Business Temple University 9/29/2016.
Web Database Programming Using PHP
The language focusses on ease of use
Topic: Python’s building blocks -> Variables, Values, and Types
Topics Designing a Program Input, Processing, and Output
JSP: Actions elements and JSTL
Chapter 6 JavaScript: Introduction to Scripting
More Sophisticated Behavior
Basic 1960s It was designed to emphasize ease of use. Became widespread on microcomputers It is relatively simple. Will make it easier for people with.
“Under the hood”: Angry Birds Maze
JavaScript is a programming language designed for Web pages.
Chapter 2 Scanning – Part 1 June 10, 2018 Prof. Abdelaziz Khamis.
Introduction Python is an interpreted, object-oriented and high-level programming language, which is different from a compiled one like C/C++/Java. Its.
Web Database Programming Using PHP
Objectives Identify the built-in data types in C++
Introduction to Scripting
Aggregation Aggregations operations process data records and return computed results. Aggregation operations group values from multiple documents together,
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
JavaScript Introduction
JavaScript an introduction.
WEB PROGRAMMING JavaScript.
JSP Directives 1-Jan-19.
An Introduction to JavaScript
Topics Designing a Program Input, Processing, and Output
Topics Designing a Program Input, Processing, and Output
JavaScript CS 4640 Programming Languages for Web Applications
JavaScript Basics What is JavaScript?
JavaScript is a scripting language designed for Web pages by Netscape.
12th Computer Science – Unit 5
CIS 136 Building Mobile Apps
Presentation transcript:

XNAT 1.7 DicomEdit 4, DicomEdit 6, and Mizer 18 October, 2017

DicomEdit 4 & 6 A software library that transforms DICOM objects based on a scripted list of commands Scripts are written by users in a small custom language defined by DicomEdit Scripts can be general purpose, providing a general anonymization, or customized to handle unique requirements posed by a specific project or data source.

Mizer and DicomEdit frameworks DicomEdit 6 is very similar to DicomEdit 4, but with some notable differences: Requires version declaration: version "6.1" Handles sequences and private tags, including function to remove all private tags Some changes in core syntax Both are supported in 1.7 Programmatically the implementation is abstracted through the Mizer service

DicomEdit 6 basics The following slides show some of the basics of the DicomEdit 6 language.

Statements Comment Assignment Deletion // All after the slashes is ignored. Assignment (0010,0010) := “My Patient Name” Deletion - (0010,1030) // delete Patient Weight

Statements (continued) Conditionals // mirror Java’s ternary if-then-else operator (0020,0011) = "1" ? (0008,103E) := "Series One" : “Default Series Descrip” // match regular expressions (0020,0011) ~ “[1-5]” ? – (0080,103E) Conditional Operators ‘=‘ equal ‘!=‘ not equal ‘~’ matches ‘!~’ not matches

String literals, delimited by quotes Identifiers Elements String literals, delimited by quotes “Desmond^Jones” Identifiers patientName := “Molly^Jones” // variable names removeAllPrivateTags // single word operations patientName := concatenate[(0010,0020), (0010,0030)] Tagpath Represents a DICOM attribute or a set of attributes May represent a location or the value at that location

Tagpaths Simple Tag Tag Wildcards (0010,0010) // Patient Name Attribute Tag Wildcards ‘X’ matches any hex digit, ‘@’ even, and ‘#’ odd (50X@,3000) // matches all 3000 elements in the even groups between 5000 and 50FE (Curve Data)

Simple Sequence Tagpath Tagpaths: Sequence Simple Sequence Tagpath // match the coding scheme name in the first item in the coding scheme identification sequence. (0008,0110)[0](0008,0115) Sequence Wildcards [* ? +] DICOM elements can be nested arbitrarily deep. * / (0010,0010) // address patient name anywhere it appears + / (00100010) // address patient name at least one level deep

Tagpaths: Private Tags Private data elements do not have unique tags Their unique location within a particular object is determined by its ‘private creator id’ tag. (0019,{SIEMENS MR HEADER}0C) correctly addresses the Diffusion b-value attribute regardless of where it is mapped in any particular object.

How To: Remove all private tags // remove all private tags – this is a common requirement // Why make it hard? removeAllPrivateTags

How To: White list certain private tags // record white listed to variables Diffusion-b-value := (0019,{SIEMENS MR HEADER}09) // remove all private tags removeAllPrivateTags // restore the variables (0019,{SIEMENS MR HEADER}09) := Diffusion-b-value DicomEdit How To: White list certain private tags

How To: Remove a tag nested in a sequence // retain patient name at the top level but remove it from sequences in which it is embedded - + / (0010, 0010)

Explore further Built-in functions Custom functions Externally injected variables Home page: https://wiki.xnat.org/xnat-tools/dicomedit Language Reference: https://wiki.xnat.org/xnat-tools/dicomedit/dicomedit-6-1-language-reference