Got feedback or spotted a mistake?

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

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

This API is used to export the list of revisions satisfying the request criteria. Remember a revision represents an act of creating, modifying or deleting an OpenSpecimen object/record.

Request

Export revisions effected by the user identified by userId = 1 during the time period March 1 (startDate) to March 15 (endDate). The exported list should include the list of modified record attributes/properties during each revision. The exported file contains the list of revisions arranged in reverse chronological order i.e. the latest revision at the top and ancient revision at the bottom of the file. 

URL
/openspecimen/rest/ng/audit/export-revisions
Method
POST
Body
{
  "startDate": 1551398400000,
  "endDate": 1552608000000
  "userId": 1
  "includeModifiedProps": true,
  "entities": ["Participant", "ParticipantMedicalIdentifier", "CollectionProtocolRegistration", "ParticipantExtension"]
}

Response

The response contains the file ID that can be used to download the exported revisions file.

{
  "fileId": "0a24ef05-c1aa-4641-b2a0-4d4f060b8f75_20190325_1645"
}


The exported revisions file can downloaded using the below API request

GET /openspecimen/rest/ng/audit/revisions-file?fileId=0a24ef05-c1aa-4641-b2a0-4d4f060b8f75_20190325_1645


Note: If the export is running for more than 30 seconds, then the task is delegated to a background thread. In such cases, fileId in the API response will be null. In either case, the user, who initiated the export, will be notified by email containing the link to download the revisions file.

Request parameters

ParameterDescription
startDateStart date of the interval for which the revisions list is queried. If not specified, startDate = endDate - 30 days 
endDateEnd date of the interval for which the revisions list is queried. If not specified endDate = end of today.
userIdRestrict the exported list to revisions effected by the user identified by userId.
entitiesOptional parameter. Specifies the list of entities or record types whose revisions need to be exported. This is very useful when the requestor intends to review the revisions of only certain record types say Shipment and ShipmentItem. 
includeModifiedPropsSpecifies whether the exported list should include modified attributes list for each revision.


Response parameters

ParameterDescription
fileId

a) Unique file ID to use for downloading the exported revisions file.

b) Null in case the export requires more than 30 seconds to finish.


FAQ

Q1. What is the significance of "includeModifiedProps" value in the request?

The boolean property "includeModifiedProps" determines whether the exported revisions file includes the change log for each of the modified entities during the requested time interval or not. 

Given below is an example of the CSV file created when includeModifiedProps = true. Notice the change log column, it includes the list of properties that got modified during the op along with their new values.

Revision IDRevision TimeUserUser Email IDOperationRecord TypeRecordChange Log

169879

09 Jul 2019 15:26John Doejohn.doe@openspecimen.orgEditSpecimen244004collectionStatus=Collected,createdOn=Tue Jul 09 15:26:00 IST 2019,position={id=295350}
16987909 Jul 2019 15:26John Doejohn.doe@openspecimen.orgAddStorage Container Position295354blocked=false,container={id=514},occupyingSpecimen={id=244010},posOne=8,posOneOrdinal=8,posTwo=3,posTwoOrdinal=3


When includeModifiedProps = false, the generated CSV file is as below. Notice the change log column is empty. It goes without saying that generating this kind of file is much faster than the above one as the API has to do lesser work.

Revision IDRevision TimeUserUser Email IDOperationRecord TypeRecord

Change Log

16987909 Jul 2019 15:26John Doejohn.doe@openspecimen.orgEditSpecimen244004
16987909 Jul 2019 15:26John Doejohn.doe@openspecimen.orgAddStorage Container Position295354



  • No labels