300 likes | 462 Views
Domain Specific Language for Medical Laboratory. Team#6 Vikram Sriram Venkat Narasimha Bhyravabotla Haritha Rani Jadcherla Saloti Annapurna. Mentor Mr. Ravi Ganta. Instructor Dr. Kwok-Bun Yue. Agenda. Background Problems with current system Solution Architecture diagram
E N D
Domain Specific Language for Medical Laboratory Team#6 Vikram Sriram Venkat Narasimha Bhyravabotla Haritha Rani Jadcherla Saloti Annapurna Mentor Mr. Ravi Ganta Instructor Dr. Kwok-Bun Yue
Agenda • Background • Problems with current system • Solution • Architecture diagram • Implementation of Solution • Demo • Website • Conclusion • References CSCI 6838: Team#6 Language for Array Data Processing
Background • Medical laboratory • Microplate • Laboratory specific operations on microplate • Problems CSCI 6838: Team#6 Language for Array Data Processing
Medical Laboratory • Physicians • Tests • Immunoassay • Results • Observations • Photons emitted from the test sample • Different tools exist to read results from microplate CSCI 6838: Team#6 Language for Array Data Processing
Microplate A Microtiter plate (spelled Microtitre in Europe) or microplate is a flat plate with multiple "wells" used as small test tubes. [1] Figure 1: Microplate [2]
Operations on Microplate • Shaking • Light projecting • Adding chemicals/catalysts • Reading the number of photons CSCI 6838: Team#6 Language for Array Data Processing
Immunoassay • An immunoassay is a biochemical test that measures the concentration of a substance in a biological liquid, typically serum or urine, using the reaction of an antibody or antibodies to its antigen. [3] CSCI 6838: Team#6 Language for Array Data Processing
Patient “A” test results with two tests for D1, D2 as Tags CSCI 6838: Team#6 Language for Array Data Processing
Problems • Tag based operations • Storing and accessing results • General purpose Programming Languages( GPLs) do not satisfy physicians requirements • Overhead on physician to learn GPL • Preciseness of results CSCI 6838: Team#6 Language for Array Data Processing
Storing and accessing results 1.Paper Based[4] 2.Table Based [5] CSCI 6838: Team#6 Language for Array Data Processing
Solution • Domain Specific Language for laboratory specific CSCI 6838: Team#6 Language for Array Data Processing
Motivation towards DSL • Problems with current system • Memory problems • End user overheads • Disadvantages with programming languages • Advantages of having a DSL specific to laboratory • Domain specific semantics • User friendly syntax • Overcoming problems with programming languages CSCI 6838: Team#6 Language for Array Data Processing
Why only DSL ? • Most programming language doesn’t supports end users syntaxes • GPLs can address solution specific to domain but not optimal • End user has to learn syntaxes in GPL CSCI 6838: Team#6 Language for Array Data Processing
Architecture Diagram Lexer Generate Grammar Parser Lexer ANTLR IDE Mat.java Mat.txt Library.java Run.java Readingfile.java Parser Run ECLIPSE IDE Console CSCI 6838: Team#6 Language for Array Data Processing
Implementation of DSL • Language specification • Grammar design • Lexer and Parser generation CSCI 6838: Team#6 Language for Array Data Processing
Language Specification • Problem domain semantics are analyzed • Description of the new syntaxes is described in this document • Expression syntax • Accessing matrix values • Function syntax • Target language is Java CSCI 6838: Team#6 Language for Array Data Processing
Example • For example the following syntax will return a set of values stored in a matrix with row index 1,2, and column index as 2,3. M1[{1,2},{2,3}] • Following example will assign a value to matrix M1 whose tag is value with 32.12 M1[1,2].value=32.12 CSCI 6838: Team#6 Language for Array Data Processing
Grammar Design • Automated tools are used for generating Lexer and parser code • Example: • ANTLR ( Another Tool for Language Recognizer) • Eclipse • ANTLR plug-in for Eclipse CSCI 6838: Team#6 Language for Array Data Processing
Lexer and Parser generation CSCI 6838: Team#6 Language for Array Data Processing
Matrix Access • Single Index • Multiple Index • Ordered Set • Range • Wildcard(* means “all”) CSCI 6838: Team#6 Language for Array Data Processing
Some example syntaxes for laboratory specific • Single access M1[1,2] • Range M1[{0..2},1] • Ordered set M1[{0,1,2},1] • Wild card M1[*,*] • Avg(1,2,3) • Min(1,2,3) M1 CSCI 6838: Team#6 Language for Array Data Processing
Tags Properties of tags Name Value Operations on tags Add Delete Set
More about our website http://dcm.uhcl.edu/c423008fasalotia/caps10g6/default.htm CSCI 6838: Team#6 Language for Array Data Processing
DEMO CSCI 6838: Team#6 Language for Array Data Processing
Conclusion • There are many possible solutions • One good solution • DSL (Domain Specification Language) • Satisfy all requirements • User Friendly • Accuracy CSCI 6838: Team#6 Language for Array Data Processing
References [1] http://en.wikipedia.org/wiki/Microtiter_plate. [2] http://www-odp.tamu.edu/publications/201_IR/chap_05/images/05_f10.gif [3] http://en.wikipedia.org/wiki/Immunoassay CSCI 6838: Team#6 Language for Array Data Processing
References http://en.wikipedia.org/wiki/Domain-specific_language#Advantages_and_disadvantages http://en.wikipedia.org/wiki/Programming_language http://homepages.cwi.nl/~arie/papers/dslbib/ http://english.njhuahong.com/uploadfile/sb-jc4.jpg http://www-odp.tamu.edu/publications/201_IR/chap_05/images/05_f10.gif http://www.marylandfluwatch.org/_/rsrc/1241811361336/clinical-laboratories/8401_lores.jpg CSCI 6838: Team#6 Language for Array Data Processing
Questions CSCI 6838: Team#6 Language for Array Data Processing
Thank you CSCI 6838: Team#6 Language for Array Data Processing