Create full questionnaire (one shot)
curl --request POST \
--url http://localhost:8081/protocols/questionnaires \
--header 'Content-Type: application/json' \
--data '
{
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"questions": [
{
"questionText": "<string>",
"metadata": {},
"required": true,
"weight": 123,
"position": 123,
"options": [
{
"optionText": "<string>",
"score": 123,
"position": 123
}
]
}
],
"scoreRanges": [
{
"minScore": 123,
"maxScore": 123,
"classification": "<string>"
}
],
"prompt": "<string>"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
institutionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
questions: [
{
questionText: '<string>',
metadata: {},
required: true,
weight: 123,
position: 123,
options: [{optionText: '<string>', score: 123, position: 123}]
}
],
scoreRanges: [{minScore: 123, maxScore: 123, classification: '<string>'}],
prompt: '<string>'
})
};
fetch('http://localhost:8081/protocols/questionnaires', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:8081/protocols/questionnaires"
payload = {
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"questions": [
{
"questionText": "<string>",
"metadata": {},
"required": True,
"weight": 123,
"position": 123,
"options": [
{
"optionText": "<string>",
"score": 123,
"position": 123
}
]
}
],
"scoreRanges": [
{
"minScore": 123,
"maxScore": 123,
"classification": "<string>"
}
],
"prompt": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"protocol": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"prompt": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"form": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"questions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolFormId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"questionText": "<string>",
"metadata": {},
"required": true,
"weight": 123,
"position": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"options": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolQuestionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"optionText": "<string>",
"score": 123,
"position": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}
]
}
}Create full questionnaire (one shot)
Creates protocol + form (v1) + questions (with options) + score ranges in one request. UI: single form, submit once.
POST
/
protocols
/
questionnaires
Create full questionnaire (one shot)
curl --request POST \
--url http://localhost:8081/protocols/questionnaires \
--header 'Content-Type: application/json' \
--data '
{
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"questions": [
{
"questionText": "<string>",
"metadata": {},
"required": true,
"weight": 123,
"position": 123,
"options": [
{
"optionText": "<string>",
"score": 123,
"position": 123
}
]
}
],
"scoreRanges": [
{
"minScore": 123,
"maxScore": 123,
"classification": "<string>"
}
],
"prompt": "<string>"
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
institutionId: '3c90c3cc-0d44-4b50-8888-8dd25736052a',
name: '<string>',
questions: [
{
questionText: '<string>',
metadata: {},
required: true,
weight: 123,
position: 123,
options: [{optionText: '<string>', score: 123, position: 123}]
}
],
scoreRanges: [{minScore: 123, maxScore: 123, classification: '<string>'}],
prompt: '<string>'
})
};
fetch('http://localhost:8081/protocols/questionnaires', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "http://localhost:8081/protocols/questionnaires"
payload = {
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"questions": [
{
"questionText": "<string>",
"metadata": {},
"required": True,
"weight": 123,
"position": 123,
"options": [
{
"optionText": "<string>",
"score": 123,
"position": 123
}
]
}
],
"scoreRanges": [
{
"minScore": 123,
"maxScore": 123,
"classification": "<string>"
}
],
"prompt": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"protocol": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"institutionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"prompt": "<string>",
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
},
"form": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"version": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"questions": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolFormId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"questionText": "<string>",
"metadata": {},
"required": true,
"weight": 123,
"position": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"options": [
{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"protocolQuestionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"optionText": "<string>",
"score": 123,
"position": 123,
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z"
}
]
}
]
}
}⌘I