This page is part of the FHIR Specification (v4.0.1: R4 - Mixed Normative and STU) in it's permanent home (it will always be available at this URL). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3
FHIR Infrastructure Work Group | Maturity Level: 0 | Trial Use | Security Category: Business | Compartments: Not linked to any defined compartments |
A summary of information based on the results of executing a TestScript.
The TestScript resource is used to define tests that can be executed on one or more FHIR servers. The TestReport resource defines how systems should encode the summarized results of executing a TestScript.
The TestReport structure mirrors the TestScript concepts of having sections for setup, tests, and teardown. If present, these ordered lists should mirror the actions (either operations or assertions) of the referenced TestScript with a result code: pass, skip, fail, warning, or error.
Implementers should be familiar with the testing concepts and descriptions found in Testing FHIR before working with this resource.
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
TestReport | TU | DomainResource | Describes the results of a TestScript execution Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..1 | Identifier | External identifier |
name | Σ | 0..1 | string | Informal name of the executed TestScript |
status | ?!Σ | 1..1 | code | completed | in-progress | waiting | stopped | entered-in-error TestReportStatus (Required) |
testScript | Σ | 1..1 | Reference(TestScript) | Reference to the version-specific TestScript that was executed to produce this TestReport |
result | Σ | 1..1 | code | pass | fail | pending TestReportResult (Required) |
score | Σ | 0..1 | decimal | The final score (percentage of tests passed) resulting from the execution of the TestScript |
tester | Σ | 0..1 | string | Name of the tester producing this report (Organization or individual) |
issued | Σ | 0..1 | dateTime | When the TestScript was executed and this TestReport was generated |
participant | 0..* | BackboneElement | A participant in the test execution, either the execution engine, a client, or a server | |
type | 1..1 | code | test-engine | client | server TestReportParticipantType (Required) | |
uri | 1..1 | uri | The uri of the participant. An absolute URL is preferred | |
display | 0..1 | string | The display name of the participant | |
setup | 0..1 | BackboneElement | The results of the series of required setup operations before the tests were executed | |
action | I | 1..* | BackboneElement | A setup operation or assert that was executed + Rule: Setup action SHALL contain either an operation or assert but not both. |
operation | 0..1 | BackboneElement | The operation to perform | |
result | 1..1 | code | pass | skip | fail | warning | error TestReportActionResult (Required) | |
message | 0..1 | markdown | A message associated with the result | |
detail | 0..1 | uri | A link to further details on the result | |
assert | 0..1 | BackboneElement | The assertion to perform | |
result | 1..1 | code | pass | skip | fail | warning | error TestReportActionResult (Required) | |
message | 0..1 | markdown | A message associated with the result | |
detail | 0..1 | string | A link to further details on the result | |
test | 0..* | BackboneElement | A test executed from the test script | |
name | 0..1 | string | Tracking/logging name of this test | |
description | 0..1 | string | Tracking/reporting short description of the test | |
action | I | 1..* | BackboneElement | A test operation or assert that was performed + Rule: Test action SHALL contain either an operation or assert but not both. |
operation | 0..1 | see operation | The operation performed | |
assert | 0..1 | see assert | The assertion performed | |
teardown | 0..1 | BackboneElement | The results of running the series of required clean up steps | |
action | 1..* | BackboneElement | One or more teardown operations performed | |
operation | 1..1 | see operation | The teardown operation performed | |
Documentation for this format |
UML Diagram (Legend)
XML Template
<TestReport xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..1 Identifier External identifier --></identifier> <name value="[string]"/><!-- 0..1 Informal name of the executed TestScript --> <status value="[code]"/><!-- 1..1 completed | in-progress | waiting | stopped | entered-in-error --> <testScript><!-- 1..1 Reference(TestScript) Reference to the version-specific TestScript that was executed to produce this TestReport --></testScript> <result value="[code]"/><!-- 1..1 pass | fail | pending --> <score value="[decimal]"/><!-- 0..1 The final score (percentage of tests passed) resulting from the execution of the TestScript --> <tester value="[string]"/><!-- 0..1 Name of the tester producing this report (Organization or individual) --> <issued value="[dateTime]"/><!-- 0..1 When the TestScript was executed and this TestReport was generated --> <participant> <!-- 0..* A participant in the test execution, either the execution engine, a client, or a server --> <type value="[code]"/><!-- 1..1 test-engine | client | server --> <uri value="[uri]"/><!-- 1..1 The uri of the participant. An absolute URL is preferred --> <display value="[string]"/><!-- 0..1 The display name of the participant --> </participant> <setup> <!-- 0..1 The results of the series of required setup operations before the tests were executed --> <action> <!-- 1..* A setup operation or assert that was executed --> <operation> <!-- 0..1 The operation to perform --> <result value="[code]"/><!-- 1..1 pass | skip | fail | warning | error --> <message value="[markdown]"/><!-- 0..1 A message associated with the result --> <detail value="[uri]"/><!-- 0..1 A link to further details on the result --> </operation> <assert> <!-- 0..1 The assertion to perform --> <result value="[code]"/><!-- 1..1 pass | skip | fail | warning | error --> <message value="[markdown]"/><!-- 0..1 A message associated with the result --> <detail value="[string]"/><!-- 0..1 A link to further details on the result --> </assert> </action> </setup> <test> <!-- 0..* A test executed from the test script --> <name value="[string]"/><!-- 0..1 Tracking/logging name of this test --> <description value="[string]"/><!-- 0..1 Tracking/reporting short description of the test --> <action> <!-- 1..* A test operation or assert that was performed --> <operation><!-- 0..1 Content as for TestReport.setup.action.operation The operation performed --></operation> <assert><!-- 0..1 Content as for TestReport.setup.action.assert The assertion performed --></assert> </action> </test> <teardown> <!-- 0..1 The results of running the series of required clean up steps --> <action> <!-- 1..* One or more teardown operations performed --> <operation><!-- 1..1 Content as for TestReport.setup.action.operation The teardown operation performed --></operation> </action> </teardown> </TestReport>
JSON Template
{ "resourceType" : "TestReport", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : { Identifier }, // External identifier "name" : "<string>", // Informal name of the executed TestScript "status" : "<code>", // R! completed | in-progress | waiting | stopped | entered-in-error "testScript" : { Reference(TestScript) }, // R! Reference to the version-specific TestScript that was executed to produce this TestReport "result" : "<code>", // R! pass | fail | pending "score" : <decimal>, // The final score (percentage of tests passed) resulting from the execution of the TestScript "tester" : "<string>", // Name of the tester producing this report (Organization or individual) "issued" : "<dateTime>", // When the TestScript was executed and this TestReport was generated "participant" : [{ // A participant in the test execution, either the execution engine, a client, or a server "type" : "<code>", // R! test-engine | client | server "uri" : "<uri>", // R! The uri of the participant. An absolute URL is preferred "display" : "<string>" // The display name of the participant }], "setup" : { // The results of the series of required setup operations before the tests were executed "action" : [{ // R! A setup operation or assert that was executed "operation" : { // The operation to perform "result" : "<code>", // R! pass | skip | fail | warning | error "message" : "<markdown>", // A message associated with the result "detail" : "<uri>" // A link to further details on the result }, "assert" : { // The assertion to perform "result" : "<code>", // R! pass | skip | fail | warning | error "message" : "<markdown>", // A message associated with the result "detail" : "<string>" // A link to further details on the result } }] }, "test" : [{ // A test executed from the test script "name" : "<string>", // Tracking/logging name of this test "description" : "<string>", // Tracking/reporting short description of the test "action" : [{ // R! A test operation or assert that was performed "operation" : { Content as for TestReport.setup.action.operation }, // The operation performed "assert" : { Content as for TestReport.setup.action.assert } // The assertion performed }] }], "teardown" : { // The results of running the series of required clean up steps "action" : [{ // R! One or more teardown operations performed "operation" : { Content as for TestReport.setup.action.operation } // R! The teardown operation performed }] } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:TestReport; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:TestReport.identifier [ Identifier ]; # 0..1 External identifier fhir:TestReport.name [ string ]; # 0..1 Informal name of the executed TestScript fhir:TestReport.status [ code ]; # 1..1 completed | in-progress | waiting | stopped | entered-in-error fhir:TestReport.testScript [ Reference(TestScript) ]; # 1..1 Reference to the version-specific TestScript that was executed to produce this TestReport fhir:TestReport.result [ code ]; # 1..1 pass | fail | pending fhir:TestReport.score [ decimal ]; # 0..1 The final score (percentage of tests passed) resulting from the execution of the TestScript fhir:TestReport.tester [ string ]; # 0..1 Name of the tester producing this report (Organization or individual) fhir:TestReport.issued [ dateTime ]; # 0..1 When the TestScript was executed and this TestReport was generated fhir:TestReport.participant [ # 0..* A participant in the test execution, either the execution engine, a client, or a server fhir:TestReport.participant.type [ code ]; # 1..1 test-engine | client | server fhir:TestReport.participant.uri [ uri ]; # 1..1 The uri of the participant. An absolute URL is preferred fhir:TestReport.participant.display [ string ]; # 0..1 The display name of the participant ], ...; fhir:TestReport.setup [ # 0..1 The results of the series of required setup operations before the tests were executed fhir:TestReport.setup.action [ # 1..* A setup operation or assert that was executed fhir:TestReport.setup.action.operation [ # 0..1 The operation to perform fhir:TestReport.setup.action.operation.result [ code ]; # 1..1 pass | skip | fail | warning | error fhir:TestReport.setup.action.operation.message [ markdown ]; # 0..1 A message associated with the result fhir:TestReport.setup.action.operation.detail [ uri ]; # 0..1 A link to further details on the result ]; fhir:TestReport.setup.action.assert [ # 0..1 The assertion to perform fhir:TestReport.setup.action.assert.result [ code ]; # 1..1 pass | skip | fail | warning | error fhir:TestReport.setup.action.assert.message [ markdown ]; # 0..1 A message associated with the result fhir:TestReport.setup.action.assert.detail [ string ]; # 0..1 A link to further details on the result ]; ], ...; ]; fhir:TestReport.test [ # 0..* A test executed from the test script fhir:TestReport.test.name [ string ]; # 0..1 Tracking/logging name of this test fhir:TestReport.test.description [ string ]; # 0..1 Tracking/reporting short description of the test fhir:TestReport.test.action [ # 1..* A test operation or assert that was performed fhir:TestReport.test.action.operation [ See TestReport.setup.action.operation ]; # 0..1 The operation performed fhir:TestReport.test.action.assert [ See TestReport.setup.action.assert ]; # 0..1 The assertion performed ], ...; ], ...; fhir:TestReport.teardown [ # 0..1 The results of running the series of required clean up steps fhir:TestReport.teardown.action [ # 1..* One or more teardown operations performed fhir:TestReport.teardown.action.operation [ See TestReport.setup.action.operation ]; # 1..1 The teardown operation performed ], ...; ]; ]
Changes since R3
TestReport | |
TestReport.status |
|
TestReport.result |
|
TestReport.participant.type |
|
TestReport.setup.action.operation.result |
|
TestReport.setup.action.assert.result |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
Structure
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
TestReport | TU | DomainResource | Describes the results of a TestScript execution Elements defined in Ancestors: id, meta, implicitRules, language, text, contained, extension, modifierExtension | |
identifier | Σ | 0..1 | Identifier | External identifier |
name | Σ | 0..1 | string | Informal name of the executed TestScript |
status | ?!Σ | 1..1 | code | completed | in-progress | waiting | stopped | entered-in-error TestReportStatus (Required) |
testScript | Σ | 1..1 | Reference(TestScript) | Reference to the version-specific TestScript that was executed to produce this TestReport |
result | Σ | 1..1 | code | pass | fail | pending TestReportResult (Required) |
score | Σ | 0..1 | decimal | The final score (percentage of tests passed) resulting from the execution of the TestScript |
tester | Σ | 0..1 | string | Name of the tester producing this report (Organization or individual) |
issued | Σ | 0..1 | dateTime | When the TestScript was executed and this TestReport was generated |
participant | 0..* | BackboneElement | A participant in the test execution, either the execution engine, a client, or a server | |
type | 1..1 | code | test-engine | client | server TestReportParticipantType (Required) | |
uri | 1..1 | uri | The uri of the participant. An absolute URL is preferred | |
display | 0..1 | string | The display name of the participant | |
setup | 0..1 | BackboneElement | The results of the series of required setup operations before the tests were executed | |
action | I | 1..* | BackboneElement | A setup operation or assert that was executed + Rule: Setup action SHALL contain either an operation or assert but not both. |
operation | 0..1 | BackboneElement | The operation to perform | |
result | 1..1 | code | pass | skip | fail | warning | error TestReportActionResult (Required) | |
message | 0..1 | markdown | A message associated with the result | |
detail | 0..1 | uri | A link to further details on the result | |
assert | 0..1 | BackboneElement | The assertion to perform | |
result | 1..1 | code | pass | skip | fail | warning | error TestReportActionResult (Required) | |
message | 0..1 | markdown | A message associated with the result | |
detail | 0..1 | string | A link to further details on the result | |
test | 0..* | BackboneElement | A test executed from the test script | |
name | 0..1 | string | Tracking/logging name of this test | |
description | 0..1 | string | Tracking/reporting short description of the test | |
action | I | 1..* | BackboneElement | A test operation or assert that was performed + Rule: Test action SHALL contain either an operation or assert but not both. |
operation | 0..1 | see operation | The operation performed | |
assert | 0..1 | see assert | The assertion performed | |
teardown | 0..1 | BackboneElement | The results of running the series of required clean up steps | |
action | 1..* | BackboneElement | One or more teardown operations performed | |
operation | 1..1 | see operation | The teardown operation performed | |
Documentation for this format |
XML Template
<TestReport xmlns="http://hl7.org/fhir"> <!-- from Resource: id, meta, implicitRules, and language --> <!-- from DomainResource: text, contained, extension, and modifierExtension --> <identifier><!-- 0..1 Identifier External identifier --></identifier> <name value="[string]"/><!-- 0..1 Informal name of the executed TestScript --> <status value="[code]"/><!-- 1..1 completed | in-progress | waiting | stopped | entered-in-error --> <testScript><!-- 1..1 Reference(TestScript) Reference to the version-specific TestScript that was executed to produce this TestReport --></testScript> <result value="[code]"/><!-- 1..1 pass | fail | pending --> <score value="[decimal]"/><!-- 0..1 The final score (percentage of tests passed) resulting from the execution of the TestScript --> <tester value="[string]"/><!-- 0..1 Name of the tester producing this report (Organization or individual) --> <issued value="[dateTime]"/><!-- 0..1 When the TestScript was executed and this TestReport was generated --> <participant> <!-- 0..* A participant in the test execution, either the execution engine, a client, or a server --> <type value="[code]"/><!-- 1..1 test-engine | client | server --> <uri value="[uri]"/><!-- 1..1 The uri of the participant. An absolute URL is preferred --> <display value="[string]"/><!-- 0..1 The display name of the participant --> </participant> <setup> <!-- 0..1 The results of the series of required setup operations before the tests were executed --> <action> <!-- 1..* A setup operation or assert that was executed --> <operation> <!-- 0..1 The operation to perform --> <result value="[code]"/><!-- 1..1 pass | skip | fail | warning | error --> <message value="[markdown]"/><!-- 0..1 A message associated with the result --> <detail value="[uri]"/><!-- 0..1 A link to further details on the result --> </operation> <assert> <!-- 0..1 The assertion to perform --> <result value="[code]"/><!-- 1..1 pass | skip | fail | warning | error --> <message value="[markdown]"/><!-- 0..1 A message associated with the result --> <detail value="[string]"/><!-- 0..1 A link to further details on the result --> </assert> </action> </setup> <test> <!-- 0..* A test executed from the test script --> <name value="[string]"/><!-- 0..1 Tracking/logging name of this test --> <description value="[string]"/><!-- 0..1 Tracking/reporting short description of the test --> <action> <!-- 1..* A test operation or assert that was performed --> <operation><!-- 0..1 Content as for TestReport.setup.action.operation The operation performed --></operation> <assert><!-- 0..1 Content as for TestReport.setup.action.assert The assertion performed --></assert> </action> </test> <teardown> <!-- 0..1 The results of running the series of required clean up steps --> <action> <!-- 1..* One or more teardown operations performed --> <operation><!-- 1..1 Content as for TestReport.setup.action.operation The teardown operation performed --></operation> </action> </teardown> </TestReport>
JSON Template
{ "resourceType" : "TestReport", // from Resource: id, meta, implicitRules, and language // from DomainResource: text, contained, extension, and modifierExtension "identifier" : { Identifier }, // External identifier "name" : "<string>", // Informal name of the executed TestScript "status" : "<code>", // R! completed | in-progress | waiting | stopped | entered-in-error "testScript" : { Reference(TestScript) }, // R! Reference to the version-specific TestScript that was executed to produce this TestReport "result" : "<code>", // R! pass | fail | pending "score" : <decimal>, // The final score (percentage of tests passed) resulting from the execution of the TestScript "tester" : "<string>", // Name of the tester producing this report (Organization or individual) "issued" : "<dateTime>", // When the TestScript was executed and this TestReport was generated "participant" : [{ // A participant in the test execution, either the execution engine, a client, or a server "type" : "<code>", // R! test-engine | client | server "uri" : "<uri>", // R! The uri of the participant. An absolute URL is preferred "display" : "<string>" // The display name of the participant }], "setup" : { // The results of the series of required setup operations before the tests were executed "action" : [{ // R! A setup operation or assert that was executed "operation" : { // The operation to perform "result" : "<code>", // R! pass | skip | fail | warning | error "message" : "<markdown>", // A message associated with the result "detail" : "<uri>" // A link to further details on the result }, "assert" : { // The assertion to perform "result" : "<code>", // R! pass | skip | fail | warning | error "message" : "<markdown>", // A message associated with the result "detail" : "<string>" // A link to further details on the result } }] }, "test" : [{ // A test executed from the test script "name" : "<string>", // Tracking/logging name of this test "description" : "<string>", // Tracking/reporting short description of the test "action" : [{ // R! A test operation or assert that was performed "operation" : { Content as for TestReport.setup.action.operation }, // The operation performed "assert" : { Content as for TestReport.setup.action.assert } // The assertion performed }] }], "teardown" : { // The results of running the series of required clean up steps "action" : [{ // R! One or more teardown operations performed "operation" : { Content as for TestReport.setup.action.operation } // R! The teardown operation performed }] } }
Turtle Template
@prefix fhir: <http://hl7.org/fhir/> . [ a fhir:TestReport; fhir:nodeRole fhir:treeRoot; # if this is the parser root # from Resource: .id, .meta, .implicitRules, and .language # from DomainResource: .text, .contained, .extension, and .modifierExtension fhir:TestReport.identifier [ Identifier ]; # 0..1 External identifier fhir:TestReport.name [ string ]; # 0..1 Informal name of the executed TestScript fhir:TestReport.status [ code ]; # 1..1 completed | in-progress | waiting | stopped | entered-in-error fhir:TestReport.testScript [ Reference(TestScript) ]; # 1..1 Reference to the version-specific TestScript that was executed to produce this TestReport fhir:TestReport.result [ code ]; # 1..1 pass | fail | pending fhir:TestReport.score [ decimal ]; # 0..1 The final score (percentage of tests passed) resulting from the execution of the TestScript fhir:TestReport.tester [ string ]; # 0..1 Name of the tester producing this report (Organization or individual) fhir:TestReport.issued [ dateTime ]; # 0..1 When the TestScript was executed and this TestReport was generated fhir:TestReport.participant [ # 0..* A participant in the test execution, either the execution engine, a client, or a server fhir:TestReport.participant.type [ code ]; # 1..1 test-engine | client | server fhir:TestReport.participant.uri [ uri ]; # 1..1 The uri of the participant. An absolute URL is preferred fhir:TestReport.participant.display [ string ]; # 0..1 The display name of the participant ], ...; fhir:TestReport.setup [ # 0..1 The results of the series of required setup operations before the tests were executed fhir:TestReport.setup.action [ # 1..* A setup operation or assert that was executed fhir:TestReport.setup.action.operation [ # 0..1 The operation to perform fhir:TestReport.setup.action.operation.result [ code ]; # 1..1 pass | skip | fail | warning | error fhir:TestReport.setup.action.operation.message [ markdown ]; # 0..1 A message associated with the result fhir:TestReport.setup.action.operation.detail [ uri ]; # 0..1 A link to further details on the result ]; fhir:TestReport.setup.action.assert [ # 0..1 The assertion to perform fhir:TestReport.setup.action.assert.result [ code ]; # 1..1 pass | skip | fail | warning | error fhir:TestReport.setup.action.assert.message [ markdown ]; # 0..1 A message associated with the result fhir:TestReport.setup.action.assert.detail [ string ]; # 0..1 A link to further details on the result ]; ], ...; ]; fhir:TestReport.test [ # 0..* A test executed from the test script fhir:TestReport.test.name [ string ]; # 0..1 Tracking/logging name of this test fhir:TestReport.test.description [ string ]; # 0..1 Tracking/reporting short description of the test fhir:TestReport.test.action [ # 1..* A test operation or assert that was performed fhir:TestReport.test.action.operation [ See TestReport.setup.action.operation ]; # 0..1 The operation performed fhir:TestReport.test.action.assert [ See TestReport.setup.action.assert ]; # 0..1 The assertion performed ], ...; ], ...; fhir:TestReport.teardown [ # 0..1 The results of running the series of required clean up steps fhir:TestReport.teardown.action [ # 1..* One or more teardown operations performed fhir:TestReport.teardown.action.operation [ See TestReport.setup.action.operation ]; # 1..1 The teardown operation performed ], ...; ]; ]
Changes since Release 3
TestReport | |
TestReport.status |
|
TestReport.result |
|
TestReport.participant.type |
|
TestReport.setup.action.operation.result |
|
TestReport.setup.action.assert.result |
|
See the Full Difference for further information
This analysis is available as XML or JSON.
See R3 <--> R4 Conversion Maps (status = 1 test that all execute ok. All tests pass round-trip testing and all r3 resources are valid.)
See the Profiles & Extensions and the alternate definitions: Master Definition XML + JSON, XML Schema/Schematron + JSON Schema, ShEx (for Turtle) + see the extensions & the dependency analysis
Path | Definition | Type | Reference |
---|---|---|---|
TestReport.status | The current status of the test report. | Required | TestReportStatus |
TestReport.result | The reported execution result. | Required | TestReportResult |
TestReport.participant.type | The type of participant. | Required | TestReportParticipantType |
TestReport.setup.action.operation.result TestReport.setup.action.assert.result | The results of executing an action. | Required | TestReportActionResult |
id | Level | Location | Description | Expression |
inv-1 | Rule | TestReport.setup.action | Setup action SHALL contain either an operation or assert but not both. | operation.exists() xor assert.exists() |
inv-2 | Rule | TestReport.test.action | Test action SHALL contain either an operation or assert but not both. | operation.exists() xor assert.exists() |
Please refer to the Testing FHIR - How Tos for examples on working with this resource.
Search parameters for this resource. The common parameters also apply. See Searching for more information about searching in REST, messaging, and services.
Name | Type | Description | Expression | In Common |
identifier | token | An external identifier for the test report | TestReport.identifier | |
issued | date | The test report generation date | TestReport.issued | |
participant | uri | The reference to a participant in the test execution | TestReport.participant.uri | |
result | token | The result disposition of the test execution | TestReport.result | |
tester | string | The name of the testing organization | TestReport.tester | |
testscript | reference | The test script executed to produce this report | TestReport.testScript (TestScript) |