The Lookup Table Modification API

From MircWiki
Revision as of 13:43, 25 June 2015 by Johnperry (talk | contribs)
Jump to navigation Jump to search

This article describes how to update the DICOM Anonymizer lookup table through an external program. The intended audience of this article is software developers. See The CTP Lookup Table Editor for a description of the lookup table structure.

An external program can add or modify a single entry in the lookup table for a DicomAnonymizer stage by accessing the CTP LookupServlet with this URL path:

/lookup?id=...&key=...&value=...

where:

  • id is the id attribute of the DicomAnonymizer stage whose lookup table is to be modified
  • key is the key of the lookup table entry to be created or modified
  • value is the value to be assigned to the key

Note, this API requires that the DicomAnonymizer stage have an id attribute.

Note also that the key must include both the KeyType and the PHI value. For example:

http://ip:port/lookup?id=TEST&key=ptid/567&value=777

adds the ptid/567 entry to the table and assigns it the value 777.

The LookupServlet supports this API through HTTP PUT method only.

The servlet returns one of these response codes:

  • 200: OK - the update succeeded.
  • 403: Forbidden - the requesting user is either not authenticated or does not have the admin role.
  • 304: Not modified - the request could not be serviced with the supplied parameters.

The 304 response can occur if any one of these conditions are met:

  • any of the three parameters are missing
  • the id parameter does not reference a registered PipelineStage
  • the id parameter references a PipelineStage that is not a DicomAnonymizer

The request must include sufficient information to authenticate the user as having the admin role. There are three ways to do that:

  • Supply an RSNA header containing the credentials of an admin user in clear text:
RSNA username:password
Authorization Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
  • Supply the credentials to the CTP LoginServlet, obtain the RSNASESSION cookie, and supply the cookie in requests.

If the update succeeds, the servlet returns the text OK with Content-Type = text/plain;charset=UTF-8; otherwise, the response is empty.