You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
*CandidatesApi* | [**createCandidate**](docs/Api/CandidatesApi.md#createcandidate) | **POST** /candidates | Create a new candidate
79
90
*CandidatesApi* | [**getCandidate**](docs/Api/CandidatesApi.md#getcandidate) | **GET** /candidates/{candid} | Get candidate details
80
-
*CandidatesApi* | [**getCandidates**](docs/Api/CandidatesApi.md#getcandidates) | **GET** /candidates | Get list of candidates
81
-
*InstrumentManagerApi* | [**getInstrumentDataHeaders**](docs/Api/InstrumentManagerApi.md#getinstrumentdataheaders) | **GET** /instrument_manager/instrument_data | Get expected CSV headers for instrument data ingestion
91
+
*CandidatesApi* | [**getCandidates**](docs/Api/CandidatesApi.md#getcandidates) | **GET** /candidates | List all candidates
92
+
*InstrumentManagerApi* | [**getInstrumentDataHeaders**](docs/Api/InstrumentManagerApi.md#getinstrumentdataheaders) | **GET** /instrument_manager/instrument_data | Get expected CSV headers for instrument data upload
82
93
*InstrumentManagerApi* | [**installInstrument**](docs/Api/InstrumentManagerApi.md#installinstrument) | **POST** /instrument_manager | Install instrument from LINST file or REDCap data dictionary
83
-
*InstrumentManagerApi* | [**uploadInstrumentData**](docs/Api/InstrumentManagerApi.md#uploadinstrumentdata) | **POST** /instrument_manager/instrument_data | Bulk insert instrument data from CSV file
84
-
*InstrumentsApi* | [**getInstrumentData**](docs/Api/InstrumentsApi.md#getinstrumentdata) | **GET** /candidates/{candid}/{visit}/instruments/{instrument} | Get instrument data for a candidate/visit
85
-
*InstrumentsApi* | [**getVisitInstruments**](docs/Api/InstrumentsApi.md#getvisitinstruments) | **GET** /candidates/{candid}/{visit}/instruments | Get instruments for a visit
*ProjectsApi* | [**getProject**](docs/Api/ProjectsApi.md#getproject) | **GET** /projects/{project} | Get project details including instruments
89
-
*ProjectsApi* | [**getProjectInstruments**](docs/Api/ProjectsApi.md#getprojectinstruments) | **GET** /projects/{project}/instruments | Get instruments for a project
90
-
*ProjectsApi* | [**getProjects**](docs/Api/ProjectsApi.md#getprojects) | **GET** /projects | Get list of projects
91
-
*SitesApi* | [**getSites**](docs/Api/SitesApi.md#getsites) | **GET** /sites | Get list of sites
92
-
*VisitsApi* | [**createVisit**](docs/Api/VisitsApi.md#createvisit) | **PUT** /candidates/{candid}/{visit} | Create a new visit/timepoint
94
+
*InstrumentManagerApi* | [**uploadInstrumentData**](docs/Api/InstrumentManagerApi.md#uploadinstrumentdata) | **POST** /instrument_manager/instrument_data | Bulk upload instrument data from CSV
95
+
*InstrumentsApi* | [**getInstrumentData**](docs/Api/InstrumentsApi.md#getinstrumentdata) | **GET** /candidates/{candid}/{visit}/instruments/{instrument} | Get instrument data
96
+
*InstrumentsApi* | [**getVisitInstruments**](docs/Api/InstrumentsApi.md#getvisitinstruments) | **GET** /candidates/{candid}/{visit}/instruments | List instruments for a visit
97
+
*InstrumentsApi* | [**patchInstrumentData**](docs/Api/InstrumentsApi.md#patchinstrumentdata) | **PATCH** /candidates/{candid}/{visit}/instruments/{instrument} | Update instrument data
98
+
*InstrumentsApi* | [**putInstrumentData**](docs/Api/InstrumentsApi.md#putinstrumentdata) | **PUT** /candidates/{candid}/{visit}/instruments/{instrument} | Replace instrument data
99
+
*ProjectsApi* | [**getProject**](docs/Api/ProjectsApi.md#getproject) | **GET** /projects/{project} | Get project details
100
+
*ProjectsApi* | [**getProjectInstruments**](docs/Api/ProjectsApi.md#getprojectinstruments) | **GET** /projects/{project}/instruments | List project instruments
101
+
*ProjectsApi* | [**getProjects**](docs/Api/ProjectsApi.md#getprojects) | **GET** /projects | List projects
102
+
*SitesApi* | [**getSites**](docs/Api/SitesApi.md#getsites) | **GET** /sites | List sites
103
+
*VisitsApi* | [**createVisit**](docs/Api/VisitsApi.md#createvisit) | **PUT** /candidates/{candid}/{visit} | Create a new visit
93
104
*VisitsApi* | [**getVisit**](docs/Api/VisitsApi.md#getvisit) | **GET** /candidates/{candid}/{visit} | Get visit details
Copy file name to clipboardExpand all lines: composer.json
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
{
2
2
"name": "aces/loris-php-api-client",
3
3
"version": "0.0.4-dev",
4
-
"description": "LORIS REST API for clinical data ingestion pipelines. Authentication via JWT - POST /login to get token, use as \"Bearer <token>\".",
4
+
"description": "LORIS REST API and Module endpoints. ## Server Configuration This schema has TWO types of endpoints with different base URLs: | Type | Base URL | Endpoints | |------|----------|-----------| | REST API (versioned) | `{baseUrl}/api/{version}` | /login, /candidates, /projects, /sites | | Module (non-versioned) | `{baseUrl}` (root) | /instrument_manager, /instrument_manager/instrument_data | **InstrumentManager endpoints use path-level server overrides** to specify the non-versioned base URL. When using `InstrumentManagerApi`, configure with base URL only (no `/api/{version}`).",
Copy file name to clipboardExpand all lines: docs/Api/InstrumentManagerApi.md
+87-30Lines changed: 87 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,25 +1,36 @@
1
1
# LORISClient\InstrumentManagerApi
2
2
3
-
Instrument installation and bulk data operations: - Install instruments from LINST/REDCap files - Bulk upload instrument data via CSV - Get expected CSV headers
3
+
**Module endpoints (non-versioned)** These endpoints do NOT use the `/api/{version}` prefix. Configure client with base URL only. ```php // For InstrumentManager, use base URL without /api/{version} $moduleConfig->setHost('https://your-loris.ca'); ```
4
4
5
5
All URIs are relative to https://demo.loris.ca/api/v0.0.4-dev, except if the operation defines another base path.
6
6
7
7
| Method | HTTP request | Description |
8
8
| ------------- | ------------- | ------------- |
9
-
|[**getInstrumentDataHeaders()**](InstrumentManagerApi.md#getInstrumentDataHeaders)|**GET** /instrument_manager/instrument_data | Get expected CSV headers for instrument data ingestion|
9
+
|[**getInstrumentDataHeaders()**](InstrumentManagerApi.md#getInstrumentDataHeaders)|**GET** /instrument_manager/instrument_data | Get expected CSV headers for instrument data upload|
10
10
|[**installInstrument()**](InstrumentManagerApi.md#installInstrument)|**POST** /instrument_manager | Install instrument from LINST file or REDCap data dictionary |
11
-
|[**uploadInstrumentData()**](InstrumentManagerApi.md#uploadInstrumentData)|**POST** /instrument_manager/instrument_data | Bulk insert instrument data from CSV file|
11
+
|[**uploadInstrumentData()**](InstrumentManagerApi.md#uploadInstrumentData)|**POST** /instrument_manager/instrument_data | Bulk upload instrument data from CSV |
Get expected CSV headers for instrument data ingestion
28
+
- host: No description provided
29
+
- Default value: demo.loris.ca
21
30
22
-
Generates and returns a CSV file with the expected headers for the specified instrument(s). Either \"instrument\" OR \"instruments\" must be set, not both.
31
+
Get expected CSV headers for instrument data upload
32
+
33
+
Returns a CSV template with expected headers for the specified instrument(s). Use either `instrument` (single) or `instruments` (comma-separated), not both. **Note**: This is a module endpoint. Configure client with base URL only.
23
34
24
35
### Example
25
36
@@ -38,12 +49,18 @@ $apiInstance = new LORISClient\Api\InstrumentManagerApi(
38
49
new GuzzleHttp\Client(),
39
50
$config
40
51
);
41
-
$action = 'action_example'; // string | - CREATE_SESSIONS: For when sessions may need to be created - VALIDATE_SESSIONS: For when all sessions must already exist
42
-
$instrument = 'instrument_example'; // string | Single instrument name (mutually exclusive with instruments)
$action = 'action_example'; // string | - CREATE_SESSIONS: Headers for creating new candidates/sessions - VALIDATE_SESSIONS: Headers for existing candidates/sessions only
53
+
$instrument = 'instrument_example'; // string | Single instrument name
|**action**|**string**| - CREATE_SESSIONS: For when sessions may need to be created - VALIDATE_SESSIONS: For when all sessions must already exist ||
58
-
|**instrument**|**string**| Single instrument name (mutually exclusive with instruments) |[optional]|
59
-
|**instruments**|**string**| Multiple instrument names, comma-separated (mutually exclusive with instrument) |[optional]|
74
+
|**action**|**string**| - CREATE_SESSIONS: Headers for creating new candidates/sessions - VALIDATE_SESSIONS: Headers for existing candidates/sessions only ||
75
+
|**instrument**|**string**| Single instrument name |[optional]|
Install instrument from LINST file or REDCap data dictionary
85
115
86
-
Creates/installs a new instrument in LORIS from either: - A LINST file (.linst) - A CSV file with one or more REDCap data dictionaries
116
+
Installs a new instrument in LORIS from either: - A LINST file (.linst) - A CSV file with REDCap data dictionary format **Note**: This is a module endpoint. Configure client with base URL only, not `/api/{version}`.
87
117
88
118
### Example
89
119
@@ -102,10 +132,16 @@ $apiInstance = new LORISClient\Api\InstrumentManagerApi(
102
132
new GuzzleHttp\Client(),
103
133
$config
104
134
);
105
-
$installFile = '/path/to/file.txt'; // \SplFileObject | Instrument definition file to install: - LINST file (.linst) - CSV with REDCap data dictionary
135
+
$installFile = '/path/to/file.txt'; // \SplFileObject | LINST file or REDCap CSV to install
Uploads a CSV file to insert data for one or more instruments. Actions: - CREATE_SESSIONS: Creates candidates and sessions if they don't exist - VALIDATE_SESSIONS: Requires all candidates/sessions to already exist CSV must have columns: PSCID, Visit_label, plus instrument fields.
193
+
Bulk upload instrument data from CSV
194
+
195
+
Uploads CSV data for one or more instruments. **Actions**: - `CREATE_SESSIONS`: Creates candidates/sessions if they don't exist - `VALIDATE_SESSIONS`: Fails if any candidate/session is missing **CSV Requirements**: - Must include `PSCID` and `Visit_label` columns - For single instrument: include instrument field columns - For multi-instrument: set `multi-instrument=true` and include `Instrument` column **Note**: This is a module endpoint. Configure client with base URL only.
147
196
148
197
### Example
149
198
@@ -162,13 +211,19 @@ $apiInstance = new LORISClient\Api\InstrumentManagerApi(
162
211
new GuzzleHttp\Client(),
163
212
$config
164
213
);
165
-
$action = 'action_example'; // string | - CREATE_SESSIONS: Creates candidates/sessions if missing - VALIDATE_SESSIONS: Fails if any candidate/session doesn't exist
166
-
$dataFile = '/path/to/file.txt'; // \SplFileObject | CSV file with instrument data (must include PSCID, Visit_label columns)
167
-
$instrument = 'instrument_example'; // string | Single instrument name
168
-
$multiInstrument = 'multiInstrument_example'; // string | Set to \\\"true\\\" when uploading multi-instrument CSV
214
+
$action = 'action_example'; // string
215
+
$dataFile = '/path/to/file.txt'; // \SplFileObject | CSV file with instrument data
216
+
$instrument = 'instrument_example'; // string | Single instrument name (omit for multi-instrument)
217
+
$multiInstrument = 'multiInstrument_example'; // string | Set to \\\"true\\\" for multi-instrument CSV
0 commit comments