Profiles & Operations Index > Profile: OperationOutcome

Profile: OperationOutcome

This profile leverages the base EHR project’s OperationOutcome resource to provide standardized error and warning messages without introducing additional constraints.

EHR Simplifier project page: OperationOutcome EHR

Derived from: OperationOutcome (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

Differential View

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
severityS Σ1..1codeBinding
codeS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
diagnosticsS Σ0..1string
locationΣ0..*string
expressionS Σ0..*string

Hybrid View

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
severityS Σ1..1codeBinding
codeS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
diagnosticsS Σ0..1string
locationΣ0..*string
expressionS Σ0..*string

Snapshot View

idΣ0..1id
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionC0..*Extension
modifierExtension?! C0..*Extension
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
severityS Σ1..1codeBinding
codeS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
diagnosticsS Σ0..1string
locationΣ0..*string
expressionS Σ0..*string

Table View

OperationOutcome..
OperationOutcome.issue..
OperationOutcome.issue.severity..
OperationOutcome.issue.code..
OperationOutcome.issue.details..
OperationOutcome.issue.details.coding..1
OperationOutcome.issue.details.coding.system..
OperationOutcome.issue.details.coding.code..
OperationOutcome.issue.details.coding.display..
OperationOutcome.issue.diagnostics..
OperationOutcome.issue.expression..

JSON View

{
"resourceType": "StructureDefinition",
"id": "OperationOutcome",
"url": "http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-operationOutcome",
"version": "1.0.0",
"name": "OperationOutcomeEHR",
"title": "OperationOutcome EHR",
"status": "active",
"description": "Operation Outcomes are sets of error, warning and information messages that provide detailed information about the outcome of some attempted system operation. They are provided as a direct system response, or component of one, where they provide information about the outcome of the operation.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "OperationOutcome",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/OperationOutcome",
"derivation": "constraint",
"element": [
{
"id": "OperationOutcome.issue",
"path": "OperationOutcome.issue",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.severity",
"path": "OperationOutcome.issue.severity",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.code",
"path": "OperationOutcome.issue.code",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.details",
"path": "OperationOutcome.issue.details",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.details.coding",
"path": "OperationOutcome.issue.details.coding",
"max": "1",
"mustSupport": true,
"binding": {
"strength": "extensible",
"valueSet": "http://ontariohealth.ca/fhir/ehr/ValueSet/error-code"
}
},
{
"id": "OperationOutcome.issue.details.coding.system",
"path": "OperationOutcome.issue.details.coding.system",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.details.coding.code",
"path": "OperationOutcome.issue.details.coding.code",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.details.coding.display",
"path": "OperationOutcome.issue.details.coding.display",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.diagnostics",
"path": "OperationOutcome.issue.diagnostics",
"mustSupport": true
},
{
"id": "OperationOutcome.issue.expression",
"path": "OperationOutcome.issue.expression",
"mustSupport": true
}
]
}
}

Note:

Operation Outcomes are sets of error, warning and information messages that provide detailed information about the outcome of some attempted system operation. They are provided as a direct system response, or component of one, where they provide information about the outcome of the operation.

OperationOutcomes are used in the following circumstances:

  • When a RESTful operation fails
  • As the response on a validation operation, to provide information about the outcomes
  • As part of a message response, usually when the message has not been processed correctly

Using Operation Outcome Resources

On the RESTful interface, operation outcome resources are only relevant when a level of computable detail is required that is more granular than that provided by the HTTP response codes. This granularity could include:

  • more detail about the location of an issue
  • the ability to identify multiple distinct issues
  • provision of finer error codes that connect to known business failure states

Reporting Errors in the HTTP Headers

Server may also need to report errors in the HTTP headers - especially query parameters when processing searches. Errors are reported using a case sensitive location that has two parts, a fixed "http" and the header or query parameter name separated by a ".". Some examples:

HTTP Header Parameters.

Location Description
http.name:exact A reference to the search parameter "name" with the modifier ":exact"
http.Authorization A reference to the Authorization header - perhaps to indicate that it is missing, and some form of authentication is required.