Got feedback or spotted a mistake?

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

How to configure Automated Freezer 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.

To register provider invoke below REST API


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


Method 
POST
Input JSON
{
  "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
{
  "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
POST
Request
{
  "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: 
{
  "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.

Got feedback or spotted a mistake?

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