© 2024 IQVIA - All Rights Reserved
ClinSpark / ClinAxys Lab Integration
- 1 Introduction
- 2 Overview
- 3 Order Message Segments
- 3.1 Example Order Message
- 3.2 MSH Segment
- 3.3 PID Segment
- 3.4 CSS Segment
- 3.5 CTI Segment
- 3.6 ORC Segment
- 3.7 OBR Segment
- 4 Result Message Segments
- 4.1 Example Result Message
- 4.2 MSH Segment
- 4.3 PID Segment
- 4.4 ORC Segment
- 4.5 OBR Segment
- 4.6 OBX Segment
- 4.7 NTE Segment
- 5 PDF Requisition
Introduction
ClinAxys is a third-party LIMS supplied by Clinical Systems Ltd., UK Office: PO Box 1346, Wilburton, Ely, Cambridgeshire CB6 3QY, United Kingdom.
The trademark ClinAxys® is a registered trademark of Clinical Systems Holdings Ltd.
ClinSpark has been successfully interfaced with ClinAxys LIMS instances using the approach defined below.
Overview
The lab integration is a bi-directional interface where messages in the form of HL7 files pass back and forth via a set of shared SFTP directories.
ClinSpark will host the SFTP server, these credentials will be provided securely to the lab via email.
HL7 files are used for orders sent by ClinSpark to the lab, with results and optionally confirmation messages sent from the lab to ClinSpark.
The format of these messages is governed by HL7 specifications https://hl7-definition.caristix.com/v2/HL7v2.5.1/Segments and the requirements of the safety lab.
Order Message Segments
Each specimen tube will have a unique barcode and HL7 file.
Barcodes are typically 12 digits in length. The first character is a fixed prefix, which is configurable. It can be any alpha or numeric character. The next digits are a digit sequence unique to the specimen tube. The last 2 digits represent the specimen container suffix when a container is assigned to a panel and/or test.
A best practice is for ClinSpark to pass study context information about each sample, such as study name, study event name, cohort and subject numbers. These should be visible to the lab techs, to facilitate conversations with the clinical site when there are issues. We can accommodate many ways to do this, it is up to the lab.
Example Order Message
MSH|^~\&|ClinSpark|FH|Lab|ST|202403131824||ORM|1710372276819cf57c38|P|2.3
PID|1|5920||P1001^|Garcia^Dennis^||19980823|F||C|1ST STREET^^SOMEWHERE^WI^53090||^^^|C||||^^^C^^^||||
CSS|b Data Stu||
CTI|REPEAT||
ORC|NW|B00104277-C99^|B00104277-C99^LAB|Urine aliquot 10 ml||||||||123^Fredrickson^Francine^^^^^N||||^^
OBR|1|B00104277-C99^LAB|^LAB|12206^CALCIUM URINE^L|||202403131816||^||N||^|||123^Fredrickson^Francine^^^^^N||||^^||||||^|||
ORC|NW|B00104277-C99^|B00104277-C99^LAB|Urine aliquot 10 ml||||||||123^Fredrickson^Francine^^^^^N||||^^
OBR|2|B00104277-C99^LAB|^LAB|12207^PHOSPHATE URINE^L|||202403131816||^||N||^|||123^Fredrickson^Francine^^^^^N||||^^||||||^|||
ORC|NW|B00104277-C99^|B00104277-C99^LAB|Urine aliquot 10 ml||||||||123^Fredrickson^Francine^^^^^N||||^^
OBR|3|B00104277-C99^LAB|^LAB|12201^POTASSIUM URINE^L|||202403131816||^||N||^|||123^Fredrickson^Francine^^^^^N||||^^||||||^|||
ORC|NW|B00104277-C99^|B00104277-C99^LAB|Urine aliquot 10 ml||||||||123^Fredrickson^Francine^^^^^N||||^^
OBR|4|B00104277-C99^LAB|^LAB|12200^SODIUM URINE^L|||202403131816||^||N||^|||123^Fredrickson^Francine^^^^^N||||^^||||||^|||
MSH Segment
Sequence | Name | Value | Comment |
1 | Field Separator | | | Hard Coded |
2 | Encoding Characters | ^~\& | Hard Coded |
3 | Sending Application | [Sending Application] | Obtained from Lab Interface Config |
4 | Sending Facility | [Sending Facility] | Obtained from Lab Interface Config |
5 | Receiving Application | [Receiving Application] | Obtained from Lab Interface Config |
6 | Receiving Facility | ST | Hard Coded |
7 | Date/Time of Message | Time of order file creation
| Format: yyyyMMddHHmm |
8 | Security | NULL | Not Required |
9 | Message Type | ORM | Hard Coded
|
10 | Message Control ID | System current time and ID
| ClinSpark generates for each file |
11 | Processing ID | Environment ID | If production = P |
12 | Version ID | 2.3 | Hard Coded |
PID Segment
Sequence | Name | Value | Comment |
1 | Set ID | 1 | Hard Coded |
2 | Patient ID | [Subject Volunteer ID] | Obtained from Volunteer Profile |
3 | Patient Identifier List | NULL | Not Required |
4 | Alternate Patient ID - PID | 4.1 [Subject Screening Number] 4.2 [Subject Randomization Number] | Each sub-field will be separated with “^” *Randomization number only present if subject is randomized |
5 | Patient Name | 5.1 [Subject Last Name Initial] 5.2 [Subject First Name Initial] 5.3 [Subject Middle Name Initial] | Initials will be the first character (alpha, numeric or character) of the Subject First, Last and Middle name within the Volunteer Database in ClinSpark If no middle initial = empty Each sub-field will be separated with “^” Example 1:
|J^2^| Example 2: |J^J^J| |
6 | Mother's Maiden Name | NULL | Not Required |
7 | Date/Time of Birth | [Subject Birth Date]
| Format: yyyyMMdd |
8 | Administrative Sex | [Subject Gender] | Male and Female which will be stored as ‘M' and 'F’ |
9 | Patient Alias | NULL | Not Required |
10 | Race | [Subject Race Code] | Race Codes: American Indian or Alaskan Native = I Asian = A Black or African American = B Native Hawaiian or Other Pacific Islander = O White = C Other Race = O Unknown = X |
11 | Patient Address | 11.1 [Site Address] 11.2 NULL 11.3 [Site City] 11.4 [Site State] 11.5 [Site Postal Code] | Each sub-field will be separated with “^” Obtained from Site Details |
12 | County Code | NULL | Not Required |
13 | Phone Number - Home | NULL | Not Required |
14 | Phone Number - Business | NULL | Not Required |
15 | Primary Language | NULL | Not Required |
16 | Marital Status | NULL | Not Required |
17 | Religion | NULL | Not Required |
18 | Patient Account Number | ^^^C^^^
| Hard Coded Not Required |
CSS Segment
Sequence | Name | Value | Comment |
1 | Sponsor Study Identifier | [Study Name] | Trim the first two characters from the study name to allow no more than 10 characters *Study must be set up on ClinAxys |
2 | Study Phase Identifier | [Cohort Name] |
|
CTI Segment
Sequence | Name | Value | Comment |
1 | Study Scheduled Time Point | [Visit Number] | Study Event Visit Number |
2 | Study Scheduled Patient Time Point | [Timepoint]
| Format: hh:mm:ss (segment # ) |
3 | Study Scheduled Time Point | Null | Not Required |
ORC Segment
Sequence | Name | Value | Comment |
1 | Order Control | NW | Hard Coded |
2 | Placer Order Number | [Barcode] | Must be returned to ClinSpark This field must contain the same value as OBR-2 |
3 | Filler Order Number | [Barcode]^LAB | ‘LAB’ is Hard Coded |
4 | Placer Group Number | NULL | Not Required |
5 | Order Status | NULL | Not Required |
6 | Response Flag | NULL | Not Required |
7 | Quantity/Timing | NULL | Not Required |
8 | Parent Order | NULL | Not Required |
9 | Date/Time of Transaction | NULL | Not Required |
10 | Entered By | NULL | Not Required |
11 | Verified By | NULL | Not Required |
12 | Ordering Provider | 12.1 [ Site Investigator ID] (Required for billing) 12.2 [Site Investigator Last Name] 12.3 [Site Investigator First Name] 12.4 NULL 12.5 NULL 12.6 NULL 12.7 NULL 12.8 [Site NPI Number] (N) | Each sub-field will be separated with “^” |
13 | Enterer’s Location | NULL | Not Required |
14 | Call Back Phone Number | NULL | Not Required |
15 | Order Effective Date/Time | NULL | Not Required |
16 | Order Control Code Reason | ^^ | Not Required |
OBR Segment
Sequence | Name | Value | Comment |
1 | Set ID - OBR | [OBR Sequence] | For the first repeat of the OBR segment, the sequence number shall be one (1), for the second repeat, the sequence number shall be two (2), etc. |
2 | Placer Order Number | [Barcode]^LAB | ‘LAB’ is hardcoded |
3 | Filler Order Number | ^LAB | Hard Coded |
4 | Universal Service Identifier | 4.1 [Lab Test ID] 4.2 [Lab Test Name] 4.3 [L] | Identifier for the orderable tests Each sub-field will be separated with “^” 'L' is Hard Coded |
5 | Priority - OBR | NULL | Not Required |
6 | Request Date/Time | NULL | Not Required |
7 | Observation Date/Time | [Sample Collection Date/Time] | Format: yyyyMMddHHmm |
8 | Observation End Date/Time | NULL | Not Required |
9 | Collection Volume | NULL | Not Required |
10 | Collector Identifier | NULL | Not Required |
11 | Specimen Action Code | N (New Order) | Hard Coded |
12 | Danger Code | NULL | Not Required |
13 | Relevant Clinical Information | NULL | Not Required |
14 | Specimen Received Date/Time | NULL | Not Required |
15 | Specimen Source | NULL | Not Required |
16 | Ordering Provider | 16.1 [Investigator ID] (Required for billing) 16.2 [Investigator Last Name] 16.3 [Investigator First Name] 16.4 NULL 16.5 NULL 16.6 NULL 16.7 NULL 16.8 [NPI Number] (N) | This field will contain the same value as ORC.12 and each sub-field will be separated with “^” |
Result Message Segments
ClinSpark does not accept any embedded binary content, such as PDFs or images. We can consume textual results only.
ClinSpark looks only for result information, and ignores any information in the MSH or PID segments. This is because ClinSpark is already the source of truth for this information, and we do not update any of this core subject data based on results of the lab.
ClinSpark expects to find the original specimen barcode in ORC-2 and OBR-2, the same value which was passed for that same sample in the HL7 order file from us. This value is used on our end to look up that specimen so that the contained results can be applied properly.
Example Result Message
MSH|^~\&|CLINSPARKMOCK||||20240313181712||ORU^R01||T|2.4|||||||||
PID|1|5920|5920||G^D||19980823|F|||||||||||||||||||||
ORC|RE|B00104277-C99^CLINSPARK|1710371832440||CM||||20240313181712|||123^CPU^^^^Doctor||||^|
OBR|1|B00104277-C99|1710371832440|112^24-Hour Urine Panel|||20240313181712|||||||20240313181712||123^CPU^^^^Doctor||||||||112|F||^^^^^R||||||||||
OBX|1|NM|12201^Potassium Urine||27.7|mmol/L|17.0 - 99.0||||F|||20240313181712|||||
OBX|2|NM|12206^Calcium Urine||0.78|mmol/L|0.13 - 8.90||||F|||20240313181712|||||
OBX|3|NM|12207^Phosphate Urine||37.23|mmol/L|1.60 - 61.00||||F|||20240313181712|||||
OBX|4|NM|12200^Sodium Urine||171.3|mmol/L|30.0 - 90.0|H|||F|||20240313181712|||||
MSH Segment
Sequence | Name | Value | Comment |
1 | Field Separator | | | Received from ClinAxys |
2 | Encoding Characters | ^~\& | Received from ClinAxys |
3 | Sending Application | [Sending Application] | Received from ClinAxys |
4 | Sending Facility | [Sending Facility] | Received from ClinAxys |
5 | Receiving Application | [Receiving Application] | Received from ClinAxys |
6 | Receiving Facility | [Receiving Facility] | Received from ClinAxys |
7 | Date/Time of Message | Time of result file creation | Received from ClinAxys Format: yyyyMMddHHmmss |
8 | Security | NULL | Not Required |
9 | Message Type | ORU^R01 | Received from ClinAxys |
10 | Message Control ID | System generated | Received from ClinAxys |
11 | Processing ID | System generated | Received from ClinAxys |
12 | Version ID | HL7 Version ID | Received from ClinAxys |
PID Segment
Sequence | Name | Value | Comment |
1 | Set ID | 1 | Received from ClinAxys |
2 | Patient ID | [Subject Volunteer ID] | Received from ClinAxys ClinSpark is Source |
3 | Patient Identifier List | NULL | Not Required |
4 | Alternate Patient ID - PID | 4.1 [Subject Screening Number] 4.2 [Subject Randomization Number] | Each sub-field will be separated with “^” Received from ClinAxys ClinSpark is Source |
5 | Patient Name | 5.1 [Subject Last Name] 5.2 [Subject First Name] 5.3 [Subject Middle Name] | Each sub-field will be separated with “^” Received from ClinAxys ClinSpark is Source |
6 | Mother’s Maiden Name | NULL | Not Required |
7 | Date/Time of Birth | [Subject Birth Date] | Received from ClinAxys Source is ClinSpark |
8 | Administrative Sex | [Subject Gender] | Received from ClinAxys Source is ClinSpark |
9 | Patient Alias | NULL | Not Required |
10 | Race | [Subject Race] | Received from ClinAxys Source is ClinSpark |
ORC Segment
Sequence | Name | Value | Comment |
1 | Order Control | [NW] | New: NW Update: XO Cancel: CA Schedule: SC |
2 | Placer Order Number | [Barcode] | Must be returned to ClinSpark This field must contain the same value as OBR-2 |
3 | Filler Order Number | 3.1 [Barcode] 3.2 [Lab ID] | Each sub-field will be separated with “^” |
Remaining Segments |
| NULL | Not Required |
OBR Segment
Sequence | Name | Value | Comment |
1 | Set ID - OBR | [OBR Sequence] | For the first repeat of the OBR segment, the sequence number shall be one (1), for the second repeat, the sequence number shall be two (2), etc. |
2 | Placer Order Number | [Barcode] | Must be returned to ClinSpark |
3 | Filler Order Number | 3.1 [Barcode] 3.2 [Lab ID] | Each sub-field will be separated with “^” |
4 | Universal Service Identifier | 4.1 [Test ID] 4.2 [Test Name] | Each sub-field will be separated with “^” Identifier for the ordered tests |
5 | Priority - OBR | NULL | Not Required |
6 | Requested Date/Tim | NULL | Not Required |
7 | Observation Date/Time | [Sample Collection Date/Time] | Format: yyyyMMddHHmm |
8 | Observation End Date/Time | NULL | Not Required |
9 | Collection Volume | NULL | Not Required |
10 | Collector Identifier | NULL | Not Required |
11 | Specimen Action Code | [Code] | 'N' - New orders accompanying new specimen (original order) |
12 | Danger Code | NULL | Not Required |
13 | Relevant Clinical Information | NULL | Not Required |
14 | Specimen Received Date/Time | NULL | Not Required |
15 | Specimen Source | NULL | Not Required |
16 | Ordering Provider | NULL | Not Required |
OBX Segment
Sequence | Name | Default Value | Comment |
1 | Set ID – OBX | [OBX Sequence] | For the first repeat of the OBX segment, the sequence number shall be one (1), for the second repeat, the sequence number shall be two (2), etc. |
2 | Value Type | [Result Type] | Result messages will contain one of the following values: CE - Coded Entry CWE - Coded with Exceptions CX - Extended Composite ID With Check Digit DT - Date ED - Encapsulated Data FT - Formatted Text (Display) NM - Numeric RP - L Pointer SN - Structured Numeric ST - String Data TM - Time TS - Time Stamp (Date & Time) TX - Text Data (Display) |
3 | Observation Identifier | 3.1 [Test ID] 3.2 [Test Name] | Each sub-field will be separated with “^” Dept, test code will be sent in compatible ClinAxys format. |
4 | Observation Sub-ID | [LOINC Code] | Not Required |
5 | Observation Value | [Result] | Always defined by ClinAxys |
6 | Units | [Units] | Always defined by ClinAxys |
7 | References Range | [Reference Range] | Always defined by ClinAyxs |
8 | Abnormal Flags | [Abnormal Flags] | Abnormal flags are user-defined on ClinAxys for each Study/Test/Gender – these can be included if required or it can be left blank |
9 | Probability | NULL | Not Required |
10 | Nature of Abnormal Test | NULL | Not Required |
11 | Observation Result Status | [Status] | F - Final results; Can only be changed with a corrected result |
12 | Effective Date of Reference Range | NULL | Not Required |
13 | User-Defined Access Checks | NULL | Not Required |
14 | Date/Time of the Observation | [Sample Collection Date/Time]
| Format: yyyyMMddHHmm |
15 | Producer’s Reference | NULL | Not Required |
16 | Responsible Observer | NULL | Not Required |
17 | Observation Method | NULL | Not Required |
18 | Equipment Instance Identifier | NULL | Not Required |
19 | Date/Time of the Analysis | [Result Date/Time] | Format: yyyyMMddHHmm |
20 | Reserved for harmonization with Version 2.6 | NULL | Not supported |
21 | Reserved for harmonization with Version 2.6 | NULL | Not supported |
22 | Reserved for harmonization with Version 2.6 | NULL | Not supported |
23 | Performing Organization Name | NULL | Not Required |
24 | Performing Organization Address | NULL | Not Required |
25 | Performing Organization Medical Director | NULL | Not Required |
NTE Segment
Sequence | Name | Default Value | Clinical Systems Comment |
1 | Set ID – NTE | [NTE Sequence] | For the first repeat of the NTE segment, the sequence number shall be one (1), for the second repeat, the sequence number shall be two (2), etc. |
2 | Source of Comment | NULL | Not Required |
3 | Comment | [Comment] | Provided from Lab Tech |
PDF Requisition
Upon creating an order within ClinSpark a PDF requisition will download to accompany the samples to the laboratory for chain of custody purposes. This requisition is configurable upon request.
Example PDF Requisition
Name | Value | Comment |
Receiving Facility | [Receiving Facility] | Obtained from Lab Interface Config |
Account Number | [Sending Facility] | Obtained from Lab Interface Config |
Name | [Lab Interface Site Name] | Obtained from Lab Interface Config |
Creation Time | Time of order file creation | Format: ddMMMyyyy HH:mm:ss |
Bill Code | Client | Hard Coded |
Address | [Lab Interface Site Address] | Obtained from Lab Interface Config |
Total | Total samples in order | Each unique barcode increments this total |
Physician Name | [Lab Interface Site Investigator Name] | Obtained from Lab Interface Config |
City, State, Zip | [Lab Interface City, State, Zip] | Obtained from Lab Interface Config |
Initials | [Subject FirstMiddleLast Name Initial] | Obtained from Volunteer Profile |
Sex | [Subject Gender] | Male and Female which will be stored as ‘M' and 'F’ |
ID | [Subject Volunteer ID](Subject #; Study Name) | Obtained from Volunteer Profile and study details |
DOB | [Subject Birth Date]
| Format: dd-MMM-yyyy |
Barcode | [Barcode] | Unique Identifier for Each Sample |
Container | [Specimen Container] | *If containers are assigned to a test/panel then present |
Lab Test Code | [Order ID] | Obtained from Test Compendium |
Test Name | [Test Name] | Obtained from Test Compendium |
Collection Date | [Sample Collection Date/Time] | Format: ddMMMyyyy hh:mm:ss |
Quantity / Units | NULL | Not Needed |
AOE | [Ask on Order Entry] | *If questions / answers are included in data collection those questions / answers are then present |
Exported and Printed Copies Are Uncontrolled