Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: SI: Did review changes

POST openspecimen/rest/ng/specimens

This API is used to create specimen for particular visit under participant. Using this API the specimen is also collected while creation.

Parameter Details:

The API accepts the specimen details in JSON format with following parameters:

ParameterDetails
labelLabel given to specimen
specimenClassClass of the specimen.
typeSpecimen type of specimen. The specimen type should belong to specimen class.
pathologyPathology status of specimen.
anatomicSiteAnatomic site of the specimen.
lateralityLaterality of the specimen.
initialQtyInitial quantity of the specimen.
availableQtyAvailable quantity of the specimen.
lineageLineage of the specimen. For new specimen the value would be "New".
visitIdVisit ID of the participant under which the specimen will be collected.
statusStatus of the specimen. For collecting specimen the value would be "Collected".
storageLocation [optional]
Storage location to store the created specimen.
The location detail is also a JSON object, which contains :


nameName of Container
positionX [optional]X Position in container
positionY [optional]Y Position in container


  • As Position is optional, If not given then specimen will be stored virtually.
  • If only container name is given then first available position will be allocated in specified container.If position is not available then throws error message.
concentration [optional]Concentration of specimen.
biohazards [optional]Biohazards of that specimen.
comments [optional]Comments for

...

List of mandatory fields:

  1. Label
  2. TissueSite
  3. TissueSide
  4. PathologicalStatus
  5. Lineage
  6. InitialQuantity
  7. collectionStatus
  8. SpecimenClass
  9. SpecimenType
  10. ActivityStatus
  11. Barcode
  12. Comment
  13. CreatedOn
  14. scgId
URLcatissuecore
that specimen.
collectionEvent

This is the JSON object containing the details of collection event.

It has below parameters:

  • user : The user who is creating the specimen. This is JSON object containing user details.
  • time : The timestamp on which the specimen is collected.
  • container [optional] : This is the container type in which the specimen will be collected.
  • procedure [optional] : The procedure of collecting the specimen.
receivedEvent

This is the JSON object containing the details of received event.

It has below parameters :

  • user : The user who received the specimen. This is JSON object containing user details.
  • time : Timestamp when specimen is received.
  • receivedQuality : Quality of specimen when it is received.
extensionDetail [optional]

This is the JSON object containing the details of custom-fields.

It has the below parameters:

  • useUdn: This allows the usage of attributes UDN name.
  • attrsMap: This is a map of the attribute name-value.


Result :

Response of this request contains the details of specimen.

API Example:

URLopenspecimen/rest/ng/specimens
Request typeapplication/json
MethodPOST
json

{
  "

activityStatus

lineage":

"Active"

"New",
  "visitId":1,
  "

barcode

status":"

245095132

Collected",
  "

biohazardDetails

availableQty":

[  ],

  "collectionStatus" : "Collected",

  "comment" : "creating an adhoc specimen.",

  "createdOn" : "May 1, 2014 11:21:45 AM",

  "externalIdentifierDetails" : [  ],

  "initialQuantity" : 2.0,

  "label" : "sample_123

"10",
  "storageLocation":{},
  "collectionEvent":{
    "user":{
      "id":1,
      "firstName":"Admin",
      "lastName":"Admin",
      "loginName":"admin@admin.com",
      "domain":"openspecimen",
      "emailAddress":"admin@admin.com",
      "admin":true,"cpCount":0,
      "creationDate":null
    },
    "time":"2015-12-04T04:14:36.333Z",
    "container":"Not Specified",
    "procedure":"Not Specified"
  },
  "receivedEvent":{
    "user":{
      "id":1,
      "firstName":"Admin",
      "lastName":"Admin",
      "loginName":"admin@admin.com",
      "domain":"openspecimen",
      "emailAddress":"admin@admin.com",
      "admin":true,
      "cpCount":0,
      "creationDate":null
    },
    "time":"2015-12-04T04:14:36.333Z",
    "receivedQuality":"Acceptable"
  },
  "initialQty":"10",
  "concentration":"",
  "label":"unplanned specimen 1",
  "specimenClass":"Fluid",
  "type":"Bone Marrow Plasma",
  "pathology":"Non-Malignant, Diseased",
  "anatomicSite":"External ear",
  "laterality":"Right",

  "extensionDetail": {
    "useUdn": true,
    "attrsMap": {
      "usb_ext_lab_number": "Ext_Lab_UK_12342",
      "visited": ["India", "USA"]
    }
  }
}

Response

{

  "id": 9,

  "cpId": 1,

  "cprId": 1,

  "eventId": null,

  "visitId": 1,

  "visitName": "first visit",

  "cpShortTitle": "blood",

  "reqId": null,

  "sortOrder": null,

  "label": "unplanned specimen 1",

  "barcode": null,

  "type": "Bone Marrow Plasma",

  "specimenClass": "Fluid",

  "lineage": "New",

 

"pathologicalStatus

"anatomicSite": "External ear",

  "laterality": "Right",

  "status": "

Metastatic"

Collected",

  "reqLabel": null,

  "

scgId

pathology":

1

"Non-Malignant, Diseased",

  "

specimenClass

initialQty": 10,

  "

Fluid

availableQty": 10,

  "

specimenType

available": true,

  "

Feces

concentration": null,

  "

tissueSide

parentId": null,

  "

Left

parentLabel": null,

 

"tissueSite" : "Nasal cavity"

}

Response

 

{

"storageLocation": {

    "id": -1,

    "name": null,

    "positionX": null,

    "positionY": null

  },

  "storageType": null,

  "collectionContainer": null,

  "activityStatus": "Active",

  "createdOn": 1449202440000,

  "code": null,

 

"barcode" : ""

"distributed": null,

  "collectionEvent": null,

  "receivedEvent": null,

  "labelFmt": null,

  "

biohazardDetails

biohazards": [],

  "comments": null,

  "closeAfterChildrenCreation": null,

  "children": [],

  "

collectionStatus

pooledSpecimenId":

"Collected"

null,

  "pooledSpecimenLabel": null,

  "specimensPool": null,

  "

comment

closeParent":

"creating an adhoc specimen.",

null,

  "poolSpecimen": null,

  "extensionDetail": {
  "

createdOn

id":

"May 1, 2014 11:21:45 AM

1302,
  "objectId": 850,
  "formId": 201,
  "formCaption": "External Fields",
  "

externalIdentifierDetails

attrs": [

  ],

  "id" : 2,

  "initialQuantity" : 2.0,

  "label" : "",

  "lineage" : "New",

  "pathologicalStatus" : "Metastatic",

  "scgId" : 1,

  "specimenClass" : "Fluid",

  "specimenType" : "Feces",

  "tissueSide" : "Left",

  "tissueSite" : "Nasal cavity"

}

 

{
    "name": "ST3",
    "udn": "usb_ext_lab_number",
    "caption": "External Laboratory Number",
    "value": "Ext_Lab_UK_12342",
    "type": "stringTextField",
    "displayValue": "Ext_Lab_UK_12342"
    },
    {
    "name": "MLB4",
    "udn": "visited",
    "caption": "Visited",
    "value": ["India", "USA"],
    "type": "multiSelectListbox",
    "displayValue": "India, USA"

    }],
    "useUdn": false
  }

}


Error Cases :

code
Applies to
Status Message
200All resourcesSpecimen has been created successfully
400All requestsInvalid parameters, e.g  duplicate label,
duplicate barcode,
invalid class Name etc
401All requestsAuthorization failed, User doesn’t have Authority to create specimen for the given
collection protocol
visit.
500All requestsInternal server error, Encountered server error while performing operations