{'fraction_non_alphanumeric': 0.029092702169625246, 'fraction_numerical': 0.0014792899408284023, 'mean_word_length': 5.461783439490445, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
SU-E-T-219: A Free and Open Source DICOM Solution: DicomPack.

PURPOSE
DicomPack aims to provide a Perl DICOM library to isolate DICOM complexity and facilitate creation of DICOM applications.


METHODS
DicomPack was initially designed for research projects to process and exchange radiotherapy medical images and treatment plans among research institutions, as well as between treatment planning systems and Open Radiological Archiving and Communication System (ORACS) research database. DicomPack uses an extensible internal data structure to store any encoded information observing DICOM's tag/element structure. Therefore, DicomPack either populates a data structure by DICOM information or converts a populated data structure into DICOM format. In this way, DicomPack creates a DICOM file either from scratch or using an existing DICOM template upfront. And this design also enables DicomPack to handle nested sequence data and multi-frame images easily. Along with DicomPack∷IO, DicomPack∷Network provides a comprehensive solution of exchanging DICOM information through DIMSE (DICOM Message Service) protocol. Its callback plugin design provides a universal interface to all DIMSE commands (DIMSE-C and DIMSE-N). Each time a new DIMSE command needs to be implemented, users only need to provide callback procedures to answer some basic questions, such as where to retrieve/store DICOM information. In addition, DicomPack provides examples, e.g., DicomDumper, DicomAnonymizer, DicomStore, under DicomPack∷Util to demonstrate how to develop DICOM applications through DicomPack.


RESULTS
Conclusions: DicomPack is a pure Perl package, which means DicomPack only has dependency on core Perl functions. As free software, DicomPack can be redistributed and/or modified as Perl. The easiest way to install DicomPack is through cpan.org (Comprehensive Perl Archive Network). However, DicomPack is in no way intended to to interpret DICOM information and/or enforce DICOM conformance, which will be up to application developers.