{
"resourceType": "TestScript",
"id": "healthcare-service-create-questionnaire-ts-test",
"url": "https://beda.software/TestScript/healthcare-service-create-questionnaire-ts-test",
"name": "healthcare-service-create-questionnaire-ts-test",
"status": "draft",
"date": "2023-10-26",
"publisher": "Beda Software",
"contact": [
{
"name": "Support",
"telecom": [
{
"system": "email",
"value": "ilya@beda.software",
"use": "work"
},
{
"system": "email",
"value": "pavel.r@beda.software",
"use": "work"
}
]
}
],
"fixture": [
{
"id": "healthcare-service-create-body",
"resource": {
"reference": "file://tests/resources/healthcare-service-create-extract-request-body.yaml"
},
"autocreate": false,
"autodelete": false
},
{
"id": "healthcare-service-create-questionnaire",
"resource": {
"reference": "Questionnaire/healthcare-service-create"
},
"autocreate": false,
"autodelete": false
}
],
"test": [
{
"name": "Create new encounter",
"description": "Test extract operation",
"action": [
{
"operation": {
"type": {
"code": "extract",
"system": "http://terminology.hl7.org/CodeSystem/testscript-operation-codes"
},
"resource": "Questionnaire",
"description": "Questionnaire data extract",
"accept": "json",
"method": "post",
"targetId": "healthcare-service-create-questionnaire",
"sourceId": "healthcare-service-create-body",
"encodeRequestUrl": false
}
},
{
"assert": {
"description": "Confirm that the extract returned HTTP status is 200(OK).",
"direction": "response",
"response": "okay",
"warningOnly": false
}
}
]
}
]
}
Alias: $testscript-operation-codes = http://terminology.hl7.org/CodeSystem/testscript-operation-codes
Instance: healthcare-service-create-questionnaire-ts-test
InstanceOf: TestScript
Usage: #example
* url = "https://beda.software/TestScript/healthcare-service-create-questionnaire-ts-test"
* name = "healthcare-service-create-questionnaire-ts-test"
* status = #draft
* date = "2023-10-26"
* publisher = "Beda Software"
* contact.name = "Support"
* contact.telecom[0].system = #email
* contact.telecom[=].value = "ilya@beda.software"
* contact.telecom[=].use = #work
* contact.telecom[+].system = #email
* contact.telecom[=].value = "pavel.r@beda.software"
* contact.telecom[=].use = #work
* fixture[0].id = "healthcare-service-create-body"
* fixture[=].resource = Reference(file://tests/resources/healthcare-service-create-extract-request-body.yaml)
* fixture[=].autocreate = false
* fixture[=].autodelete = false
* fixture[+].id = "healthcare-service-create-questionnaire"
* fixture[=].resource = Reference(Questionnaire/healthcare-service-create)
* fixture[=].autocreate = false
* fixture[=].autodelete = false
* test.name = "Create new encounter"
* test.description = "Test extract operation"
* test.action[0].operation.type = $testscript-operation-codes#extract
* test.action[=].operation.resource = #Questionnaire
* test.action[=].operation.description = "Questionnaire data extract"
* test.action[=].operation.accept = #json
* test.action[=].operation.method = #post
* test.action[=].operation.targetId = "healthcare-service-create-questionnaire"
* test.action[=].operation.sourceId = "healthcare-service-create-body"
* test.action[=].operation.encodeRequestUrl = false
* test.action[+].assert.description = "Confirm that the extract returned HTTP status is 200(OK)."
* test.action[=].assert.direction = #response
* test.action[=].assert.response = #okay
* test.action[=].assert.warningOnly = false
insert AddTelecom("email", "ilya@beda.software", "work")
RuleSet: AddTelecom(system, value, use)
* contact.telecom[+]
* system = #{system}
* value = {value}
* use = #{use}
* insert AddFixtureFile("healthcare-service-create-body", healthcare-service-create-extract-request-body.yaml)
* insert AddFixtureResource("healthcare-service-create-questionnaire", Questionnaire/healthcare-service-create)
RuleSet: AddFixture(id, path)
* fixture[+].id = {id}
* fixture[=].resource.reference = "{path}"
* fixture[=].autocreate = false
* fixture[=].autodelete = false
RuleSet: AddFixtureFile(id, fileName)
* insert AddFixture({id}, file://tests/resources/{fileName})
RuleSet: AddFixtureResource(id, reference)
* insert AddFixture({id}, {reference})
RuleSet: CreateTest(name, description)
* test[+].name = {name}
* test[=].description = {description}
* insert CreateTest("Create new encounter", "Test extract operation")
RuleSet: TSTestOperationGlobal(type, resource, description, accept, method, targetId, sourceId)
* test[=].action[+].operation
* type = $testscript-operation-codes#{type}
* resource = #{resource}
* description = {description}
* accept = #{accept}
* method = #{method}
* targetId = {targetId}
* sourceId = {sourceId}
* encodeRequestUrl = false
RuleSet: TSTestAssertSuccessResponse
* test[=].action[+].assert
* description = "Confirm that the extract returned HTTP status is 200(OK)."
* direction = #response
* response = #okay
* warningOnly = false
RuleSet: ExtractQuestionnaire(targetId, sourceId)
* insert TSTestOperationGlobal("extract", "Questionnaire", "Questionnaire data extract", "json", "post", {targetId}, {sourceId})
* insert TSTestAssertSuccessResponse
* insert ExtractQuestionnaire("healthcare-service-create-questionnaire", "healthcare-service-create-body")
RuleSet: TSTestOperationSearch(description, type, resource, params)
* test[=].action[+].operation
* description = {description}
* type = $QuestionnaireResponse-extract#{type}
* resource = #{resource}
* encodeRequestUrl = true
* params = {params}
* encodeRequestUrl = false
RuleSet: SearchFHIRResources(resourceType, params)
* insert TSTestOperationSearch("Search FHIR resources", "search", {resourceType}, {params})
* insert SearchFHIRResources("HealthcareService", "?service-type=ecg")
RuleSet: TSTestAssertWithPropEmptySourceIdExpression(description, resource, value, operator, expression)
* test[=].action[+].assert
* description = {description}
* resource = #{resource}
* value = {value}
* operator = #{operator}
* warningOnly = false
* expression = "{expression}"
RuleSet: AssertEqualTo(resource, expression, value)
* insert TSTestAssertWithPropEmptySourceIdExpression("Check is equal", {resource}, {value}, "equals", [[{expression}]])
* insert AssertEqualTo("Bundle", [[Bundle.total.toString()]], "1")
Instance: healthcare-service-create-questionnaire-ts-test
InstanceOf: TestScript
Usage: #example
* url = "https://beda.software/TestScript/healthcare-service-create-questionnaire-ts-test"
* name = "healthcare-service-create-questionnaire-ts-test"
* status = #draft
* date = "2023-10-26"
* publisher = "Beda Software"
* contact.name = "Support"
* insert AddTelecom("email", "ilya@beda.software", "work")
* insert AddTelecom("email", "pavel.r@beda.software", "work")
* insert AddFixtureFile("healthcare-service-create-body", healthcare-service-create-extract-request-body.yaml)
* insert AddFixtureResource("healthcare-service-create-questionnaire", Questionnaire/healthcare-service-create)
* insert CreateTest("Create new encounter", "Test extract operation")
* insert ExtractQuestionnaire("healthcare-service-create-questionnaire", "healthcare-service-create-body")
* insert SearchFHIRResources("HealthcareService", "?service-type=ecg")
* insert AssertEqualTo("Bundle", [[Bundle.total.toString()]], "1")