![]()
![]()
|
|
|
|
|
|
|
|
Table of Contents :
This document describes the Medasys Digital Systems implementation profile of the HL7 standard into the DxNet application.
DxArchive application is a general image server for the purpose of image information handling and archiving using the Medasys Digital Systems image database.
DxNet application is the subset of the DxArchive application related to network connections management.
The abbreviation MDS is used for Medasys Digital Systems company name.
The abbreviation DxDBase is used for Medasys Digital Systems image database name.
DxHL7server, DxHL7proxi and DxHL7client applications are designed to support the version 2.2 of the HL7 standard, but offers in their current implementation compatibility with the previous version 2.1 of the standard, providing only original processing rules (i.e. original acknowledgement mode).
| Application data-flow diagram | Application functional definition |
DxHL7server and DxHL7proxi are the process of DxNet application which are responsible for the incoming HL7 notifications management.
DxHL7client is the process in charge of the outgoing HL7 notifications.
The possible exchanges are describes in the Figure 1.
As de/picted in the Figure 1, there are two ways for a HL7 request to be received in order to manage objects in DxDBase. A remote application (e.g. HIS/RIS systems) can either send HL7 notifications to the DxHL7server by opening a connection on the server machine at the port associated with DxHL7server or be called by the DxHL7proxi that will establish a TCP/IP connection. DxHL7server and DxHL7proxi both send an acknowledge message when an HL7 message has been received. This acknowledge allows the HIS/RIS system to verify if the message sent has been successfully received and decoded by DxHL7server or DxHL7proxi.
During the import process of images/patients files, it is possible to generate HL7 notifications. Those notifications give details about patients and the related studies that have been created during the import process. The notifications are stored and can be sent to a remote application using DxHL7client. DxHL7client sends the notifications created by DxArchive to a remote system and waits for an acknowledge. If the acknowledge is not received before a time out or if the acknowledge is negative, DxHL7client will try to send the message later on.
DxArchive can also create HL7 notifications during the process called Orphan Pool. In this case, DxHL7client can send the resulting HL7 notifications to a remote application by using DxHL7client as explained above.
| DxHL7server and DxHL7proxi | Accepted incoming messages | Processed segments and fields |
| Use of escape sequences in text fields | Acknowledge messages description | DxHL7 client |
DxHL7server and DxHL7proxi applications act as service providers for the following services :
| patient creation, | |
| study creation, | |
| patient merge, | |
| patient delete, | |
| patient information update. |
DxHL7server uses its standard input and output to respectively receive HL7 notification and send HL7 acknowledge. DxHL7server can be associated with a port number using the inetd daemon.
DxHL7proxi connects itself to a remote application via TCP/IP and wait for a HL7 message. DxHL7proxi can be initialised using inittab to automatically respawn after each received message.
The following message types are accepted by DxHL7server et DxHL7proxi : ADT, ORM, ORU. Other message types will be rejected by DxHL7proxi an DxHL7server.
|
MESSAGE TYPE |
MESSAGE DESCRIPTION |
|
ADT A01 |
Admit Patient |
|
ADT A03 |
Discharge Patient |
|
ADT A08 |
Update Patient Information |
|
ADT A18 |
Merge Patient Information |
|
ADT A23 |
Delete Patient Record |
|
ORM Z01 |
New diagnostic study order |
|
ORU |
Unsolicited Transmission of Observation Results |
For each message an associated action on DxDBase is configured. Refer to this section to find out the required fields for all the possible actions.
| Message Type (MSH item 00009) | Corresponding Action |
|
ADT A01 |
Create a Patient in DxDBase |
|
ADT A03 |
Delete a Patient in DxDBase |
|
ADT A08 |
Update Patient Information in DxDBase |
|
ADT A18 |
Merge Patient Information in DxDBase |
|
ADT A23 |
Delete a Patient in DxDBase |
|
ORU |
Create a Study in DxDBase |
|
ORM Z01 |
Create a Study in DxDBase |
Note : It is also possible to use other messages and to assign them a special meaning via the configuration files. For examples ADT A04 (Register a patient) can be associated with a Patient creation action in DxDBase.
During the HL7 notification decoding process, DxHL7server and DxHL7proxi use a dictionary to assign a HL7 message field to a field of DxDBase. This allows to take into account site specific message segment construction rules of a given site.
MSH segment information are used to :
| configure the HL7 decoding rules, | |
| associate an action on DxDBase with the message type, | |
| control the network parameters |
|
Field Name |
Item Number |
Remarks |
| Field Separator | 00001 | Used to separate field |
| Encoding Characters | 00002 | Used |
| Sending Application | 00003 | Used for network control |
| Sending Facility | 00004 | Used for network control |
| Receiving Application | 00005 | Used for network control |
| Receiving Facility | 00006 | Used for network control |
| Date/Time of Message | 00007 | Not used with the standard dictionary |
| Security | 00008 | Not used with the standard dictionary |
| Message Type | 00009 | Used to determine the action on DxDBase |
| Message Control ID | 00010 | Used |
| Processing ID | 00011 | Checked, possible values are 'D', 'P', 'T' |
| Version ID | 00012 | Checked, possible values are 2.1 and 2.2 |
| Sequence Number | 00013 | Not used with the standard dictionary |
| Continuation Pointer | 00014 | Not used with the standard dictionary |
| Accept Acknowledge Type | 00015 | Used |
| Application Acknowledge | 00016 | Used |
| Country Code | 00017 | Not used with the standard dictionary |
The network control allows DxHL7server and DxHL7proxi to check if the incoming message is issued by a specified application and facility and if DxHL7server or DxHL7proxi are the recipient for the notification. This control can be enabled or disabled.
EVN segment information are not processed in the current implementation.
PID segment information are used to create a Patient entry in the DxDBase, to update the associated Patient, to delete a Patient or to merge Patients.
|
Field Name |
Item Number |
Remarks |
| Set ID | 00104 | Checked |
| Patient ID (External ID) | 00105 | Not used with the standard dictionary |
| Patient ID (Internal ID) | 00106 | Stored |
| Alternate Patient ID | 00107 | Stored |
| Patient Name | 00108 | Stored |
| Mother's Maiden Name | 00109 | Stored |
| Date Of Birth | 00110 | Stored |
| Sex | 00111 | Stored |
| Patient Alias | 00112 | Stored |
| Race | 00113 | Not used with the standard dictionary |
| Patient Address | 00114 | Stored |
| Country Code | 00115 | Not used with the standard dictionary |
| Phone Number Home | 00116 | Stored |
| Phone Number Business | 00117 | Stored |
| Language | 00118 | Not used with the standard dictionary |
| Marital Status | 00119 | Not used with the standard dictionary |
| Religion | 00120 | Stored |
| Patient Account Number | 00121 | Not used with the standard dictionary |
| SSN Number | 00122 | Stored |
| Driver's Licence Number | 00123 | Not used with the standard dictionary |
| Mother's Identifier | 00124 | Not used with the standard dictionary |
| Ethnic Group | 00125 | Stored |
| Birth Place | 00126 | Not used with the standard dictionary |
| Multiple Birth Indicator | 00127 | Not used with the standard dictionary |
| Birth Order | 00128 | Not used with the standard dictionary |
| Citizenship | 00129 | Not used with the standard dictionary |
| Veterans Military Status | 00130 | Stored |
OBR segment information are used to create a Study.
|
Field Name |
Item Number |
Remarks |
| Set ID | 00237 | Checked |
| Place Order Number | 00216 | Not used with the standard dictionary |
| Filler Order Number | 00217 | Not used with the standard dictionary |
| Universal Service ID | 00238 | Used |
| Priority | 00239 | Not used with the standard dictionary |
| Requested Date/Time | 00240 | Not used with the standard dictionary |
| Observation Date/Time | 00241 | Used |
| Observation End Date/Time | 00242 | Not used with the standard dictionary |
| Other Fields | 00243-00246 | Not used with the standard dictionary |
| Relevant Clinical Information | 00247 | Used |
| Other Fields | 00248 00268 | Not used with the standard dictionary |
The resulting Study is shown on Figure 2
MRG segment information are used to merge patients information.
|
Field Name |
Item Number |
Remarks |
| Prior Patient ID - Internal | 00211 | Used for merging purpose |
| Prior Alternate Patient ID | 00212 | Not used with the standard dictionary |
| Prior Account Number | 00213 | Not used with the standard dictionary |
| Prior Patient ID - External | 00214 | Not used with the standard dictionary |
PV1 and NK1 are recognised but the current implementation does not stored information found in these fields.
When a field of type TX, FT, or CF is being encoded, the escape character may be used. For the purposes of this section, the character '\' will be used to represent the escape code. The following escape sequences are recognised by the DxHL7 Net applications :
| \H\ start highlighting, | |
| \N\ normal text (end highlighting), | |
| \F\ field separator, | |
| \S\ component separator, | |
| \T\ sub component separator, | |
| \R\ repetition character, | |
| \E\ escape character, | |
| \Xdddd\ hexadecimal data, | |
| \Zdddd\ locally defined escape sequence. |
The MSH segment fields of acknowledge notifications send by DxHL7server or DxHL7proxi are filled as specified in the HL7 specification standard.
|
Field Name |
Item Number |
Remarks |
| Message Type | 00009 | Fixed to 'ACK' |
|
Field Name |
Item Number |
Remarks |
| Acknowledge Code | 00018 | Possible value : AE, CR, AR, CE. |
| Message Control ID | 00019 | Incoming message ID |
| Text Message | 00020 | empty |
| Expected Sequence Number | 00021 | empty |
| Delayed Acknowledgement Type | 00022 | |
| Error Condition | 00023 | Error description |
|
Field Name |
Item Number |
Remarks |
| Error Code and Location | 00024 | location^MDS_ERRcode |
Where location is the part of the HL7 notification that generates the error.
DxHL7client application acts as a messages sender. DxArchive and the archiving process can issue some HL7 notifications to notify the RIS/HIS system of operations realised (image archiving or orphan resolution).
DxHL7client does not create the HL7 notifications. The notifications send by this process are constructed by the image archiving process or the orphan pool (refer here and here).
DxHL7client can be launched by the impd daemon, on one or more directories where the orphan resolution and image archiving notification are stored. If a notification failed to be send, it will be kept and send later on.
DxNet applications provides TCP/IP Network Communication Support. DxNet applications inherit their TCP/IP stack from the HP-UX UNIX operating system upon which they execute.
DxHL7server application accepts association on a communication port controlled by the inetd Internet Daemon of the HP-UX UNIX operating system.
As DxArchive use DxHL7client to send HL7 notifications to remote applications, this process allows a retry process to ensure that all the notification are successfully received by the remote application.
DxHL7server and DxHL7proxi are used to create, update, delete or merge patients and to create studies. The following sections show the appearance of a patient and its study in DxArchive.
Figure 2 is the result of a patient and a study creation in the DxDBase. The first set of information found in the selected patient area shows some of the PID segment informations. More patient related information can be found in the 'patient information' window. The object list area shows a study created for the selected patient. The information displayed are the ones found in the OBR segment.
As shown on Figure 3, all the information decoded from the PID segment are stored in DxDBase. DxArchive allows to display those information.
DxArchive can create notifications during the process of orphan resolution (Orphan Pool). This function allows to merge information from an orphan patient with the ones from a real patient.
The type of message used to express an orphan resolution is an ORU message. Each segment of this message is used as explained in the following table :
|
SEGMENT |
DEFAULT INFORMATION |
| MSH | As specified in the HL7 standard, message type is ORU. |
| EVN | As specified in the HL7 standard. |
| PID | As specified in the HL7 standard, all available information stored by DxDBase for the real patient are used. |
| OBR | This segment is not filled. |
| OBX | May be used a as many time as useful to give all the available information stored by DxDBase for the orphan patient. |
This segment is not filled because conforming to the HL7 standard it is used to store study information (refer to §5.4).
The configuration file used while image archiving gives all the information to be stored in the OBX segment. The OBX segment fields are composed of the following components separated by HL7 component separator character:
| DxArchive item name, | |
| item value, | |
| item comment. |
Some extra OBX segments are added to the end of the HL7 notification. The DICOM UID of all the images of the orphan patient are provided.
|
Field Name |
Item Number |
Remarks |
| Message Type | 00009 | Fixed to 'ORU' |
As define in the HL7 standard.
The PID segment gives information about the real patient who has been merged with the orphan patient. The orphan patient information are found in the OBX segments.
The OBX segment is present in the notification but its fields are empty. No study ID is given because the following OBX segments give information about all the studies related to the orphan patient (refer here and here).
The first OBX segment show a keyword to express the fact that the notification refer to merge action in DxDBase Orphan Pool. This keyword is MDS_MERGE_NOTIFICATION. Following this first OBX segment some configurable segment are provided as explained in the next table.
|
Field Name |
Item Number |
Remarks |
| Set ID | 00569 | Fixed to '1' value |
| Value Type | 00570 | Fixed to 'TX' value |
| Observation Identifier | 00571 | Fixed to 'DXARCHIVE^NOTIFICATION' |
| Observation Sub-ID | 00572 | Counter |
| Observation Identifier | 00573 | Configurable list of values |
A configuration file allows to add to the HL7 notification as many OBX segments as needed to provide information on the archived patient/image file. The field contains 3 sub components :
| DxArchive item name, | |
| item value, | |
| item comment. |
The item name and the comment are found in the configuration file. The item value is retrieved from the DxDBase.
Some extra OBX segments are provided to give information about all the images stored for the orphan patient. Those OBX segments show the keyword 'Dicom UID' followed by the ID of the image fount in the DxDBase.
The DxMultiModality interface can create, update or delete patients. Therefore those actions can produce some HL7 Notifications. Those notifications can be configure as desired : the type of message can be chosen and the content of the segments id fully configurable.
From the Object Selection Window the following actions are possible:
From the Patient Information Window the following actions are possible:
From the Orphan Pool Window
The availables types of message are the following :
| SEGMENT | DEFAULT INFORMATION |
| MSH | As specified in the HL7 standard, message type as configured. |
| EVN | As specified in the HL7 standard. |
| PID | As specified in the HL7 standard, all available information stored by DxDBase for the real patient are used. |
| OBX | May be used a as many time as useful to give all the available information that are required (1). |
(1) The OBX segments may be added depending on the options chosen in the configuration.
See EVN segment to Configurable OBX segment for other information.
DxArchive system initiates association messages to remote applications when an image is successfully archived in DxDBase. The messages provided are based on the ORU message type.
DxArchive archiving process use different segments of the ORU message type in the notification message, to reference and identify the image imported as described in the following sections.
|
SEGMENT |
DEFAULT INFORMATION |
| MSH | As specified in the HL7 standard, message type is ORU. |
| EVN | As specified in the HL7 standard. |
| PID | As specified in the HL7 standard, all available information stored by DxDBase for the new patient are used. |
| OBR | As specified in the HL7 stansdard. |
| OBX | May be used a as many time as useful to give all the available information stored by DxDBase for the new patient. |
The configuration file used while image archiving gives all the information to be stored in the OBX segments. The OBX segments are composed of the following components separated by HL7 component separator character:
| DxArchive item name, | |
| item value, | |
| item comment. |
A list of the available is DxArchive items is provided to allow site information needs adjustments.
|
Field Name |
Item Number |
Remarks |
| Message Type | 00009 | Fixed to 'ORU' |
As defined in the HL7 standard.
Most of the PID segment fields are field if the decoding process found out the needed information in the patient/image file.
|
Field Name |
Item Number |
Remarks |
| Filler Order Number | 00217 | Study ID |
| Observation Date/Time | 00241 | Study date and Time |
By default a single OBX segment is found in the HL7 notification issued by the archiving process. The following table describe this particular segment.
|
Field Name |
Item Number |
Remarks |
| Set ID | 00569 | Fixed to '1' |
| Value Type | 00570 | Fixed to 'TX' value |
| Observation Identifier | 00571 | Fixed to 'DxARCHIVE^NOTIFICATION' |
| Observation Sub-ID | 00572 | Fixed to '1' value |
| Observation Value | 00573 | Fixed |
Fixed to a set of DICOM information, necessary to identify the archived image as required by the DICOM standard. This field shall contain 9 components, the definition of each one being as following:
| Patient Orphan Flag | |
| Study Orphan Flag | |
| Patient ID | |
| Study Instance UID | |
| Series Instance UID | |
| SOP Instance UID | |
| SOP Class UID | |
| Transfer Syntax | |
| Modality |
The Patient Orphan Flag refers to the orphan status of the patient associated with the image for which the notification is sent, while Study Orphan Flag refers to the orphan status of the related study. Possible values for those two components are:
| Y if orphan | |
| N if not orphan |
Refer to the DICOM standard for further descriptions of the remaining components.
| Field Name | Item Number | Remarks |
| Set ID | 00569 | Fixed to '1' value |
| Value Type | 00570 | Fixed to 'TX' value |
| Observation Identifier | 00571 | Fixed to 'DXARCHIVE^NOTIFICATION' |
| Observation Sub-ID | 00572 | Counter |
| Observation Identifier | 00573 | Configurable list of values. |
A configuration file allows to add to the HL7 notification as many OBX segments as needed to provide information on the archived patient/image file. The field contains 3 sub components :
| DxArchive item name, | |
| item value, | |
| item comment. |
The item name and the comment are found in the configuration file. The item value is retrieved from the DxDBase.
The HL7server process is able to answer to simple queries as define in the following sections. The query response are provided in a non-deffered way. The information provided by the response are configurable and can contain any data that have been stored in the DxDatabase that are related to the patient or its studies.
| Field Name | Item Number | Remarks |
| Message Type | 00009 | Fixed to QRY^Q01 |
| Field Name | Item Number | Remarks |
| Query Date/Time | 00025 | not in use by now |
| Query Format Code | 00026 | not in use by now |
| Query Priority | 00027 | not in use by now |
| Query ID | 00028 | not in use by now |
| Deferred Response Type | 00029 | not in use by now |
| Deferred Response Date/Time | 00030 | not in use by now |
| Quantity Limited Request | 00031 | not in use by now |
| Who Subject Filter | 00032 | used to select patient name, first name, middle name, suffix and prefix. |
| What Subject Filter | 00033 | used to define the query level : patient level for values in (APN, DEM) or study level for values in (ADV, APM, APA, ORD, RES) |
| What Department Data Code | 00034 | not in use by now |
| What Data Code Value Qual. | 00035 | not in use by now |
| Query Result Level | 00036 | not in use by now |
| Field Name | Item Number | Remarks |
| Where Subject Filter | 00037 | not in use by now |
| When Data Start Date/Time | 00038 | used to define the lower value for the study date |
| When Data End Date/Time | 00039 | used to define the upper value for the study date |
| What User Qualifier | 00040 | not in use by now |
| Other Query Subject Filter | 00041 | not in use by now |
| Which Date/Time Qualifier | 00042 | not in use by now |
| Which Date/Time Status Qualifier | 00043 | not in use by now |
| Date/Time Selection Qualifier | 00044 | used to order responses by study date : ascending order for values in (ALL, LST) or descending order for values in (1ST, REV). |
| When Quantity/Timing Qualifier | 00694 | not in use by now |
| Field Name | Item Number | Remarks |
| Message Type | 00009 | Fixed to ACK |
| Field Name | Item Number | Remarks |
| Acknowledge Code | 00018 | Possible value : AE, CR, AR, CE. |
| Message Control ID | 00019 | Incoming message ID |
| Text Message | 00020 | empty |
| Expected Sequence Number | 00021 | empty |
| Delayed Acknowledgement Type | 00022 | |
| Error Condition | 00023 | Error description |
| Field Name | Item Number | Remarks |
| Error Code and Location | 00024 | location^MDS_ERRcode (1) |
| Field Name | Item Number | Remarks |
| Query Tag | 00696 | NULL |
| Query Response Status | 00708 | values in (OK, NF, AE, AR) |
| Field Name | Item Number | Remarks |
| Query Date/Time | 00025 | From the original QRD segment |
| Query Format Code | 00026 | From the original QRD segment |
| Query Priority | 00027 | From the original QRD segment |
| Query ID | 00028 | From the original QRD segment |
| Deferred Response Type | 00029 | From the original QRD segment |
| Deferred Response Date/Time | 00030 | From the original QRD segment |
| Quantity Limited Request | 00031 | From the original QRD segment |
| Who Subject Filter | 00032 | From the original QRD segment |
| What Subject Filter | 00033 | From the original QRD segment |
| What Department Data Code | 00034 | From the original QRD segment |
| What Data Code Value Qual. | 00035 | From the original QRD segment |
| Query Result Level | 00036 | From the original QRD segment |
The complete segment is copied from the original message.
| Field Name | Item Number | Remarks |
| Where Subject Filter | 00037 | From the original QRF segment |
| When Data Start Date/Time | 00038 | From the original QRF segment |
| When Data End Date/Time | 00039 | From the original QRF segment |
| What User Qualifier | 00040 | From the original QRF segment |
| Other Query Subject Filter | 00041 | From the original QRF segment |
| Which Date/Time Qualifier | 00042 | From the original QRF segment |
| Which Date/Time Status Qualifier | 00043 | From the original QRF segment |
| Date/Time Selection Qualifier | 00044 | From the original QRF segment |
| When Quantity/Timing Qualifier | 00694 | From the original QRF segment |
The complete segment is copied from the original message.
| Field Name | Item Number | Remarks |
| Set ID - DSP | 00061 | fixed to DSP |
| Display Level | 00062 | NULL |
| Data Line | 00063 | desired value are seperated into sub fields (1). |
| Logical Break Point | 00064 | not in use by now |
| Result ID | 00065 | not in use by now |
(1) the desired values are defined in a configuration file, they are the coded name for the attributes of the tables in the DxDatabase.
DxHL7server, DxHL7proxi, DxHL7client and the images archiving process are providing different levels of configuration through the use of resources found in configuration files. Therefore it is possible to specify :
| message construction rules (separators, encoding format, headers, trailers, ...), | |
| information provided by the images archiving process, | |
| assignment of HL7 notification fields to DxDBase fields, | |
| control of receiving and sending application or facility, | |
| action to associate to a specified HL7 message type. | |
| assignment of different type of HL7 notification to the different events in DxMultiModality. |
Refer to the document UL/P6/XCA/24Oct96/120 DxArchive System Configuration and Administration for a complete description of the configuration of the DxNet HL7 Implementation.
|
MEDASYS FRANCE : |
Contact :
|
MEDASYS USA : |