Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

To work automated container integration with OpenSpecimen, OpenSpecimen can be integrated with any automated freezer and do the operation like put/retrieve specimen. To work integration need to do below configuration. 

Step 1: Register auto freezer provider

We need to register provider and set properties which are used to connect with freezer. Properties can be different as per freezer.

To register provider invoke below REST API

...

URL
http://<host>:<port>/openspecimen/rest/ng/auto-freezer-providers


Method 
POST
Input JSON


Code Block
languagejs
{
  "name": "Any thing that makes sense"
  "implClass": "Concrete Java class that implements the interface AutomatedFreezer",
   "props": {
     "prop1": "custom property1 required for the AutomatedFreezer implementation",
     "prop2": "custom property2 required for the AutomatedFreezer implementation",
     .
     .
     .
    }
}


Example


Code Block
{
  "name": "Hamilton Bios",
  "implClass": "com.krishagni.autofreezers.hamilton.core.BiosFreezer",
  "props": {
	"url": "http://localhost:9000/api/v11/",
	"user": "admin",
	"password": "admin",
	"barcode_type": “ECC 200“,
	"job_priority": "100",
	"job_optimization_mode": "System",
	"job_destination_labware_type": "IOCassette"
  }
}



Step 2:

...

Create a dimensionless storage container as autofreezer.

To create a dimensionless container specifying that container as automated freezer need to invoke below API. Once we do this step add/retrieve the specimens from this container will invoke APIs of the actual automated freezer.


URL
http://<host>:<port>/openspecimen/rest/ng/storage-containers/{id}
Method
PATCHPOST
ExampleRequest


Code Block
languagejs
{
  "name": "BiOS_Instrument",
  "displayName": "BiOS_Instrument",
  "usedFor": "STORAGE",
  "activityStatus": "Active",
  "siteName": "RTOG",
  "positionLabelingMode": "NONE",
  "positionAssignment": "HZ_TOP_DOWN_LEFT_RIGHT",
  "columnLabelingScheme": "Numbers",
  "rowLabelingScheme": "Numbers",
  "storeSpecimensEnabled": true,
  "automated": true,
  "autoFreezerProvider": "Hamilton Bios",
  "allowedCollectionProtocols": [],
  "calcAllowedCollectionProtocols": [],
  "temperature": -80,
  "cellDisplayProp": "SPECIMEN_LABEL",
  "allowedSpecimenClasses": [],
  "calcAllowedSpecimenClasses": [
    "Tissue",
    "Fluid",
    "Molecular",
    "Cell"
  ],
  "allowedSpecimenTypes": [],
  "calcAllowedSpecimenTypes": [],
  "allowedDistributionProtocols": [],
  "calcAllowedDistributionProtocols": [],
  "occupiedPositions": [],
  "printLabels": false
}


Response: 


Code Block
languagejs
{
  "opComments": null,
  "id": 1,
  "name": "BiOS_Instrument",
  "barcode": null,
  "displayName": "BiOS_Instrument",
  "typeId": null,
  "typeName": null,
  "usedFor": "STORAGE",
  "activityStatus": "Active",
  "siteName": "RTOG",
  "storageLocation": null,
  "createdBy": {
    "id": 2,
    "type": "SUPER",
    "firstName": "System",
    "lastName": "Administrator",
    "loginName": "admin",
    "domain": "openspecimen",
    "emailAddress": "admin@localhost",
    "instituteId": 1,
    "instituteName": "Biobank Institute",
    "admin": true,
    "instituteAdmin": false,
    "manageForms": false,
    "manageWfs": true,
    "downloadLabelsPrintFile": false,
    "cpCount": 0,
    "activityStatus": "Active"
  },
  "noOfColumns": null,
  "noOfRows": null,
  "positionLabelingMode": "NONE",
  "positionAssignment": "HZ_TOP_DOWN_LEFT_RIGHT",
  "columnLabelingScheme": "Numbers",
  "rowLabelingScheme": "Numbers",
  "freePositions": null,
  "usedPositions": null,
  "storeSpecimensEnabled": true,
  "capacity": null,
  "storedSpecimens": null,
  "automated": true,
  "autoFreezerProvider": "Hamilton Bios",
  "allowedCollectionProtocols": [],
  "calcAllowedCollectionProtocols": [],
  "childContainers": null,
  "starred": null,
  "status": null,
  "blockedLocation": null,
  "freezerId": null,
  "freezerName": null,
  "freezerBarcode": null,
  "freezerDisplayName": null,
  "temperature": -80,
  "cellDisplayProp": "SPECIMEN_LABEL",
  "comments": null,
  "extensionDetail": null,
  "allowedSpecimenClasses": [],
  "calcAllowedSpecimenClasses": [
    "Tissue",
    "Fluid",
    "Molecular",
    "Cell"
  ],
  "allowedSpecimenTypes": [],
  "calcAllowedSpecimenTypes": [],
  "allowedDistributionProtocols": [],
  "calcAllowedDistributionProtocols": [],
  "occupiedPositions": [],
  "specimensByType": null,
  "printLabels": false
}



Enabling Store/Pick event notifications:

Steps:

  1. Login to Hamilton UI.
  2. Navigate to settings.
  3. Enable JOB Status Notification.
  4. Add JOB Status Notification endpoint: <app_url>/rest/ng/bios-notifs e.g. https://test.openspecimen.org/rest/ng/bios-notifs

After enabling this, OpenSpecimen shows the Store and Pick event ran on the Hamilton side on stored specimen overview page.

An e.g.

Image AddedImage Added