AccuDraw (EMR Integration)

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

  1. User places a Labcorp order using the EMR's order-entry system.
  2. EMR sends a real-time web service request for all order codes on the requisition.
  3. Labcorp returns a real-time response with discrete processing/collection details and a container image URL for each container.
  4. 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

FieldTypeLengthRequiredDescription
clientCodeString50YesClient code identifying the external EMR vendor. Value = Vendor Mnemonic from Labcorp
performingLabCodeString5YesLab code (the first two characters of the CSID) for which collection instructions are needed
testCodesCommaDelimitedString279YesComma-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)

FieldData TypeLengthRequiredDescription
collectionInstructionComplex Type (0 or more elements)N/ANoSee Table 2
messagesComplex Type (1 or more elements)N/AYesSee Table 5

collectionInstruction (Table 2)

FieldMax LengthData TypeRequiredDescription
collectionOrder3IntegerYesOrder in which the containers should be collected
colQty3IntegerYesNumber of containers that should be collected
colSampDesc255StringNoVerbose description of the type of sample to be collected
colSampType25StringNo3-character collection sample type code (e.g., 001 = SST, 003 = Lavender)
colSampleImageURL500StringYesAbsolute URL to the scaled image (150px H × 120px W) of the collection container
colSampTypeDesc255StringNoShort description of the type of sample to be collected
colSizeDesc25StringNoShort description of the sample volume size and unit
colYieldVol5DoubleYesCollection yield volume (3 digits before decimal, 2 after)
colYieldVolUnits2StringNoUnits for the collection yield volume
specialInstructionsn/aComplex Type (0 or more elements)NoZero or more specialInstructions nodes; see Table 3
shipContainersn/aComplex Type (0 or more elements)NoContainers that will be shipped for this collectionInstruction; see Table 4

specialInstructions (Table 3)

FieldMax LengthData TypeRequiredDescription
specialInstruction255StringNoInstruction text
specialInstructionCode6StringNoUnique identifier of the special instruction
orderCode25StringNo6-digit order code the special instruction applies to
specialInstructionSeq3StringNoSequence number to order multiple special instructions
specialInstructionType25StringNoC = Collection, P = Processing, H = Header

shipContainers (Table 4)

FieldMax LengthData TypeRequiredDescription
collOriginalsNeeded3IntegerNo—
originalsNeeded—IntegerNo—
destLabs255StringNoRouting info (comma-separated) for which lab(s) will process the sample, resolved during Ideal Collection
PSCVol4DoubleYesTotal volume for splittable sample types, used to calculate containers needed (2 digits before/after)
PSCVolUnits2StringNoUnits for the ship PSC volume
qty3IntegerYesNumber of containers of "like shipment type" to prepare (type = sampDesc, sampType, storage attributes)
sampDesc255StringNoVerbose description of the type of sample to be shipped
sampType3StringYes3-character shipment sample type code (e.g. 001 = SST, 003 = Lavender)
sampTypeDesc255StringNoShort description of the type of sample to be shipped
colSampleImageURL500StringNoAbsolute URL to the scaled image (150px H × 120px W) of the collection container
storageCode255StringNoCharacter code defining the storage medium for the respective ship sample type
storageCodeDesc255StringNoVerbose description of the storage medium
storageShortName255StringNoShort description of the storage medium
unopenedNeeded3IntegerNoNumber of original unopened samples required (byproduct of Ideal Collection analysis)
yieldVol5DoubleYesAverage volume the sample type yields, used to calculate containers needed (3 digits before, 2 after)
yieldVolUnits2StringNoUnits for the transport yield volume

message (Table 5)

FieldMax LengthData TypeRequiredDescription
code10StringYesMessage code
text254StringYesMessage text
isError25BooleanYesTrue/False

Error/message codes

CodeMeaning
MSG001Success
WARN001Test codes cannot be found (all submitted test codes are invalid or blank)
WARN002No specimen requirement found for test code(s) (primary requirements for one or more test codes not located)
ERR001General error

Sample request

XMLCode
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://www.labcorp.com/ncp/emr/schema/"> <soapenv:Body> <sch:returnIdealCollectionRequest> <sch:clientCode>Vendor Mnemonic</sch:clientCode> <sch:performingLabCode>BN</sch:performingLabCode> <sch:testCodesCommaDelimited>001818,004259</sch:testCodesCommaDelimited> </sch:returnIdealCollectionRequest> </soapenv:Body> </soapenv:Envelope>

Sample response

XMLCode
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"> <env:Header/> <env:Body> <ns2:returnIdealCollectionResponse xmlns:ns2="http://www.labcorp.com/ncp/emr/schema/" xmlns:ns3="http://www.labcorp.com/ncp/emr/dto/"> <ns2:returnIdealCollectionReturn> <ns2:messages> <ns2:code>MSG001</ns2:code> <ns2:text>Success.</ns2:text> </ns2:messages> <ns2:collectionInstruction> <ns2:shipContainers> <ns2:collOriginalsNeeded>0</ns2:collOriginalsNeeded> <ns2:destLabs>BN</ns2:destLabs> <ns2:originalsNeeded>0</ns2:originalsNeeded> <ns2:PSCVol>0.75</ns2:PSCVol> <ns2:PSCVolUnits>mL</ns2:PSCVolUnits> <ns2:qty>1</ns2:qty> <ns2:sampDesc>Serum Gel Tube</ns2:sampDesc> <ns2:sampType>001</ns2:sampType> <ns2:sampTypeDesc>SR GEL</ns2:sampTypeDesc> <ns2:colSampleImageURL>https://www.labcorpbeacon.com/accudrawImages/containers/small/001.png</ns2:colSampleImageURL> <ns2:storageCode>1</ns2:storageCode> <ns2:storageCodeDesc>Room Temperature</ns2:storageCodeDesc> <ns2:storageShortName>RT</ns2:storageShortName> <ns2:unopenedNeeded>0</ns2:unopenedNeeded> <ns2:yieldVol>2.6</ns2:yieldVol> <ns2:yieldVolUnits>mL</ns2:yieldVolUnits> </ns2:shipContainers> <ns2:collectionOrder>5</ns2:collectionOrder> <ns2:colQty>1</ns2:colQty> <ns2:colSampDesc>Serum Gel Tube</ns2:colSampDesc> <ns2:colSampType>001</ns2:colSampType> <ns2:colSampTypeDesc>SR GEL</ns2:colSampTypeDesc> <ns2:colSizeDesc>8.5 mL</ns2:colSizeDesc> <ns2:colYieldVol>2.6</ns2:colYieldVol> <ns2:colYieldVolUnits>mL</ns2:colYieldVolUnits> <ns2:colSampleImageURL>https://www.labcorpbeacon.com/accudrawImages/containers/small/001.png</ns2:colSampleImageURL> </ns2:collectionInstruction> <ns2:collectionInstruction> <ns2:shipContainers> <ns2:collOriginalsNeeded>1</ns2:collOriginalsNeeded> <ns2:destLabs>BN</ns2:destLabs> <ns2:originalsNeeded>1</ns2:originalsNeeded> <ns2:PSCVol>0.0</ns2:PSCVol> <ns2:PSCVolUnits>mL</ns2:PSCVolUnits> <ns2:qty>1</ns2:qty> <ns2:sampDesc>Gray Top (Sodium Fluoride)</ns2:sampDesc> <ns2:sampType>006</ns2:sampType> <ns2:sampTypeDesc>GRAY</ns2:sampTypeDesc> <ns2:colSampleImageURL>https://www.labcorpbeacon.com/accudrawImages/containers/small/006.png</ns2:colSampleImageURL> <ns2:storageCode>1</ns2:storageCode> <ns2:storageCodeDesc>Room Temperature</ns2:storageCodeDesc> <ns2:storageShortName>RT</ns2:storageShortName> <ns2:unopenedNeeded>0</ns2:unopenedNeeded> <ns2:yieldVol>1.0</ns2:yieldVol> <ns2:yieldVolUnits>mL</ns2:yieldVolUnits> </ns2:shipContainers> <ns2:collectionOrder>10</ns2:collectionOrder> <ns2:colQty>1</ns2:colQty> <ns2:colSampDesc>Gray Top (Sodium Fluoride) Fasting</ns2:colSampDesc> <ns2:colSampType>700</ns2:colSampType> <ns2:colSampTypeDesc>GRAY Fasting</ns2:colSampTypeDesc> <ns2:colSizeDesc>4.0 mL</ns2:colSizeDesc> <ns2:colYieldVol>1.0</ns2:colYieldVol> <ns2:colYieldVolUnits>mL</ns2:colYieldVolUnits> <ns2:colSampleImageURL>https://www.labcorpbeacon.com/accudrawImages/containers/small/700.png</ns2:colSampleImageURL> </ns2:collectionInstruction> </ns2:returnIdealCollectionReturn> </ns2:returnIdealCollectionResponse> </env:Body> </env:Envelope>

cURL example

Requests are authorized with an OAuth 2.0 Bearer access token issued by Labcorp.

TerminalCode
curl --location 'https://emr.services.certification.aperture.labcorp.com/' \ --header 'Content-Type: text/xml;charset=UTF-8' \ --header 'Authorization: Bearer <access_token>' \ --data '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://www.labcorp.com/ncp/emr/schema/"> <soapenv:Header/> <soapenv:Body> <sch:returnIdealCollectionRequest> <sch:clientCode>Vendor Mnemonic</sch:clientCode> <sch:performingLabCode>BN</sch:performingLabCode> <sch:testCodesCommaDelimited>001032,005009,008847, 999</sch:testCodesCommaDelimited> </sch:returnIdealCollectionRequest> </soapenv:Body> </soapenv:Envelope>'

WSDL and endpoint URLs

The WSDL for the Labcorp Beacon EMR can be retrieved in any web browser from the WSDL URL below.

EnvironmentWSDL URLService Endpoint URL
Certificationhttps://emr.services.certification.aperture.labcorp.com/wsdlhttps://emr.services.certification.aperture.labcorp.com
Productionhttps://emr.services.aperture.labcorp.com/wsdlhttps://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:

TerminalCode
curl --location 'https://emr.services.certification.aperture.labcorp.com/wsdl' \ --header 'Authorization: Bearer <access_token>'

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.

CodeLab
DVDenver
MBBirmingham
RNRaritan
TATampa/Hollywood
SVSalt Lake
DADallas
AVVA/Herndon
BNBurlington
CBChicago
CBColumbus OH
BNCharleston
MBAtlanta
CBDetroit
HDHouston
KCKansas City
CBLouisville
IZOklahoma City
PDPhoenix
NVReno
HDSan Antonio
SOSan Diego/San Leandro
SESeattle
RNNew England
RNScranton
MBKnoxville
POQA
KCIowa
_DDSI
GNOPSGNOPS
BRMTLPrescott

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

Last modified on