Conformance Statements for PacsOne Copyright (C) 2003-2005 Rainbowfish Software. All rights reserved. Xiaohui Li Version 1.0.0 November 29, 2003 Conformance Statement for PacsOne A Introduction PacsOne is a DICOM 3.0 compliant PACS (Picture Archive and Communication System) application that combines the following components in one server or one box: 1. A DICOM server. 2. A PACS server which uses open source MySQL database. 3. A Web server which uses open source Apache 2.0 HTTP server and PHP (recursive acronym for "PHP: Hypertext Preprocessor") scripts. The benefits of PacsOne versus the traditional PACS servers are: 1. It is free since it uses open source MySQL database and Apache web servers. 2. It makes the life of a PACS administrator a lot easier since there is only ONE instead of multiple servers or boxes to maintain. 3. Users can freely choose their favorite server platform or hardware, whether it is a PC, workstation, fully-fledged server with RAID disk arrays or even a laptop, to install and run PacsOne Server software. 4. Users can freely choose their favorite operating system software, whether it is Windows NT, Windows 2000, Windows XP, and Windows 2003 Server. 5. Archiving of the PACS database is just as simple as backing up files on a regular server, which makes PacsOne fit seamlessly into the rest of IT infrastructure of the entire organization. A PACS administrator has the freedom to choose their favorite backup solutions, software and/or archive media. This implementation of the PacsOne Server is designed to provide the following features: • The application serves as a short-term archive for images. It accepts images from external sources and stores them for later retrieval. • PacsOne uses DICOM as the interface to external conforming clients. The DICOM server accepts DICOM association requests for the purpose of storing images and for image query and retrieve. PacsOne Server will initiate DICOM association requests for the purpose of sending images to an external server. PacsOne Server does not respond to any other type of network communication. • PacsOne uses Apache Web server as the interface for viewing and managing the PACS database, and for reviewing images on-line through a web browser. • The application has no automatic deletion mechanism. Images, series, studies, and patients are deleted manually through the Apache web server interface. A.1 Implementation Model PacsOne Server component provides for storage, query and retrieval of images. It runs on the following Microsoft Windows platform: Windows NT, Windows 2000, Windows XP, Windows 2003 Server as a background process (service) that accepts association requests from external applications. PacsOne Server employs a configurable thread pool to service requesting applications. PacsOne Server will initiate a DICOM association in response to a C-MOVE request from an external application. PacsOne Server is started automatically when Windows starts up, users which have Windows Administrator's privilege can stop and re-start PacsOne Server process manually from the "Services" tablet of the Windows Control Panel. The following parameters of the PacsOne Server are configurable by executing the 'SETUP.EXE' program during Installation, or by modifying the Windows Registry values manually under the following key: "HKEY_LOCAL_MACHINE\\SOFTWARE\\RainbowFish Software\\PacsOne\\" ApplicationEntityTitle - Default is "MyAeTitle" ServerPortNumber - Default is 1234 LogFile - Default is "C:\Temp\PacsOne.log" DefaultArchiveDirectory - Default is "C:\" Database - Name of MySQL database MySqlUser - Username of MySQL database (encrypted) MySqlPassword - Password of MySQL database (encrypted) StorageFormat - Default is "DicomPart10" After modifying any of the above Registry settings, the PacsOne Server needs to be restarted in order for the changes to take effect. A.1.1 Application Data Flow Diagram Figure 1 shows the relationship of PacsOne Server to external applications. As noted above, PacsOne Server does not initiate any action except in response to requests which are received via DICOM associations. +--------------------------------------------------------------+ +---------+ | | +-------------+ | | Storage |-----|----|--->| | | | SCU | | | | | +---------------+ | +---------+ | | | |Store images | | | | | | |--------------->| | | +---------+ | | | | | | | | Query | | | | | | | | | Retrieve|-----|----|--->| | | | | | SCU | | | | DICOM | | MySQL | | +---------+ | | | |Update database | | | +---------+ | | | Server |--------------->| Database | | | Move |-----|----|--->| | | | | | SCU | | | | Component | | Component | | +---------+ | | | | | | | | | | |Query database | | | | | | |--------------->| | | +---------+ | | | | | | | | Verify |-----|----|--->| | | | | | SCU | | | | | | | | +---------+ | | | | | | | | | | | | | | +---------+ | | | | Forward images | | | | Storage |<----|----|----| |<---------------| | | | SCP | | | +-------------+ | | | +---^-----+ | | +---^-----------+ | | | | | | | | | Query database | Forward Patient | | | DICOM Update database | Forward Study | | | Interface | Forward Series | | | | | | +---------+ | | +-----------------------------------------+ | | Query/ | | | | | | | Retrieve|<----|----|-------| Apache Web Server Component | | | SCP | | | | | | +---------+ | | | PHP | | | | | | | +---------+ | | | | | | Verify |<----|----|-------| | | | SCP | | | +---^--------------^---------------^------+ | +---------+ | | | | | | HTTP | | | | | -------------|--------------|---------------|-------- | | Interface | | | | | | | | | | PacsOne | | | | | Server | | | | | | | | | +----------------|--------------|---------------|--------------+ | | | +---------+ +---------+ +---------+ | Web | | Web | | Web | | Browser | | Browser | | Browser | +---------+ +---------+ +---------+ FIGURE 1. PacsOne Server Implementation Model A.1.2 Functional Definition of Application Entities PacsOne Server waits for another application to connect to the TCP/IP port number specified when the application is initiated. When a DICOM association request is received, PacsOne Server uses a MySQL database table and the following logic to verify the incoming request: 1. PacsOne Server is permissive when verifying the Called Application Entity Title of the incoming association request. It does not reject an incoming association request based on the specified Called Application Entity Title. 2. PaceOne server queries the 'applentity' table to verify if there is a row whose 'title' field matches (case insensitive) with the Calling Application Entity Title of the incoming request. 3. If there is a match, PacsOne Server then verifies that the matching application entity has access to the MySQL database, by querying the 'allowaccess' field of the 'applentity' table. 4. If 'allowaccess' field is Enabled (non-zero), PacsOne Server then proceeds to service the incoming association request. 5. If 'allowaccess' field is Disabled ('0') or no matching application entity is found for the Calling Application Entity Title, PacsOne Server will reject the incoming association request. A.1.3 Sequencing of Real-World Activities PacsOne Server has no way of knowing when it has a complete study or what constitutes a complete study. If it receives an image query while receiving storage requests, the query response may not include all of the images that are in the study. A.2 AE Specifications PacsOne Server is started automatically when Windows starts up, or user can manually stop and re-start PacsOne Server from the 'Services' tablet of the Windows Control Panel. PacsOne Server uses a configurable thread pool to service all DICOM 3.0 protocol I/O processing's. The number of threads in the thread pool has a default value of 2, and can be configured by modifying the following Windows Registry: "HKEY_LOCAL_MACHINE\\SOFTWARE\\RainbowFish Software\\PacsOne\\ThreadPoolSize" NOTE: Setting a large value for the number of threads in the thread pool does not necessarily increase the overall performance of PacsOne Server. It is recommended to set the size of thread pool to be twice the number of available processors or CPU's in the system. PacsOne Server needs to be re-started if the size of thread pool is modified. A.2.1 AE PacsOne Server - Specification PacsOne Server provides Standard Conformance to the following DICOM 3.0 SOP Classes as an SCU: TABLE 1. SOP Classes Supported by PacsOne Server as a SCU ------------------------------------------------------------------------------ SOP Class Name SOP Class UID ------------------------------------------------------------------------------ Verification SOP Class 1.2.840.10008.1.1 Computed Radiography Image Storage 1.2.840.10008.5.1.4.1.1 CT Image Storage 1.2.840.10008.5.1.4.1.2 Ultrasound Multi-Frame Image Storage 1.2.840.10008.5.1.4.1.3 MR Image Storage 1.2.840.10008.5.1.4.1.4 Nuclear Medicine Image Storage 1.2.840.10008.5.1.4.1.20 Ultrasound Image Storage 1.2.840.10008.5.1.4.1.6 Secondary Capture Image Storage 1.2.840.10008.5.1.4.1.7 X-Ray Angiographic Image Storage 1.2.840.10008.5.1.4.1.1.12.1 X-Ray Radiofluoroscopic Image Storage 1.2.840.10008.5.1.4.1.1.12.2 Patient Root Query/Retrieve Info Model - FIND 1.2.840.10008.5.1.4.1.2.1.1 Patient Root Query/Retrieve Info Model - MOVE 1.2.840.10008.5.1.4.1.2.1.2 ------------------------------------------------------------------------------ PacsOne Server provides Standard Conformance to the following DICOM 3.0 SOP Classes as an SCP: TABLE 2. SOP Classes Supported by PacsOne Server as a SCP ------------------------------------------------------------------------------ SOP Class Name SOP Class UID ------------------------------------------------------------------------------ Verification SOP Class 1.2.840.10008.1.1 Computed Radiography Image Storage 1.2.840.10008.5.1.4.1.1 CT Image Storage 1.2.840.10008.5.1.4.1.2 Ultrasound Multi-Frame Image Storage 1.2.840.10008.5.1.4.1.3 MR Image Storage 1.2.840.10008.5.1.4.1.4 Nuclear Medicine Image Storage 1.2.840.10008.5.1.4.1.20 Ultrasound Image Storage 1.2.840.10008.5.1.4.1.6 Secondary Capture Image Storage 1.2.840.10008.5.1.4.1.7 X-Ray Angiographic Image Storage 1.2.840.10008.5.1.4.1.1.12.1 X-Ray Radiofluoroscopic Image Storage 1.2.840.10008.5.1.4.1.1.12.2 Patient Root Query/Retrieve Info Model - FIND 1.2.840.10008.5.1.4.1.2.1.1 Patient Root Query/Retrieve Info Model - MOVE 1.2.840.10008.5.1.4.1.2.1.2 Patient Root Query/Retrieve Info Model - GET 1.2.840.10008.5.1.4.1.2.1.3 Study Root Query/Retrieve Info Model - FIND 1.2.840.10008.5.1.4.1.2.2.1 Study Root Query/Retrieve Info Model - MOVE 1.2.840.10008.5.1.4.1.2.2.2 Study Root Query/Retrieve Info Model - GET 1.2.840.10008.5.1.4.1.2.2.3 Patient/Study Only Query/Retrieve Model - FIND 1.2.840.10008.5.1.4.1.2.3.1 Patient/Study Only Query/Retrieve Model - MOVE 1.2.840.10008.5.1.4.1.2.3.2 Patient/Study Only Query/Retrieve Model - GET 1.2.840.10008.5.1.4.1.2.3.3 ------------------------------------------------------------------------------ A.2.1.1 Association Establishment Policies A.2.1.1.1 General PacsOne Server will attempt to initiate associations in response to C-MOVE requests from other Application Entities. PacsOne Server will only initiate associations in response to valid C-MOVE requests for images that are stored in the MySQL database. The maximum PDU size which can be transmitted by PacsOne Server is fixed at 32 Kbytes. The maximum PDU size which can be received by PacsOne Server is up to 32 Kbytes. A.2.1.1.2 Number of Associations The number of simultaneous associations which can be accepted by PacsOne Server are limited only by the kernel parameters of underlying TCP/IP implementation and resource utilization of the computer where PacsOne Server is installed. PacsOne Server utilizes a thread pool to service each association request that it receives. Therefore, the PacsOne Server can have multiple simultaneous connections, and there is no inherent limitation on the total number of simultaneous associations which a PacsOne Server can maintain. A.2.1.1.3 Asynchronous Nature PacsOne Server does not support asynchronous operations and will not perform asynchronous window negotiation. A.2.1.1.4 Implementation Identifying Information PacsOne Server provides the following implementation class UID: 1.2.826.0.1.3680043.2.737 PacsOne Server provides the following implementation version name: PACSONE01AUG03 A.2.1.2 Association Initiation Policy PacsOne Server attempts to initiate one association in response to each C-MOVE command it receives from an external application. PacsOne Server attempts a single type of association request. A.2.1.2.1 Real-World Activity - Move Request from an External Node A.2.1.2.1.1 Associated Real-World Activity - Move Request from an External Node The associated Real-World activity is a C-MOVE request received from an external application. If an application successfully establishes an association with the PacsOne Server and makes a valid C-MOVE request that identifies one or more images known by the PacsOne Server, the PacsOne Server will query the 'applentity' MySQL database table to see if a matching entry can be found for the specified destination application entity title. If a match is found, the PacsOne Server will initiate an association with the destination application entity specified in the incoming C-MOVE request. A.2.1.2.1.2 Proposed Presentation Contexts In response to a C-MOVE request, PacsOne Server builds a complete list of images to be moved. The list includes the SOP class of each image to be moved. PacsOne Server extracts the unique SOP classes from the image lists and proposes a set of presentation contexts that includes one presentation context for each unique SOP class identified in the image list. Thus, the association request may have a single presentation context or multiple presentation contexts. Each presentation context contains the abstract syntax that identifies one image class as found in the image list. TABLE 3. Proposed Presentation Contexts for PacsOne Server +-----------------------------------------------------------------------------+ | Presentation Context Table | |-----------------------------------------------------------------------------| | Abstract Syntax | Transfer Syntax |Role | Extended | |-----------------|---------------------------------------| | Negotiation | | Name | UID | Name List | UID List | | | |-----------------------------------------------------------------------------| | See | See | DICOM Implicit VR | 1.2.840.10008.1.2 | SCU | None | | Note | Note | Little Endian | | | | +-----------------------------------------------------------------------------+ Note: The Abstract Syntax corresponds to the value found in the database maintained by the each server. More than one presentation context can be offered, each with a different abstract syntax. Note: PacsOne Server only supports Implicit VR Little Endian Transfer Syntax. Some images may have been stored by the PacsOne Server with private elements whose encoding scheme is unknown by the PacsOne Server. These elements will be transmitted by PacsOne Server exactly as they were received (in Implicit VR Little Endian Transfer Syntax), so they should be unaltered upon transmission. A.2.1.2.2 SOP Specific Conformance Statement All C-STORE operations are in the context of a C-MOVE request from an external application. PacsOne Server sends one C-MOVE response message for each attempted C-STORE operation. PacsOne Server does not attempt any extended negotiation. PacsOne Server does not delete any elements from the files it transfers. Therefore the set of optional elements depends entirely on the contents of the files which were originally stored on the PacsOne Server. In the event that PacsOne Server receives an unsuccessful C-STORE response, PacsOne Server will continue sending the remaining images in the requested set. A.2.1.3 Association Acceptance Policy PacsOne Server accepts associations for the purpose of storing images in its MySQL database or for the purpose of performing query/retrieve operations on the images that have been previously stored. PacsOne Server will only accept association requests from applications that have been defined during configuration. In addition, the PacsOne Server will only store images sent by application entities that have been enabled in the 'applentity' MySQL database table. A.2.1.3.1 Real-Word Activity - Storage PacsOne Server accepts associations from applications that wish to store images using the C-STORE command. A.2.1.3.1.1 Associated Real-World Activity The associated Real-World activity associated with the C-STORE operation is the storage of the images on the disk of the system upon which the PacsOne Server is running. Images are stored by writing the data set of the C-STORE command directly to disk, either with no further header or interpretation ("Native" format), or with the standard file header described in the DICOM 3.0 Part 10 document (DICOM Part 10 format). The above storage formats are configurable when PacsOne Server is installed by running the 'SETUP.EXE' program, they can also be modified later by changing the following Windows Registry key value: "HKEY_LOCAL_MACHINE\\SOFTWARE\\RainbowFish Software\\PacsOne\\StorageFormat\\" to either "DicomPart10" or "Native" string values (case insensitive). After an image is stored to disk, the PacsOne Server updates the MySQL database with patient, study, series and image information; this MySQL database is used by the PacsOne Server for query/retrieve operations, it is also used by the Apache web server to display patient, study, series, and image information, display stored images through a web browser, and maintain patient/study/series/ image tables for authorized users. PacsOne Server will issue a failure status if it is unable to store the image on disk, if the image does not conform to the IOD of the SOP class under which it was transmitted, or if the PacsOne Server is not able to successfully update its MySQL database. A.2.1.3.1.2 Presentation Context Table The following Presentation Contexts shown in Table 4 are acceptable to the PacsOne Server when receiving images. TABLE 4. Acceptable Presentation Contexts for the PacsOne Server +----------------------------------------------------------------------------+ | Presentation Context Table | |----------------------------------------------------------------------------| | Abstract Syntax | Transfer Syntax | Role | Extended | |-------------------------------------------------------| | Negotiation | | UID | UID List | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.1 | 1.2.840.10008.1.2 | SCP | None | | Computed Radiography | DICOM Implicit VR | | | | Image Storage | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2 | Same as above | SCP | None | | CT Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.3 | Same as above | SCP | None | | Ultrasound Multi-Frame | | | | | Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.4 | Same as above | SCP | None | | MR Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.20 | Same as above | SCP | None | | Nuclear Medicine | | | | | Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.6 | Same as above | SCP | None | | Ultrasound Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.7 | Same as above | SCP | None | | Secondary Capture Image | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.1.12.1 | Same as above | SCP | None | | X-Ray Angiographic | | | | | Image Storage | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.1.12.2 | Same as above | SCP | None | | X-Ray Radiofluoroscopic | | | | | Image Storage | | | | +----------------------------------------------------------------------------+ A.2.1.3.1.2.1 SOP Specific Conformance for SOP Class Storage The PacsOne Server implements Level 2 (Full) conformance for the Storage SOP Class. The raw image files themselves are not modified. In the event that an image is successfully stored by PacsOne Server, it may be accessed by requesting associations with the PacsOne Server and performing query/retrieve operations. PacsOne Server can also display stored images to web browser clients through the Apache web server interface. PacsOne Server stores images for an indefinite period. The stored images, as well as stored patient, study, series and image database records can be deleted from the Apache web server interface by users authorized with UPDATE privilege to the MySQL database. PacsOne Server returns the following status codes in response to a C-STORE request: 0000H Success - Image successfully stored A700H Refused - Out of resources, unable to create local file A701H Refused - Out of resources, failed to access database A702H Refused - Out of resources, memory allocation error A900H Error - Data set does not match SOP Class C000H Error - Cannot understand In the case of an error of an error storing an image, there is no documented method for recovery. Trouble-shooting information can be retrieved from the PacsOne Server log file. The path for PacsOne Server log file is stored in Windows Registry under: "HKEY_LOCAL_MACHINE\\SOFTWARE\\RainbowFish Software\\PacsOne\\LogFile" A.2.1.3.1.3 Presentation Context Acceptance Criterion PacsOne Server will accept any number of storage SOP classes that are listed in Table 4 above, provided that the requesting application is known to the PacsOne server and has been enabled to store images on the MySQL database (via the 'applentity' MySQL database table). PacsOne Server defines no limit on the number of presentation contexts accepted. In the event that PacsOne Server runs out of resources when trying to accept multiple presentation contexts, the PacsOne Server will reject the association request. PacsOne Server does not check for duplicate presentation contexts and will accept duplicate presentation contexts in the association request. A.2.1.3.1.4 Transfer Syntax Selection Policies PacsOne Server only supports the Implicit VR Little Endian transfer syntax. Any proposed presentation context which includes the Implicit VR Little Endian transfer syntax will be accepted with the Implicit VR Little Endian transfer syntax. Any proposed presentation context that does not include the Implicit VR Little Endian transfer syntax will be rejected. A.2.1.3.2 Real World Activity - Query PacsOne Server accepts associations from applications that wish to perform query (C-FIND) and retrieve (C-MOVE) operations on images that have been previously stored in the MySQL database. A.2.1.3.2.1 Associated Real World Activity - Query The real-world activity associated with C-FIND and C-MOVE requests are query and retrieval operations initiated by another application. An application other than the PacsOne Server queries PacsOne Server for patient/study/series/image information that has been previously stored in the MySQL database and can request that the PacsOne Server send images to a third application entity. A.2.1.3.2.2 Presentation Context Table Table 5 shows the presentation contexts that may be accepted by PacsOne Server for query operations. TABLE 5. Acceptable Presentation Contexts for Query Classes +----------------------------------------------------------------------------+ | Presentation Context Table | |----------------------------------------------------------------------------| | Abstract Syntax | Transfer Syntax | Role | Extended | | UID | UID | | Negotiation | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.1.1 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Patient Root Query/Retrieve | DICOM Implicit VR | | | | Information Model - FIND | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.1.2 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Patient Root Query/Retrieve | DICOM Implicit VR | | | | Information Model - MOVE | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.1.3 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Patient Root Query/Retrieve | DICOM Implicit VR | | | | Information Model - GET | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.2.1 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Study Root Query/Retrieve | DICOM Implicit VR | | | | Information Model - FIND | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.2.2 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Study Root Query/Retrieve | DICOM Implicit VR | | | | Model - MOVE | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.2.3 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Study Root Query/Retrieve | DICOM Implicit VR | | | | Model - GET | Little Endian | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.3.1 | 1.2.840.10008.1.2 | SCP | Relational | | | | | queries | | Patient/Study Only | DICOM Implicit VR | | | | Query/Retrieve Information | Little Endian | | | | Model - FIND | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.3.2 | 1.2.840.10008.1.2 | SCP | Relational | | Patient/Study Only | DICOM Implicit VR | | queries | | Query/Retrieve Information | Little Endian | | | | Model - MOVE | | | | |----------------------------------------------------------------------------| | 1.2.840.10008.5.1.4.1.2.3.3 | 1.2.840.10008.1.2 | SCP | Relational | | Patient/Study Only | DICOM Implicit VR | | queries | | Query/Retrieve Information | Little Endian | | | | Model - GET | | | | +----------------------------------------------------------------------------+ A.2.1.3.2.2.1 SOP Specific Conformance for SOP Class Query/Retrieve PacsOne Server supports relational queries in addition to hierarchical queries. Table 6 below indicates which keys are supported by the PacsOne Server for the Patient Root information model. PacsOne Server also supports the Patient/Study Only information model. The keys supported for that model are the same keys found in Table 6 with a level of either "Patient" or "Study". Table 7 indicates which keys are supported by the PacsOne Server for the Study Root information model. These tables include all optional and required keys that are supported. Optional keys are supported like required keys. TABLE 6. Keys Supported for Patient Root Information Model ----------------------------------------------------------------------------- Level Description Tag Type ----------------------------------------------------------------------------- Patient Patient Name 0010 0010 R Patient Patient ID 0010 0020 U Patient Patient Birth Date 0010 0030 O Patient Patient Birth Time 0010 0032 O Patient Patient Sex 0010 0040 O Patient Number of Patient Related Studies 0020 1200 O Patient Number of Patient Related Series 0020 1202 O Patient Number of Patient Related Instances 0020 1204 O ----------------------------------------------------------------------------- Study Study Date 0008 0020 R Study Study Time 0008 0030 R Study Accession Number 0008 0050 R Study Referring Physician Name 0008 0090 O Study Study Description 0008 1030 O Study Patient's Age 0010 1010 O Study Patient's Size 0010 1020 O Study Patient's Weight 0010 1030 O Study Study Instance UID 0020 000D U Study Study ID 0020 0010 R Study Number of Study Related Series 0020 1206 O Study Number of Study Related Instances 0020 1208 O ----------------------------------------------------------------------------- Series Series Date 0008 0021 O Series Series Time 0008 0031 O Series Modality 0008 0060 R Series Body Part Examined 0018 0015 O Series Series Instance UID 0020 000E U Series Series Number 0020 0011 R Series Number of Series Related Instances 0020 1209 O ----------------------------------------------------------------------------- Image Instance Creation Date 0008 0012 O Image Instance Creation Time 0008 0013 O Image SOP Class UID 0008 0016 O Image SOP Instance UID 0008 0018 U Image Instance Number 0020 0013 R Image Overlay Number 0020 0022 O Image Curve Number 0020 0024 O Image LUT Number 0020 0026 O Image Samples Per Pixel 0028 0002 O Image Rows 0028 0010 O Image Columns 0028 0011 O Image Bits Allocated 0028 0100 O Image Bits Stored 0028 0101 O Image Pixel Representation 0028 0103 O ----------------------------------------------------------------------------- PacsOne Server supports the three MOVE SOP classes listed in Table 5. In response to a C-MOVE request, PacsOne Server supports the Storage SOP classes that are listed in Table 1. TABLE 7. Keys Supported for Study Root Information Model ----------------------------------------------------------------------------- Level Description Tag Type ----------------------------------------------------------------------------- Study Study Date 0008 0020 R Study Study Time 0008 0030 R Study Accession Number 0008 0050 R Study Patient Name 0010 0010 R Study Patient ID 0010 0020 R Study Study ID 0020 0010 R Study Study Instance UID 0020 000D U Study Referring Physician Name 0008 0090 O Study Study Description 0008 1030 O Study Patient Birth Date 0010 0030 O Study Patient Birth Time 0010 0032 O Study Patient Sex 0010 0040 O Study Patient's Age 0010 1010 O Study Patient's Size 0010 1020 O Study Patient's Weight 0010 1030 O ----------------------------------------------------------------------------- Series Series Date 0008 0021 O Series Series Time 0008 0031 O Series Modality 0008 0060 R Series Body Part Examined 0018 0015 O Series Series Number 0020 0011 R Series Series Instance UID 0020 000E U ----------------------------------------------------------------------------- Image Instance Creation Date 0008 0012 O Image Instance Creation Time 0008 0013 O Image SOP Instance UID 0008 0018 U Image SOP Class UID 0008 0016 O Image Image Number 0020 0013 R Image Overlay Number 0020 0022 O Image Curve Number 0020 0024 O Image LUT Number 0020 0026 O Image Samples Per Pixel 0028 0002 O Image Rows 0028 0010 O Image Columns 0028 0011 O Image Bits Allocated 0028 0100 O Image Bits Stored 0028 0101 O Image Pixel Representation 0028 0103 O ----------------------------------------------------------------------------- A.2.1.3.2.3 Presentation Context Acceptance Criterion PacsOne Server will accept any number of query SOP classes that are listed in Table 5 above, provided that the requesting application is known to the PacsOne server and has been allowed access to the MySQL database (via the 'applentity' MySQL database table). PacsOne Server defines no limit on the number of presentation contexts accepted. In the event that PacsOne Server runs out of resources when trying to accept multiple presentation contexts, PacsOne Server will reject the association request. PacsOne Server does not check for duplicate presentation contexts and will accept duplicate presentation contexts. A.2.1.3.2.4 Transfer Syntax Selection Policies PacsOne Server only supports the Implicit VR Little Endian transfer syntax. Any proposed presentation context which includes the Implicit VR Little Endian transfer syntax will be accepted with the Implicit VR Little Endian transfer syntax. Any proposed presentation context that does not include the Implicit VR Little Endian transfer syntax will be rejected. A.2.1.3.3 Real World Activity - Verification PacsOne Server accepts associations from applications that wish to perform a verification (C-ECHO) operation on the PacsOne Server. A.2.1.3.3.1 Associated Real World Activity - Verification The real-world activity associated with the C-ECHO request is that an external application wishes to verify network or server operation without initiating any actual work. A.2.1.3.3.2 Presentation Context Table Table 8 shows the presentation contexts that may be accepted by PacsOne Server for verification operations.. TABLE 8. Acceptable Presentation Contexts for PacsOne Server for Verification +----------------------------------------------------------------------------+ | Presentation Context Table | |----------------------------------------------------------------------------| | Abstract Syntax | Transfer Syntax | Role | Extended | | UID | UID | | Negotiation | |----------------------------------------------------------------------------| | 1.2.840.10008.1.1 | 1.2.840.10008.1.2 | SCP | None | | | | | | | Verification | DICOM Implicit VR | | | | | Little Endian | | | +----------------------------------------------------------------------------+ A.2.1.3.3.2.1 SOP Specific Conformance for SOP Class Verification A.2.1.3.3.3 Presentation Context Acceptance Criterion PacsOne Server will accept any number of verification SOP classes that are listed in Table 8 above, provided that the requesting application is allowed access to the PacsOne Server (via the 'applentity' MySQL database table). The PacsOne Server defines no limit on the number of presentation contexts accepted. In the event that the PacsOne Server runs out of resources when trying to accept multiple presentation contexts, PacsOne Server will reject the association request. PacsOne Server does not check for duplicate presentation contexts and will accept duplicate presentation contexts. A.2.1.3.3.4 Transfer Syntax Selection Policies PacsOne Server only supports the Implicit VR Little Endian transfer syntax. Any proposed presentation context which includes the Implicit VR Little Endian transfer syntax will be accepted with the Implicit VR Little Endian transfer syntax. Any proposed presentation context that does not include the Implicit VR Little Endian transfer syntax will be rejected. A.3 Communication Profiles A.3.1 TCP/IP Stack PacsOne Server provides DICOM V3.0 TCP/IP Network Communication Support as defined in Part 8 of the Standard. A.3.1.1 TCP/IP API PacsOne Server uses the TCP/IP stack from Microsoft Windows upon which it executes. It uses a subroutine library that is based on Windows Socket API (Winsock) interface. A.3.1.2 Physical Media Support PacsOne Server exists as a software application that can be compiled and run on various Windows platforms. As such, it places no restrictions on the physical network. PacsOne Server has been tested using TCP/IP over Ethernet (10/100/1000 MBPS) as well as wireless LAN (IEEE 802.11a, 802.11b and/or 802.11g). A.4 Extensions/Specializations/Privatizations Not applicable A.5 Configuration PacsOne Server obtains configuration information from a database table which is stored in a relational database. In this implementation, the relational database is the open source MySQL database. A.5.1 AE Title/Presentation Address Mapping A MySQL database table 'applentity' is used to map between AE Titles and Presentation Addresses. The format of the table are as follows: mysql> describe applentity; +-------------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------+--------------+------+-----+---------+-------+ | title | varchar(16) | | PRI | | | | hostname | varchar(64) | YES | | NULL | | | ipaddr | varchar(64) | YES | | NULL | | | port | int(11) | YES | | NULL | | | allowaccess | tinyint(1) | YES | | 0 | | | archivedir | varchar(255) | YES | | NULL | | +-------------+--------------+------+-----+---------+-------+ 6 rows in set (0.00 sec) mysql> Entries in the 'applentity' table can be added, deleted or updated either from a web browser through the Apache web server interface, or directly by executing SQL statements from the localhost where MySQL database server is installed. A.5.2 Security Features PacsOne Server uses the 'applentity' to control access. The table allows the PacsOne Server to determine which applications are allowed access and where images should be stored. A.5.3 Configurable Parameters The following parameters may be configured for the PacsOne Server: • Application Entity Title • Log File Directory • TCP/IP Port Number • Storage Format Methods for setting these parameters are detailed in the 'README.TXT' included in the PacsOne Server installation package. A.5.4 Support of Extended Character Sets PacsOne Server provides no support for extended character sets.