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.
page
Which index page to be returned. Default value is
0
.size
Items per page to be returned. Default value is
25
. Maximum items allowed per page is500
.sort
Name of the property by which to sort the result set. To sort in a particular direction add a comma to the property name and
asc
ordesc
. To sort by multiple properties add additional sort parameters. Default value isrecordId,asc
.filter
Optional filter search criteria. Must follow correct syntax. Refer to Mednet EDC REST API Reference for details.
recordDataFilter
Optional 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:
metadata
describing the status, request path and timestamp.pagination
information about page numbers and sort order.data
containing 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
formKey
User defined form key.
formId
System generated form identifier.
siteName
User defined site name.
siteId
System generated site identifier.
subjectKey
Patient Display ID Full.
subjectId
System generated subject identifier.
subjectOid
User assigned subject OID.
intervalName
User defined interval name.
intervalId
System generated interval identifier.
recordId
System generated record identifier.
recordOid
User 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"
}