Got feedback or spotted a mistake?

Leave a comment at the end of this page or email contact@krishagni.com

Create a New Order

This API is used to create a new order either in draft or distributed mode using specimens sourced from either:

  • Explicit list of specimens specified in the request.
  • Specimens cart
  • Specimens reserved for the DP.

We will cover each of these in below examples:

Distribute specimens specified in the request

URL/openspecimen/rest/ng/distribution-orders
MethodPOST
Body
{
  "name": "Test Order",
  "distributionProtocol": {
    "shortTitle": "Test DP"
  },
  "requester": { /* either one of the following needs to be specified */
    "id": 3,
    "loginName": "johnd",
    "emailAddress": "johnd@openspecimen.org"
  },
  "siteName": "North Hospital Labs",
  "distributor": {
    "id": 4,
    "loginName": "jannied",
    "emailAddress": "jannied@openspecimen.org"
  },
  "trackingUrl": "https://bluedart.com/openspecimen-orders/1/status",
  "comments": "Free text allowing users to add order notes",
  "status": "EXECUTED",
  "executionDate": 1526267841368,
  "orderItems": [
    {
      "specimen": { /* Specify either ID or (cpShortTitle, label) combination */
        "id": 701,
        "cpShortTitle": "Lung Cancer",
        "label": "LC-0001-V1-P1"
      },
      "quantity": 2,
      "cost": 2.5,
      "status": "DISTRIBUTED_AND_CLOSED"
    },

    /* Other specimens in the order */
  ]  
}

Distribute all specimens of the cart

URL/openspecimen/rest/ng/distribution-orders
MethodPOST
Body
{
  "name": "Test Order",
  "distributionProtocol": {
    "shortTitle": "Test DP"
  },
  "requester": { /* either one of the following needs to be specified */
    "id": 3,
    "loginName": "johnd",
    "emailAddress": "johnd@openspecimen.org"
  },
  "siteName": "North Hospital Labs",
  "distributor": {
    "id": 4,
    "loginName": "jannied",
    "emailAddress": "jannied@openspecimen.org"
  },
  "trackingUrl": "https://bluedart.com/openspecimen-orders/2/status",
  "comments": "Free text allowing users to add order notes",
  "status": "EXECUTED",
  "executionDate": 1526267841368,
  "specimenList": { /* ID of the cart containing specimens to be distributed */
    "id": 6
  }
}


Distribute all specimens reserved for the DP

URL/openspecimen/rest/ng/distribution-orders
MethodPOST
Body
{
  "name": "Test Order",
  "distributionProtocol": {
    "shortTitle": "Test DP"
  },
  "requester": { /* either one of the following needs to be specified */
    "id": 3,
    "loginName": "johnd",
    "emailAddress": "johnd@openspecimen.org"
  },
  "siteName": "North Hospital Labs",
  "distributor": {
    "id": 4,
    "loginName": "jannied",
    "emailAddress": "jannied@openspecimen.org"
  },
  "trackingUrl": "https://bluedart.com/openspecimen-orders/3/status",
  "comments": "Free text allowing users to add order notes",
  "status": "EXECUTED",
  "executionDate": 1526267841368,
  "allReservedSpmns": true
}

Response

HTTP Status CodeDescription
200The order is created and is assigned a unique ID. The response body contains the order details along with the unique ID. This unique ID can be used later to update or retrieve the order details.
400Something incorrect with the request. The response body contains the error code and the human readable error message.
500Something wrong with the server. Please contact support along with the request payload and exception stack trace.

Request Parameters

ParameterDescription
nameOrder name. It should be unique in the system. The order name can be later used to retrieve order details or update the order. 
distributionProtocolID or short title of the distribution protocol which identifies the project or study to which the specimens are being distributed.
requesterUser who requested for the specimens to be distributed. Either ID, login name or email address can be used to uniquely identify the requester.
siteNameAn optional attribute identifying the site that will receive the distributed specimens.
distributorUser who is responsible for processing the order. Either ID, login name or email address can be used to uniquely identify the distributor.
trackingUrlAn optional attribute specifying the courier service's tracking URL.
commentsAn optional attribute to record additional order notes.
statusSpecifies whether the order is in pending mode or distributed. Valid values are PENDING and DISTRIBUTED.
specimenListIf specified, all specimens contained in the cart are distributed. The distributed quantity will be same as specimen available quantity. The cost of specimen will be picked from the DP requirements.
allReservedSpmnsIf set to true and specimen cart is not specified then all specimens reserved for the DP are distributed. The distributed quantity will be same as specimen available quantity. The cost of specimen will be picked from the DP requirements
orderItems

When specimenList and allReservedSpmns are not specified, orderItems specifies the list of the specimens to distribute along with their quantities and associated cost.

specimen: identifies the specimen to be distributed. User can specify either specimen ID or (cp, label) combination.

quantity: quantity of specimen to be distributed

cost: cost of distributed specimen

status: specifies whether the specimen should be closed on distribution. valid values are DISTRIBUTED, DISTRIBUTED_AND_CLOSED.

Got feedback or spotted a mistake?

Leave a comment at the end of this page or email contact@krishagni.com