Biospecimens

Biospecimens are collected from Subjects.

List Biospecimens

  • GET /biospeciments/ yields a list of the different biospecimens available.

The following curl request can be used through the command line to list the biospecimens:

curl -X 'GET' \
 'https://vbr-api.a2cps.cloud/biospecimens/?offset=0&limit=50' \
 -H 'accept: application/json' \
 -H 'Authorization: Bearer Access Token'

Note

The offset field can be used to change the number of records that show up.

A successful response would look like:

[
   {
      "biospecimen_id": "7yAnxZN36BJJb",
      "tracking_id": "K_RU_P_0021",
      "creation_time": "2021-04-30T00:00:00",
      "biospecimen_type": "serum or plasma",
      "collection_id": "PdV482PnBozxe",
      "collection_tracking_id": "K_RU_KIT_0021",
      "container_id": "8PqD2Xb7AgzA2",
      "container_tracking_id": "K_RU_BOX_ALI_0002",
      "project": "A2CPS Multisite Clinical Center 1",
      "status": "created",
      "unit": "plasma_aliquot_tube",
      "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
      "subject_id": "Pxk1yXJPV3ADX",
      "bscp_time_blood_draw": "2021-04-30T11:53:00",
      "bscp_time_centrifuge": "2021-04-30T12:13:00",
      "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
      "bscp_deg_of_hemolysis": 1,
      "bscp_phleb_by_init": "KB",
      "bscp_procby_initials": "MM",
      "bscp_protocol_dev": true,
      "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
      "location": "MCC1: Rush University Medical Center"
   }
]

In the above JSON response:

  • Each biospecimen is identified by it’s biospecimen_id.

  • Containers hold biospecimens and each container is identified by it’s container_id.

  • Location refers to the physical address of a container.

Filter results

We can also filter the results by modifying the parameters passed to the request.

For example, we can pick the collection_tracking_id value from the above JSON response (e.g: “collection_tracking_id”: “K_RU_KIT_0021” ) and use this to filter our results specific to the collection_tracking_id of interest.

The curl command for the above example would be:

curl -X 'GET' \
'https://vbr-api.a2cps.cloud/biospecimens/?collection_tracking_id=K_RU_KIT_0021&offset=0&limit=50' \
-H 'accept: application/json' \
-H 'Authorization: Bearer Token

A successful response would be a list of all the biospecimens that have the collection_tracking_id we queried for.

[
   {
      "biospecimen_id": "7yAnxZN36BJJb",
      "tracking_id": "K_RU_P_0021",
      "creation_time": "2021-04-30T00:00:00",
      "biospecimen_type": "serum or plasma",
      "collection_id": "PdV482PnBozxe",
      "collection_tracking_id": "K_RU_KIT_0021",
      "container_id": "8PqD2Xb7AgzA2",
      "container_tracking_id": "K_RU_BOX_ALI_0002",
      "project": "A2CPS Multisite Clinical Center 1",
      "status": "created",
      "unit": "plasma_aliquot_tube",
      "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
      "subject_id": "Pxk1yXJPV3ADX",
      "bscp_time_blood_draw": "2021-04-30T11:53:00",
      "bscp_time_centrifuge": "2021-04-30T12:13:00",
      "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
      "bscp_deg_of_hemolysis": 1,
      "bscp_phleb_by_init": "KB",
      "bscp_procby_initials": "MM",
      "bscp_protocol_dev": true,
      "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
      "location": "MCC1: Rush University Medical Center"
   },
   {
      "biospecimen_id": "1D457580MWkq9",
      "tracking_id": "K_RU_P_0021",
      "creation_time": "2021-04-30T00:00:00",
      "biospecimen_type": "serum or plasma",
      "collection_id": "PdV482PnBozxe",
      "collection_tracking_id": "K_RU_KIT_0021",
      "container_id": "8PqD2Xb7AgzA2",
      "container_tracking_id": "K_RU_BOX_ALI_0002",
      "project": "A2CPS Multisite Clinical Center 1",
      "status": "created",
      "unit": "plasma_aliquot_tube",
      "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
      "subject_id": "Pxk1yXJPV3ADX",
      "bscp_time_blood_draw": "2021-04-30T11:53:00",
      "bscp_time_centrifuge": "2021-04-30T12:13:00",
      "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
      "bscp_deg_of_hemolysis": 1,
      "bscp_phleb_by_init": "KB",
      "bscp_procby_initials": "MM",
      "bscp_protocol_dev": true,
      "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
      "location": "MCC1: Rush University Medical Center"
   }
]

Similarly, another example would be using the container_tracking_id. Picking a container_tracking_id K_RU_BOX_ALI_0002, our curl request would be:

curl -X 'GET' \
   'https://vbr-api.a2cps.cloud/biospecimens/?container_tracking_id=K_RU_BOX_ALI_0002&offset=0&limit=50' \
   -H 'accept: application/json' \
   -H 'Authorization: Bearer

A successful response would look like:

[
   {
      "biospecimen_id": "P4J7dzV7JE9Jg",
      "tracking_id": "K_RU_P_0017",
      "creation_time": "2021-04-22T00:00:00",
      "biospecimen_type": "serum or plasma",
      "collection_id": "eewy6N2b8bmEA",
      "collection_tracking_id": "K_RU_KIT_0017",
      "container_id": "8PqD2Xb7AgzA2",
      "container_tracking_id": "K_RU_BOX_ALI_0002",
      "project": "A2CPS Multisite Clinical Center 1",
      "status": "created",
      "unit": "plasma_aliquot_tube",
      "subject_guid": "82509ba8-bed1-6621-730a-f5cb91e2ff78",
      "subject_id": "8w9DbopPgv2Bn",
      "bscp_time_blood_draw": "2021-04-22T15:59:00",
      "bscp_time_centrifuge": "2021-04-22T16:21:00",
      "bscp_aliquot_freezer_time": "2021-04-22T16:28:00",
      "bscp_deg_of_hemolysis": 0.5,
      "bscp_phleb_by_init": "SM",
      "bscp_procby_initials": "SN",
      "bscp_protocol_dev": false,
      "bscp_comments": "",
      "location": "MCC1: Rush University Medical Center"
   },
   {
      "biospecimen_id": "8ezxAr2y2dxw6",
      "tracking_id": "K_RU_P_0018",
      "creation_time": "2021-04-23T00:00:00",
      "biospecimen_type": "serum or plasma",
      "collection_id": "e4eLorzMJw6dj",
      "collection_tracking_id": "K_RU_KIT_0018",
      "container_id": "8PqD2Xb7AgzA2",
      "container_tracking_id": "K_RU_BOX_ALI_0002",
      "project": "A2CPS Multisite Clinical Center 1",
      "status": "created",
      "unit": "plasma_aliquot_tube",
      "subject_guid": "0b7a0079-9451-431b-972e-d8a7539b97b0",
      "subject_id": "7zeWMyN6Wqdpd",
      "bscp_time_blood_draw": "2021-04-23T09:10:00",
      "bscp_time_centrifuge": "2021-04-23T09:23:00",
      "bscp_aliquot_freezer_time": "2021-04-23T09:29:00",
      "bscp_deg_of_hemolysis": 1,
      "bscp_phleb_by_init": "K",
      "bscp_procby_initials": "MM",
      "bscp_protocol_dev": true,
      "bscp_comments": "Will obtain blood day of surgery. Blood taken 4/23.",
      "location": "MCC1: Rush University Medical Center"
   }
]

Get Biospecimen By Id

  • GET /biospecimen/{biospecimen_id} endpoint can be used to retrieve a specific biospecimen using the biospecimen_id field.

We can get a biospecimen_id of interest from the above responses and substitute it value in our request. The curl request for the above would be:

curl -X 'GET' \
   'https://vbr-api.a2cps.cloud/biospecimens/eev1JWn5yE8vm' \
   -H 'accept: application/json' \
   -H 'Authorization: Bearer

A successful response would hold the entry for the specific biospecimen requested.

 {
    "biospecimen_id": "eev1JWn5yE8vm",
    "tracking_id": "K_RU_P_0017",
    "creation_time": "2021-04-22T00:00:00",
    "biospecimen_type": "serum or plasma",
    "collection_id": "eewy6N2b8bmEA",
    "collection_tracking_id": "K_RU_KIT_0017",
    "container_id": "8PqD2Xb7AgzA2",
    "container_tracking_id": "K_RU_BOX_ALI_0002",
    "project": "A2CPS Multisite Clinical Center 1",
    "status": "created",
    "unit": "plasma_aliquot_tube",
    "subject_guid": "82509ba8-bed1-6621-730a-f5cb91e2ff78",
    "subject_id": "8w9DbopPgv2Bn",
    "bscp_time_blood_draw": "2021-04-22T15:59:00",
    "bscp_time_centrifuge": "2021-04-22T16:21:00",
    "bscp_aliquot_freezer_time": "2021-04-22T16:28:00",
    "bscp_deg_of_hemolysis": 0.5,
    "bscp_phleb_by_init": "SM",
    "bscp_procby_initials": "SN",
    "bscp_protocol_dev": false,
    "bscp_comments": "",
    "location": "MCC1: Rush University Medical Center"
 }

Get Biospecimen By Tracking Id

  • The GET /biospecimens/tracking/{tracking_id} endpoint can be used to get a Biospecimen by Tracking ID.

Let us pick a tracking_id of interest, for example “tracking_id”: “K_RU_P_0017” and substitute it’s value in our request below.

Our curl request would be:

curl -X 'GET' \
'https://vbr-api.a2cps.cloud/biospecimens/tracking/%22K_RU_P_0017%22' \
-H 'accept: application/json' \
-H 'Authorization: Bearer Token

A successful response would look like:

{
   "biospecimen_id": "P4Jqdgx6EDE4W",
   "tracking_id": "K_RU_P_0017",
   "creation_time": "2021-04-22T00:00:00",
   "biospecimen_type": "serum or plasma",
   "collection_id": "eewy6N2b8bmEA",
   "collection_tracking_id": "K_RU_KIT_0017",
   "container_id": "8PqD2Xb7AgzA2",
   "container_tracking_id": "K_RU_BOX_ALI_0002",
   "project": "A2CPS Multisite Clinical Center 1",
   "status": "created",
   "unit": "plasma_aliquot_tube",
   "subject_guid": "82509ba8-bed1-6621-730a-f5cb91e2ff78",
   "subject_id": "8w9DbopPgv2Bn",
   "bscp_time_blood_draw": "2021-04-22T15:59:00",
   "bscp_time_centrifuge": "2021-04-22T16:21:00",
   "bscp_aliquot_freezer_time": "2021-04-22T16:28:00",
   "bscp_deg_of_hemolysis": 0.5,
   "bscp_phleb_by_init": "SM",
   "bscp_procby_initials": "SN",
   "bscp_protocol_dev": false,
   "bscp_comments": "",
   "location": "MCC1: Rush University Medical Center"
}

Update Biospecimen Container

  • We can use PATCH /biospecimens/{biospecimen_id}/container endpoint to update the container of the biospecimen.

The curl request would be:

curl -X 'PATCH' \
   'https://vbr-api.a2cps.cloud/biospecimens/7yAnxZN36BJJb/container' \
   -H 'accept: application/json' \
   -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI0ZTcyNTM2NC1hNzUzLTRkMjEtYmI2Ni1kYTgxZDEzZjRmNzIiLCJpc3MiOiJodHRwczovL2EyY3BzZGV2LnRhcGlzLmlvL3YzL3Rva2VucyIsInN1YiI6InNnb3BhbEBhMmNwc2RldiIsInRhcGlzL3RlbmFudF9pZCI6ImEyY3BzZGV2IiwidGFwaXMvdG9rZW5fdHlwZSI6ImFjY2VzcyIsInRhcGlzL2RlbGVnYXRpb24iOmZhbHNlLCJ0YXBpcy9kZWxlZ2F0aW9uX3N1YiI6bnVsbCwidGFwaXMvdXNlcm5hbWUiOiJzZ29wYWwiLCJ0YXBpcy9hY2NvdW50X3R5cGUiOiJ1c2VyIiwiZXhwIjoxNjQzNjcwODI3LCJ0YXBpcy9jbGllbnRfaWQiOm51bGwsInRhcGlzL2dyYW50X3R5cGUiOiJwYXNzd29yZCJ9.DwyzMvLGm1hPvxFmMRpPGJ9DhyZqQTlp_newlgRCFvKsywDVnGofOD3s62OBxRJvuaxdlfSKoWTnPzGTfuFfItKCGzOWl9USkvKnroRq8m47z5gX1m3DkqOE_zrzyQn-u4nqJvFGWOLOPB94W5mgf4jFncU2LXmNdjy5eJvmqSXe3FqKYHxsPRweZc12ykgUYeaJSmd45Pce8bG2-KTLEcvX3ECh6sjtJ7w5rZY5ASn0BPBayYMUtUsJrV5dKwmAmRWbxjDvBf9sHysxpUj2FwkbIsMTwSyDUN9Euii0zbKfYcUg3fBJUYF86ll3CNpixzxe23T6Tr9jbf2HE5PDTQ' \
   -H 'Content-Type: application/json' \
   -d '{
      "container_id": "8PqD2Xb7AgzA2",
      "comment": "Updating biospecimen container"
   }'

A successful response would look like:

{
   "biospecimen_id": "7yAnxZN36BJJb",
   "tracking_id": "K_RU_P_0017",
   "creation_time": "2021-04-30T00:00:00",
   "biospecimen_type": "serum or plasma",
   "collection_id": "PdV482PnBozxe",
   "collection_tracking_id": "K_RU_KIT_0021",
   "container_id": "8PqD2Xb7AgzA2",
   "container_tracking_id": "K_RU_BOX_ALI_0002",
   "project": "A2CPS Multisite Clinical Center 1",
   "status": "measurement.inflight",
   "unit": "plasma_aliquot_tube",
   "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
   "subject_id": "Pxk1yXJPV3ADX",
   "bscp_time_blood_draw": "2021-04-30T11:53:00",
   "bscp_time_centrifuge": "2021-04-30T12:13:00",
   "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
   "bscp_deg_of_hemolysis": 1,
   "bscp_phleb_by_init": "KB",
   "bscp_procby_initials": "MM",
   "bscp_protocol_dev": true,
   "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
   "location": "MCC1: Rush University Medical Center"
}

Update Biospecimen Status

We can update the status of a biospecimen using the PATCH /biospecimens/{biospecimen_id}/status endpoint.

The permitted values for status are: “inflight”, “present”, “spoiled”, “depleted”, “lost”, “destroyed”.

The curl request would be:

curl -X 'PATCH' \
   'https://vbr-api.a2cps.cloud/biospecimens/7yAnxZN36BJJb/status' \
   -H 'accept: application/json' \
   -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI0ZTcyNTM2NC1hNzUzLTRkMjEtYmI2Ni1kYTgxZDEzZjRmNzIiLCJpc3MiOiJodHRwczovL2EyY3BzZGV2LnRhcGlzLmlvL3YzL3Rva2VucyIsInN1YiI6InNnb3BhbEBhMmNwc2RldiIsInRhcGlzL3RlbmFudF9pZCI6ImEyY3BzZGV2IiwidGFwaXMvdG9rZW5fdHlwZSI6ImFjY2VzcyIsInRhcGlzL2RlbGVnYXRpb24iOmZhbHNlLCJ0YXBpcy9kZWxlZ2F0aW9uX3N1YiI6bnVsbCwidGFwaXMvdXNlcm5hbWUiOiJzZ29wYWwiLCJ0YXBpcy9hY2NvdW50X3R5cGUiOiJ1c2VyIiwiZXhwIjoxNjQzNjcwODI3LCJ0YXBpcy9jbGllbnRfaWQiOm51bGwsInRhcGlzL2dyYW50X3R5cGUiOiJwYXNzd29yZCJ9.DwyzMvLGm1hPvxFmMRpPGJ9DhyZqQTlp_newlgRCFvKsywDVnGofOD3s62OBxRJvuaxdlfSKoWTnPzGTfuFfItKCGzOWl9USkvKnroRq8m47z5gX1m3DkqOE_zrzyQn-u4nqJvFGWOLOPB94W5mgf4jFncU2LXmNdjy5eJvmqSXe3FqKYHxsPRweZc12ykgUYeaJSmd45Pce8bG2-KTLEcvX3ECh6sjtJ7w5rZY5ASn0BPBayYMUtUsJrV5dKwmAmRWbxjDvBf9sHysxpUj2FwkbIsMTwSyDUN9Euii0zbKfYcUg3fBJUYF86ll3CNpixzxe23T6Tr9jbf2HE5PDTQ' \
   -H 'Content-Type: application/json' \
   -d '{
      "status": "inflight",
      "comment": "string"
   }'

A successful response would look like:

{
   "biospecimen_id": "7yAnxZN36BJJb",
   "tracking_id": "K_RU_P_0017",
   "creation_time": "2021-04-30T00:00:00",
   "biospecimen_type": "serum or plasma",
   "collection_id": "PdV482PnBozxe",
   "collection_tracking_id": "K_RU_KIT_0021",
   "container_id": "8PqD2Xb7AgzA2",
   "container_tracking_id": "K_RU_BOX_ALI_0002",
   "project": "A2CPS Multisite Clinical Center 1",
   "status": "measurement.inflight",
   "unit": "plasma_aliquot_tube",
   "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
   "subject_id": "Pxk1yXJPV3ADX",
   "bscp_time_blood_draw": "2021-04-30T11:53:00",
   "bscp_time_centrifuge": "2021-04-30T12:13:00",
   "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
   "bscp_deg_of_hemolysis": 1,
   "bscp_phleb_by_init": "KB",
   "bscp_procby_initials": "MM",
   "bscp_protocol_dev": true,
   "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
   "location": "MCC1: Rush University Medical Center"
}

Update Biospecimen Tracking Id

We can update the Tracking Id of a biospecimen to an Id of our choice.

The curl request would be:

curl -X 'PATCH' \
   'https://vbr-api.a2cps.cloud/biospecimens/7yAnxZN36BJJb/tracking_id' \
   -H 'accept: application/json' \
   -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI0ZTcyNTM2NC1hNzUzLTRkMjEtYmI2Ni1kYTgxZDEzZjRmNzIiLCJpc3MiOiJodHRwczovL2EyY3BzZGV2LnRhcGlzLmlvL3YzL3Rva2VucyIsInN1YiI6InNnb3BhbEBhMmNwc2RldiIsInRhcGlzL3RlbmFudF9pZCI6ImEyY3BzZGV2IiwidGFwaXMvdG9rZW5fdHlwZSI6ImFjY2VzcyIsInRhcGlzL2RlbGVnYXRpb24iOmZhbHNlLCJ0YXBpcy9kZWxlZ2F0aW9uX3N1YiI6bnVsbCwidGFwaXMvdXNlcm5hbWUiOiJzZ29wYWwiLCJ0YXBpcy9hY2NvdW50X3R5cGUiOiJ1c2VyIiwiZXhwIjoxNjQzNjcwODI3LCJ0YXBpcy9jbGllbnRfaWQiOm51bGwsInRhcGlzL2dyYW50X3R5cGUiOiJwYXNzd29yZCJ9.DwyzMvLGm1hPvxFmMRpPGJ9DhyZqQTlp_newlgRCFvKsywDVnGofOD3s62OBxRJvuaxdlfSKoWTnPzGTfuFfItKCGzOWl9USkvKnroRq8m47z5gX1m3DkqOE_zrzyQn-u4nqJvFGWOLOPB94W5mgf4jFncU2LXmNdjy5eJvmqSXe3FqKYHxsPRweZc12ykgUYeaJSmd45Pce8bG2-KTLEcvX3ECh6sjtJ7w5rZY5ASn0BPBayYMUtUsJrV5dKwmAmRWbxjDvBf9sHysxpUj2FwkbIsMTwSyDUN9Euii0zbKfYcUg3fBJUYF86ll3CNpixzxe23T6Tr9jbf2HE5PDTQ' \
   -H 'Content-Type: application/json' \
   -d '{
      "tracking_id": "1234check",
      "comment": "Optional comment explaining or documenting the change"
   }'

A successful response would hold the new tracking_id for our biospecimen.

{
   "biospecimen_id": "7yAnxZN36BJJb",
   "tracking_id": "1234check",
   "creation_time": "2021-04-30T00:00:00",
   "biospecimen_type": "serum or plasma",
   "collection_id": "PdV482PnBozxe",
   "collection_tracking_id": "K_RU_KIT_0021",
   "container_id": "8PqD2Xb7AgzA2",
   "container_tracking_id": "K_RU_BOX_ALI_0002",
   "project": "A2CPS Multisite Clinical Center 1",
   "status": "measurement.inflight",
   "unit": "plasma_aliquot_tube",
   "subject_guid": "90f8fc45-5d53-0de4-6853-284607a8c4e6",
   "subject_id": "Pxk1yXJPV3ADX",
   "bscp_time_blood_draw": "2021-04-30T11:53:00",
   "bscp_time_centrifuge": "2021-04-30T12:13:00",
   "bscp_aliquot_freezer_time": "2021-04-30T12:24:00",
   "bscp_deg_of_hemolysis": 1,
   "bscp_phleb_by_init": "KB",
   "bscp_procby_initials": "MM",
   "bscp_protocol_dev": true,
   "bscp_comments": "Unable to collect blood at baseline. Blood collected DOS.",
   "location": "MCC1: Rush University Medical Center"
}