openspecimen/rest/ng/collection-protocols
Use this resource to create new collection protocol in the openSpecimen application. Use HTTP POST method to call this API by passing the below details in JSON format.
Below are the attributes which need to be sent in the request body:
Parameter | Details | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
title | Collection protocol title. Should be unique in the application | ||||||||||||||||||||||||||||||||||||||||||||||||||||
shortTitle | Collection protocol short title. Should be unique in the application | ||||||||||||||||||||||||||||||||||||||||||||||||||||
startDate | Collection protocol starting date | ||||||||||||||||||||||||||||||||||||||||||||||||||||
endDate[optional] | Collection protocol end date. If given then, the endDate should not be later than start date. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
investigator | Principal investigator of CP Mainly contains following parameters : loginName : User login name. For this specified user must be present in application. domainName: Name of domain to which user belongs to. By default it will be catissue. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
coordinators [optional] | Collection of coordinators. It is collection of user info mainly contains following parameters : loginName : User login name. For this specified user must be present in application. domainName: Name of domain to which user belongs to. By default it will be catissue. | ||||||||||||||||||||||||||||||||||||||||||||||||||||
activityStatus | Activity status of a collection protocol | ||||||||||||||||||||||||||||||||||||||||||||||||||||
cpType[optional] | Collection protocol type | ||||||||||||||||||||||||||||||||||||||||||||||||||||
labelFormat[optional] | CP label format | ||||||||||||||||||||||||||||||||||||||||||||||||||||
derivedLabelFormat[optional] | Derived label format | ||||||||||||||||||||||||||||||||||||||||||||||||||||
aliquotLabelFormat[optional] | Aliquot label format | ||||||||||||||||||||||||||||||||||||||||||||||||||||
ppIdFormat[optional] | PPId format | ||||||||||||||||||||||||||||||||||||||||||||||||||||
cpeDetails[optional] | It is collection of collection protocol event details Mainly contains following parameters :
| ||||||||||||||||||||||||||||||||||||||||||||||||||||
cpSiteRoles[optional] | It is collection of Sites and Roles with respect to CP. By default it will be none. i.e. Blank collection. Mainly contains following parameters : roleName : Role of user like Scientist, Admin etc. For this attribute role must be present in application. siteName: Site name. For this attribute Site must be present in application.
|
http[s]:<host>:<port>/openspecimen/rest/ng/collection-protocols
Use this URL to add collection protocol in openSpecimen application.
Result:
The response of this request will contains the details of the created collection protocol.
Below is the example of the create collection protocol:
URL | http://<host>:<port>/ openspecimen/rest/ng/collection-protocols |
Method | POST |
Request | application/json |
json | { "title": "LiverCancer Study", "shortTitle": "LCS", "cpType": "Parent", "startDate": "2014-02-02", "activityStatus": "Active", "cpeDetails": [ { "collectionPointLabel":"First Follow-up", "activityStatus":"Active", "specimenRequirementDetails": [ { "collectionTimestamp":"2014-09-12", "collector": { "loginName":"admin@admin.com", "domainName":"catissue" }, "receiver": { "loginName":"admin@admin.com", "domainName":"catissue" }, "collectionContainer":"Frizeer", "collectionProcedure" : "Needle Aspirate", "receivedQuality":"Acceptable", "lineage" : "New", "activityStatus":"Active", "childSpecimenRequirementCollection": [ { "collectionTimestamp":"2014-09-12", "collector": { "loginName":"admin@admin.com", "domainName":"catissue" }, "receiver": { "loginName":"admin@admin.com", "domainName":"catissue" }, "collectionContainer":"Frizeer", "collectionProcedure" : "Not Specified", "receivedQuality":"Acceptable", "lineage" : "Aliquot", "activityStatus":"Active", "childSpecimenRequirementCollection":[ ] } ] } ] } ], "coordinators": [], "investigator": { "loginName": "admin@admin.com", "domainName": "catissue" } } |
Response | { id: 158 title: "LiverCancer Study" shortTitle: "LCS" cpType: "Parent" startDate: 1391299200000 endDate: null activityStatus: "Active" labelFormat: null derivedLabelFormat: null aliquotLabelFormat: null ppIdFormat: null cpeDetails: { id: 1038 collectionPointLabel: "First Follow-up" studyCalendarEventPoint: null labelFormat: null activityStatus: "Active" defaultSiteName: null specimenRequirementDetails: { id: 14295 collectionTimestamp: 1410480000000 collectionComments: null collectionProcedure: "Needle Aspirate" collectionContainer: "Frizeer" receivedQuality: "Acceptable" receivedTimestamp: null receivedComments: null collectionProtocolEvent: null childSpecimenRequirementCollection: { id: 14296 collectionTimestamp: 1410480000000 collectionComments: null collectionProcedure: "Needle Aspirate" collectionContainer: "container" receivedQuality: "Acceptable" receivedTimestamp: null receivedComments: null collectionProtocolEvent: null childSpecimenRequirementCollection: [0] tissueSite: null tissueSide: null pathologicalStatus: null lineage: "Aliquot" initialQuantity: null specimenClass: null specimenType: null labelFormat: null specimenRequirementLabel: null activityStatus: "Active" } tissueSite: null tissueSide: null pathologicalStatus: null lineage: "New" initialQuantity: null specimenClass: null specimenType: null labelFormat: null specimenRequirementLabel: null activityStatus: "Active" } } coordinators: [0 ] cpSiteRoles: [0] } |
Error Cases :
code | Applies to | Status Message |
---|---|---|
200 | All resources | Collection Protocol has been created successfully |
400 | All requests | Invalid parameters, e.g duplicate CP title, blank CP title etc |
401 | All requests | Authorization failed, user doesn’t have authority |
500 | All requests | Internal server error, encountered server error while performing operations |