mint meeting agenda august 16-17, 2010. monday, august 16, 2010 10:00 – 12:00overview and demo...

33
MINT Meeting Agenda August 16-17, 2010

Upload: gavin-weaver

Post on 16-Dec-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

MINT Meeting Agenda

August 16-17, 2010

Page 2: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Monday, August 16, 2010

• 10:00 – 12:00 Overview and Demo• 12:00 – 1:00 Lunch• 1:00 – 3:00 Code and design walkthrough

including implementation challenges

• 3:00 – 3:15 Break• 3:15 – 5:30 Design meeting

Page 3: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Tuesday, August 17, 2010

• 8:00 – 12:00 Design meeting (continued)• 12:00 – 1:00 Lunch• 1:00 – 2:00 Roadmap• 2:00 – 3:00 RSNA demonstration planning• 3:00 Meeting ends

Page 4: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Demonstration

• DICOM->MINT Create (series 1)• Clear Canvas (time to first image)

– Single image at a time– Bulk loader

• DICOM->MINT Update (series 2)• Clear Canvas MPR (time to last image)

– Single image at a time– Bulk loader

• MINT->DICOM• Conformance Test (Tim)• Vital Implementation

Page 5: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Design Issues• Unit and Integration Tests• Data Dictionary

– Types (MIME)– Management– Versioning

• Study Summary• Search Parameters• Bulk Binary Loading

– file storage– partial data/sub-selection– Multi-part Mime as payload

• Integration w/ MPI• Multiple Update Concurrency

• Multi-frame handling• Study creation with missing/invalid

fields• Part 10 information (and other 0002

info)• Security• Non-DICOM objects• De-identification• SDK design• Exception handling• Support for Multi-Frame• Comparisons after updates• Various representations (XML, GPB,

JSON)• Other projects related to MINT?

Page 6: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Other MINT Issues/Questions

• MINT Reference (overview, API, SDK…)• What about exceptions? we need to define

them as part of MINT Standard. • Can we search using accession numbers?• Integration with MPI we need to modify the

URI …/IPDI/LMRN/GUID

Page 7: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Multi-Frame Handling

To handle multiple BIDs per attribute, a frameCount attribute will be present indicating the number of BIDs for that attribute. The BIDs will be consecutive starting with the bid in the bid attribute:

<Attr tag="7fe00010" vr="OW" bid="1" frameCount=”10”/>

BIDs 1-10 would represent each frame

Page 8: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Security / Auditing• Proposal #1

– Add XML element in changelog to indicate the user of the client. Up to MINT implementation to define how a client authenticates

– Add XML element for the client to specify the end user (this is not guaranteed to be correct, but useful)

– Define a HTTP header that can pass the end user identity for auditing purposes

– Look at specifying how MINT servers should audit via ATNA (the exact message format/schema)

• Document a cookbook recipe for how security could be implemented using MINT. This would include logging all activity to IHE ATNA audit log. Also include how fine grained security could be implemented

Page 9: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Multi-Update Concurrency

• Add the baseline version # as part of the update message

• Updates will fail if the baseline version # does not match current version #

Page 10: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Integration with MPI

• Decision: Not a problem for MINT to solve – we allow searching on Patient ID / Issuer which is extracted from the DICOM Attributes

• Clients should use PIX to resolve the different Patient ID / Issuers that it may need to search MINT with

Page 11: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Exception Handling

• Use HTTP Error codes, need to define semantic meaning. If further specification for an HTTP Error code is needed, prefix the text message with a MINT standardized key.

Page 12: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

De-Identification

• Must have different uid’s (study, series, sop instance)

• Must have different patient demographics• Must have different mint uuids• Jim Philbin to write up a proposal for this

Page 13: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Excluding Binary Items

• When client requests all binary items for a given type, any excluded binary items will not be returned. If a client wants to get an excluded binary item, they will have to request it explicitly by its BID

Page 14: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

SDK

• Helper classes that would let you:– Add new instances– Delete instances– Modify attributes (patient name)– Load metadata for a study– Access binary items– Create a new study– Find a study

• Direction – SDK will evolve as other MINT applications are built (e.g. QC, service tool, etc)

Page 15: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Needed

• Utility to create the DICOM Data Dictionary automatically -> then we should use our DD to handle implicit.

• DICOM people should publish DD in XML.• Should we use Proto-bufs for internal

implementation. • Make the various representations lazy• How to handle updates

Page 16: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Supporting Part 10 Headers

• We will store the Part 10 header in the metadata

• Recommend that any updater of studies include Part 10 headers in the metadata

• Rationale: More people will complain about it not being preserved than those that don’t want it

Page 17: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Implementation Challenges

• Normalization algorithm- 1-pass or 2-pass

Page 18: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Bulk Binary Partial Load

• Support both GET and POST

Page 19: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Unit and Integration Tests

• Junit 4.0• Run unit tests before checking software in• Integrate w/ Ant

Page 20: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Performance

• Need cookbook that describes how to get maximum performance– HTTP Chunking on server side– Jumbo frames– OS TCP Buffer sizes– Size of reads on client– Size of writes on server

Page 21: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Version 1.0 Tasks

• Unit tests• Integration test• Features:– Non-DICOM Proprietary types

• Instructions for building, testing and configuring a download.

• Binary download of MINT Server, DICOM->MINT Server and Clear Canvas client

Page 22: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

High Level Decisions

• REST interfaces only to return XML (no more XHTML)

• GPB is supported for metadata only (for performance)

• Drop support for JSON (XML is adequate)• All MINT Date/Time format is in UTC DICOM

DT format (exception StudyDateTime for queries)

Page 23: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Data Dictionary

• Need a document that defines DD and type creation• How to add types

– Need to associate with a particular seriesInstance or SOPInstance

– ** Document defining type definition– Define Use Cases (Jim P)– Define a type for Vital Volumes, AIM, MIME types– Sequence elements are atomic(?)

• Management (get DICOM committee to take this over)• Versioning

Page 24: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

DICOM Study Summary Fields

• Patient Name• Patient DOB• Patient Sex• MRN Domain (IPID)• MRN• Study Date & Time• Issuer of Accession #• Accession #• # of series/objects• Modality• Series descriptor?

• Issues:– Date & time problems– Time zone

• Study summary served as xml

• Study summary is all patient, study and series tags + # of instances (study level & series level)

• No need for Summary in Data Dictionary

Page 25: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

MINT Study Required Fields

• Study UID

Page 26: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Study Queries

• Study Instance UID• Patient ID + Patient ID Issuer• Accession Number + Accession Number Issuer• StudyDateTimeFrom + StudyDateTimeTo

Date time searches will be inclusive of the dayTime is not required in search valuesDate/Time format is in DICOM DT formatIf time is supplied, but no date, study date time queries will not

work

Page 27: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

MINT Study Search Results

• Returned as XML

• Data– MINT Study UUID– Last Update Date/Time

Page 28: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

$MINTROOT/changelog

• Each Entry– MINT Study UUID– Change Number– Last Update Date/Time– Type (e.g. DICOM, PDF, etc)

Page 29: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Root Study URL

• List of all types in study

Page 30: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Other projects related to MINT?• MINT Proxy (federating MINT servers)

– Local caching MINT server– Single MINT server proxy into DICOM archives

• Anonymizing/de-identifiying MINT proxy• Storage of other data types in MINT

– AIM, PDF, JPEG, PNG, TIFF, video, audio• XIP to MINT adapter• XDS Interface?• HIE Gateway across different enterprises with different patient identifiers – look at XDS model for

this• QC Workstation / Toolkit (edit patient name, delete images, add images, split study, etc)• CSTORE SCP->MINT• CSTORE, CFIND, CMOVE SCU -> MINT Server• Simple viewer for web browser that is MINT enabled• Post processing example – listen for study changes and add content to server (e.g. generate JPEGs

for Key Images)• Security cookbook – how to implement ACLs against MINT• Architecture cookbook – how to support MINT with a DICOM P10 archive

Page 31: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

MINT Non Goals

Page 32: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

RSNA Tasks

• Performance numbers

Page 33: MINT Meeting Agenda August 16-17, 2010. Monday, August 16, 2010 10:00 – 12:00Overview and Demo 12:00 – 1:00Lunch 1:00 – 3:00Code and design walkthrough

Deidentification

• IHE Defines this through TCE spec• Revisit with Jim Philbin tomorrow