AccuDraw (EMR Integration)
AccuDraw® is a real-time SOAP web service that returns specimen-collection and processing instructions for a list of Labcorp test codes: including container images, collection volumes, ship containers, and special instructions. EHR/EMR systems use it to render on-screen visual cues that help staff collect specimens accurately and precisely within the office.
Source: Labcorp Aperture Integration - AccuDraw Specification, Version 1.0 (06/10/2026).
Overview
This specification provides the technical details for integrating an EMR system with the Labcorp AccuDraw® web service. Each function consists of inputs and outputs: the third-party product provides the inputs, and Labcorp returns the outputs.
Advantages of the AccuDraw® web service include:
- Real-time access to specimen collection and processing details based on the current Labcorp test dictionary
- Adhering to current collection, handling, and shipping guidance may help reduce the need for patient re-draws and repeat visits
- Users can work from within their EHR without having to refer to the company website or DOS book for collection and processing details
Typical use case
- User places a Labcorp order using the EMR's order-entry system.
- EMR sends a real-time web service request for all order codes on the requisition.
- Labcorp returns a real-time response with discrete processing/collection details and a container image URL for each container.
- EMR presents the images and discrete data to the client.
Recommendation: Call AccuDraw only for in-office specimen collection workflows. Exclude PSC orders because specimen collection occurs at a Labcorp facility.
Additional notes:
- EMR should allow for service downtime and provide contingencies to prevent negative impact to the client's workflow
- Container image URLs are provided in the response. The EMR can download the image to display in its system, or reference the URL directly in its UI's HTML
- When multiple containers of the same type are needed, present multiple images for full visual guidance. The image URL only returns one image per container type regardless of quantity
Web service inputs
| Field | Type | Length | Required | Description |
|---|---|---|---|---|
clientCode | String | 50 | Yes | Client code identifying the external EMR vendor. Value = Vendor Mnemonic from Labcorp |
performingLabCode | String | 5 | Yes | Lab code (the first two characters of the CSID) for which collection instructions are needed |
testCodesCommaDelimited | String | 279 | Yes | Comma-delimited list of Labcorp proprietary order codes from the order |
Web service outputs
returnIdealCollectionReturn contains a list of collectionInstruction elements (per container)
and a messages element.
returnIdealCollectionReturn (Table 1)
| Field | Data Type | Length | Required | Description |
|---|---|---|---|---|
collectionInstruction | Complex Type (0 or more elements) | N/A | No | See Table 2 |
messages | Complex Type (1 or more elements) | N/A | Yes | See Table 5 |
collectionInstruction (Table 2)
| Field | Max Length | Data Type | Required | Description |
|---|---|---|---|---|
collectionOrder | 3 | Integer | Yes | Order in which the containers should be collected |
colQty | 3 | Integer | Yes | Number of containers that should be collected |
colSampDesc | 255 | String | No | Verbose description of the type of sample to be collected |
colSampType | 25 | String | No | 3-character collection sample type code (e.g., 001 = SST, 003 = Lavender) |
colSampleImageURL | 500 | String | Yes | Absolute URL to the scaled image (150px H × 120px W) of the collection container |
colSampTypeDesc | 255 | String | No | Short description of the type of sample to be collected |
colSizeDesc | 25 | String | No | Short description of the sample volume size and unit |
colYieldVol | 5 | Double | Yes | Collection yield volume (3 digits before decimal, 2 after) |
colYieldVolUnits | 2 | String | No | Units for the collection yield volume |
specialInstructions | n/a | Complex Type (0 or more elements) | No | Zero or more specialInstructions nodes; see Table 3 |
shipContainers | n/a | Complex Type (0 or more elements) | No | Containers that will be shipped for this collectionInstruction; see Table 4 |
specialInstructions (Table 3)
| Field | Max Length | Data Type | Required | Description |
|---|---|---|---|---|
specialInstruction | 255 | String | No | Instruction text |
specialInstructionCode | 6 | String | No | Unique identifier of the special instruction |
orderCode | 25 | String | No | 6-digit order code the special instruction applies to |
specialInstructionSeq | 3 | String | No | Sequence number to order multiple special instructions |
specialInstructionType | 25 | String | No | C = Collection, P = Processing, H = Header |
shipContainers (Table 4)
| Field | Max Length | Data Type | Required | Description |
|---|---|---|---|---|
collOriginalsNeeded | 3 | Integer | No | — |
originalsNeeded | — | Integer | No | — |
destLabs | 255 | String | No | Routing info (comma-separated) for which lab(s) will process the sample, resolved during Ideal Collection |
PSCVol | 4 | Double | Yes | Total volume for splittable sample types, used to calculate containers needed (2 digits before/after) |
PSCVolUnits | 2 | String | No | Units for the ship PSC volume |
qty | 3 | Integer | Yes | Number of containers of "like shipment type" to prepare (type = sampDesc, sampType, storage attributes) |
sampDesc | 255 | String | No | Verbose description of the type of sample to be shipped |
sampType | 3 | String | Yes | 3-character shipment sample type code (e.g. 001 = SST, 003 = Lavender) |
sampTypeDesc | 255 | String | No | Short description of the type of sample to be shipped |
colSampleImageURL | 500 | String | No | Absolute URL to the scaled image (150px H × 120px W) of the collection container |
storageCode | 255 | String | No | Character code defining the storage medium for the respective ship sample type |
storageCodeDesc | 255 | String | No | Verbose description of the storage medium |
storageShortName | 255 | String | No | Short description of the storage medium |
unopenedNeeded | 3 | Integer | No | Number of original unopened samples required (byproduct of Ideal Collection analysis) |
yieldVol | 5 | Double | Yes | Average volume the sample type yields, used to calculate containers needed (3 digits before, 2 after) |
yieldVolUnits | 2 | String | No | Units for the transport yield volume |
message (Table 5)
| Field | Max Length | Data Type | Required | Description |
|---|---|---|---|---|
code | 10 | String | Yes | Message code |
text | 254 | String | Yes | Message text |
isError | 25 | Boolean | Yes | True/False |
Error/message codes
| Code | Meaning |
|---|---|
MSG001 | Success |
WARN001 | Test codes cannot be found (all submitted test codes are invalid or blank) |
WARN002 | No specimen requirement found for test code(s) (primary requirements for one or more test codes not located) |
ERR001 | General error |
Sample request
Code
Sample response
Code
cURL example
Requests are authorized with an OAuth 2.0 Bearer access token issued by Labcorp.
Code
WSDL and endpoint URLs
The WSDL for the Labcorp Beacon EMR can be retrieved in any web browser from the WSDL URL below.
| Environment | WSDL URL | Service Endpoint URL |
|---|---|---|
| Certification | https://emr.services.certification.aperture.labcorp.com/wsdl | https://emr.services.certification.aperture.labcorp.com |
| Production | https://emr.services.aperture.labcorp.com/wsdl | https://emr.services.aperture.labcorp.com |
The source spec notes WSDL-retrieval instructions are still being finalized. Confirm credentials with your Labcorp project manager.
Retrieve the WSDL with your access token:
Code
Audit logging
Each service method invoked has appropriate audit logging detailing the service method called along with the client code and other key attributes. Log enough request/response context to debug issues, but do not log credentials or access tokens.
Performing lab codes (subject to change)
Your application should let the lab code be configured per account or client in case a lab is closed.
| Code | Lab |
|---|---|
DV | Denver |
MB | Birmingham |
RN | Raritan |
TA | Tampa/Hollywood |
SV | Salt Lake |
DA | Dallas |
AV | VA/Herndon |
BN | Burlington |
CB | Chicago |
CB | Columbus OH |
BN | Charleston |
MB | Atlanta |
CB | Detroit |
HD | Houston |
KC | Kansas City |
CB | Louisville |
IZ | Oklahoma City |
PD | Phoenix |
NV | Reno |
HD | San Antonio |
SO | San Diego/San Leandro |
SE | Seattle |
RN | New England |
RN | Scranton |
MB | Knoxville |
PO | QA |
KC | Iowa |
_D | DSI |
GNOPS | GNOPS |
BRMTL | Prescott |
Downloads
⬇︎ AccuDraw Specification (PDF)
The full web service specification this page is based on
⬇︎ AccuDraw Design Guide (XLSX)
Which response fields to display in the UI, with a sample specimen collection guide design, an example header message, and the collection volume fields

