Records Endpoint
Given a studyKey, fetch the set of records. A record is a conduct resource that
represents a single instance of an electronic case report form (eCRF). Each record
contains the responses to each question on the eCRF.
Accessing the index
A GET request retrieves records while POST adds records to the iMednet
database.
Path parameters
{studyKey}StudyKey to retrieve list of records.
GET Requests
GET /api/v1/edc/studies/PHARMADEMO/records?page=0&size=25&sort=recordId%2CASC&filter=recordId%3D%3D5510&recordDataFilter=aeterm%3D%3DBronchitis HTTP/1.1
Content-Type: application/json
Host: localhost:8080
GET Request parameters
Request parameters are optional. Default values are used unless specified.
pageWhich index page to be returned. Default value is
0.sizeItems per page to be returned. Default value is
25. Maximum items allowed per page is500.sortName of the property by which to sort the result set. To sort in a particular direction add a comma to the property name and
ascordesc. To sort by multiple properties add additional sort parameters. Default value isrecordId,asc.filterOptional filter search criteria. Must follow correct syntax. Refer to Mednet EDC REST API Reference for details.
recordDataFilterOptional record data filter search criteria. Must follow correct syntax. Refer to Mednet EDC REST API Reference for details.
GET Response body
{
"metadata" : {
"status" : "OK",
"method" : "GET",
"path" : "/api/v1/edc/studies/PHARMADEMO/records",
"timestamp" : "2025-06-05 21:12:09",
"error" : { }
},
"pagination" : {
"currentPage" : 0,
"size" : 25,
"totalPages" : 1,
"totalElements" : 1,
"sort" : [ {
"property" : "recordId",
"direction" : "ASC"
} ]
},
"data" : [ {
"studyKey" : "PHARMADEMO",
"intervalId" : 99,
"formId" : 10202,
"formKey" : "AE",
"siteId" : 128,
"recordId" : 1,
"recordOid" : "REC-1",
"recordType" : "SUBJECT",
"recordStatus" : "Record Incomplete",
"deleted" : false,
"dateCreated" : "2025-06-05 21:12:09",
"dateModified" : "2025-06-05 21:12:10",
"subjectId" : 326,
"subjectOid" : "OID-1",
"subjectKey" : "123-456",
"visitId" : 1,
"parentRecordId" : 34,
"keywords" : [ {
"keywordName" : "Data Entry Error",
"keywordKey" : "DEE",
"keywordId" : 15362,
"dateAdded" : "2025-06-05 21:12:09"
} ],
"recordData" : {
"dateCreated" : "2018-10-18 06:21:46",
"unvnum" : "1",
"dateModified" : "2018-11-18 07:11:16",
"aeser" : "",
"aeterm" : "Bronchitis"
}
} ]
}
GET Response fields The JSON response includes three sections:
metadatadescribing the status, request path and timestamp.paginationinformation about page numbers and sort order.datacontaining a list of record objects.
POST Requests
Providing a studyKey and a request body adds a record to the iMednet database.
The request body is an array. The contents of the body determine if the request
will register a subject, update a scheduled record, or create a new record.
Request structure
POST /api/v1/edc/studies/PHARMADEMO/records HTTP/1.1
x-email-notify: user@domain.com
Accept: application/json
Content-Type: application/json
Host: localhost:8080
[ ]
POST Request Identifiers
formKeyUser defined form key.
formIdSystem generated form identifier.
siteNameUser defined site name.
siteIdSystem generated site identifier.
subjectKeyPatient Display ID Full.
subjectIdSystem generated subject identifier.
subjectOidUser assigned subject OID.
intervalNameUser defined interval name.
intervalIdSystem generated interval identifier.
recordIdSystem generated record identifier.
recordOidUser defined record OID.
Field Types
When making a POST request, use the correct type for any fields included in the
data object.
Sample request body containing all valid field types:
[ {
"formKey" : "REG",
"siteName" : "Minneapolis",
"data" : {
"textField" : "Text data",
"dateField" : "2020-01-20",
"numberField" : 11,
"radioField" : "Yes",
"dropdownField" : "Always",
"memoField" : "Memo data",
"checkboxField" : true
}
} ]
Valid field types:
Path |
Type |
Description |
|---|---|---|
|
String |
Form Key |
|
String |
Site Name |
|
Object |
Data for specific record |
|
String |
Text field |
|
String |
Date field |
|
Number |
Number field |
|
String |
Radio field |
|
String |
Dropdown field |
|
String |
Memo field |
|
Boolean |
Checkbox field |
Register Subject
Request body for registering a subject:
[ {
"formKey" : "REG",
"siteName" : "Minneapolis",
"data" : {
"textField" : "Text value"
}
} ]
Request fields:
Path |
Type |
Description |
|---|---|---|
|
String |
Form Key |
|
String |
Site Name |
|
Object |
Data for specific record |
|
String |
Text field |
Update a Scheduled Record
Request body for updating a scheduled record:
[ {
"formKey" : "REG",
"subjectKey" : "651-042",
"intervalName" : "Registration",
"data" : {
"textField" : "Text value"
}
} ]
Request fields:
Path |
Type |
Description |
|---|---|---|
|
String |
Form Key |
|
String |
Subject Key |
|
String |
Interval Name |
|
Object |
Data for specific record |
|
String |
Text field |
Create a New Record
Request body for creating a new record:
[ {
"formKey" : "REG",
"subjectKey" : "123-876",
"data" : {
"textField" : "Text value"
}
} ]
Request fields:
Path |
Type |
Description |
|---|---|---|
|
String |
Form Key |
|
String |
Subject Key |
|
Object |
Data for specific record |
|
String |
Text field |
Response body
The POST request returns a batchId and a state which can be used to check
on the status of the record being added via GET requests to the jobs
endpoint.
{
"jobId": "9663fe34-eec7-460a-a820-097f1eb2875e",
"batchId" : "c3q191e4-f894-72cd-a753-b37283eh0866",
"state": "created"
}