HL7 FHIR® Implementation Guide: Ophthalmology Retinal, Release 1
0.1.0 - STU 1 Ballot

HL7 FHIR® Implementation Guide: Ophthalmology Retinal, Release 1, published by HL7 International - Patient Care WG. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/HL7/fhir-eyecare-ig/ and changes regularly. See the Directory of published versions

## Resource Profile: VF Diagnostic Report

Defining URL: | http://hl7.org/fhir/uv/eyecare/StructureDefinition/diagnostic-report-visual-field
Version: | 0.1.0
Name: | OphthalDiagnosticReportForVisualField
Title: | VF Diagnostic Report
Status: | Draft as of 2022-06-24 01:58:09+0000
Definition: | The DiagnosticReport profile for a visual field DT
Publisher: | HL7 International - Patient Care WG
Source Resource: | XML / JSON / Turtle

The official URL for this profile is:

    http://hl7.org/fhir/uv/eyecare/StructureDefinition/diagnostic-report-visual-field

### Formal Views of Profile Content

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

- Text Summary
- Differential Table
- Snapshot Table
- Snapshot Table (Must Support)
- All

This structure is derived from OphthalDiagnosticReport

Summary

Mandatory: 4 elements
Must-Support: 5 elements
Fixed Value: 2 elements

Structures

This structure refers to these other structures:

- VF Observations (http://hl7.org/fhir/uv/eyecare/StructureDefinition/observation-visual-field)

Slices

This structure defines the following Slices:

- The element DiagnosticReport.code.coding is sliced based on the values of value:code, value:system

This structure is derived from OphthalDiagnosticReport

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
DiagnosticReport |  | 0..* | OphthalDiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
code | S | 1..1 | CodeableConcept | Name/Code for this diagnostic report
Slices for coding |  | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:vfCode | S | 1..1 | Coding | Code defined by a terminology system
system | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 103752008
result | S | 0..* | Reference(Observation | VF Observations) | Observations
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
DiagnosticReport |  | 0..* | OphthalDiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
id | Σ | 0..1 | string | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business identifier for report
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | What was requested
status | ?!Σ | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
category | S Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | S Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:ophthalCode | Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 394594003
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
code | S Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:vfCode | S Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | S Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version | Σ | 0..1 | string | Version of the system - if relevant
code | S Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 103752008
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | The subject of the report - usually, but not always, the patient
encounter | Σ | 0..1 | Reference(Encounter) | Health care event when test ordered
effective[x] | Σ | 0..1 |  | Clinically relevant time/time-period for report
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | DateTime this version was made
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Responsible Diagnostic Service
resultsInterpreter | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Primary result interpreter
specimen |  | 0..* | Reference(Specimen) | Specimens this report is based on
result | S | 0..* | Reference(Observation | VF Observations) | Observations
imagingStudy |  | 0..* | Reference(ImagingStudy) | Reference to full details of imaging associated with the diagnostic report
media | Σ | 0..* | BackboneElement | Key images associated with this report
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
comment |  | 0..1 | string | Comment about the image (e.g. explanation)
link | Σ | 1..1 | Reference(Media) | Reference to the image source
conclusion |  | 0..1 | string | Clinical conclusion (interpretation) of test results
conclusionCode |  | 0..* | CodeableConcept | Codes for the clinical conclusion of test results Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
presentedForm |  | 0..* | Attachment | Entire report as issued
Documentation for this format

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
DiagnosticReport |  | 0..* | OphthalDiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
category | Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
coding | Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
code | Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.
coding:vfCode | Σ | 1..1 | Coding | Code defined by a terminology system
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code | Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 103752008
result |  | 0..* | Reference(Observation | VF Observations) | Observations
Documentation for this format

This structure is derived from OphthalDiagnosticReport

Summary

Mandatory: 4 elements
Must-Support: 5 elements
Fixed Value: 2 elements

Structures

This structure refers to these other structures:

- VF Observations (http://hl7.org/fhir/uv/eyecare/StructureDefinition/observation-visual-field)

Slices

This structure defines the following Slices:

- The element DiagnosticReport.code.coding is sliced based on the values of value:code, value:system

Differential View

This structure is derived from OphthalDiagnosticReport

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
DiagnosticReport |  | 0..* | OphthalDiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
code | S | 1..1 | CodeableConcept | Name/Code for this diagnostic report
Slices for coding |  | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:vfCode | S | 1..1 | Coding | Code defined by a terminology system
system | S | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
code | S | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 103752008
result | S | 0..* | Reference(Observation | VF Observations) | Observations
Documentation for this format

Snapshot View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
DiagnosticReport |  | 0..* | OphthalDiagnosticReport | A Diagnostic report - a combination of request information, atomic results, images, interpretation, as well as formatted reports
id | Σ | 0..1 | string | Logical id of this artifact
meta | Σ | 0..1 | Meta | Metadata about the resource
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created
language |  | 0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
Additional Bindings | Purpose
AllLanguages | Max Binding
text |  | 0..1 | Narrative | Text summary of the resource, for human interpretation
contained |  | 0..* | Resource | Contained, inline Resources
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | Business identifier for report
basedOn |  | 0..* | Reference(CarePlan | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | What was requested
status | ?!Σ | 1..1 | code | registered | partial | preliminary | final + Binding: DiagnosticReportStatus (required): The status of the diagnostic report.
category | S Σ | 1..* | CodeableConcept | Service category Binding: DiagnosticServiceSectionCodes (example): Codes for diagnostic service sections.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | S Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:ophthalCode | Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version | Σ | 0..1 | string | Version of the system - if relevant
code | Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 394594003
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
code | S Σ | 1..1 | CodeableConcept | Name/Code for this diagnostic report Binding: LOINCDiagnosticReportCodes (preferred): Codes that describe Diagnostic Reports.
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
Slices for coding | Σ | 1..* | Coding | Code defined by a terminology system Slice: Unordered, Open by value:code, value:system
coding:vfCode | S Σ | 1..1 | Coding | Code defined by a terminology system
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
system | S Σ | 1..1 | uri | Identity of the terminology system Fixed Value: http://snomed.info/sct
version | Σ | 0..1 | string | Version of the system - if relevant
code | S Σ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: 103752008
display | Σ | 0..1 | string | Representation defined by the system
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user
text | Σ | 0..1 | string | Plain text representation of the concept
subject | Σ | 0..1 | Reference(Patient | Group | Device | Location) | The subject of the report - usually, but not always, the patient
encounter | Σ | 0..1 | Reference(Encounter) | Health care event when test ordered
effective[x] | Σ | 0..1 |  | Clinically relevant time/time-period for report
effectiveDateTime |  |  | dateTime |
effectivePeriod |  |  | Period |
issued | Σ | 0..1 | instant | DateTime this version was made
performer | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Responsible Diagnostic Service
resultsInterpreter | Σ | 0..* | Reference(Practitioner | PractitionerRole | Organization | CareTeam) | Primary result interpreter
specimen |  | 0..* | Reference(Specimen) | Specimens this report is based on
result | S | 0..* | Reference(Observation | VF Observations) | Observations
imagingStudy |  | 0..* | Reference(ImagingStudy) | Reference to full details of imaging associated with the diagnostic report
media | Σ | 0..* | BackboneElement | Key images associated with this report
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized
comment |  | 0..1 | string | Comment about the image (e.g. explanation)
link | Σ | 1..1 | Reference(Media) | Reference to the image source
conclusion |  | 0..1 | string | Clinical conclusion (interpretation) of test results
conclusionCode |  | 0..* | CodeableConcept | Codes for the clinical conclusion of test results Binding: SNOMEDCTClinicalFindings (example): Diagnosis codes provided as adjuncts to the report.
presentedForm |  | 0..* | Attachment | Entire report as issued
Documentation for this format

Other representations of profile: CSV, Excel, Schematron

#### Terminology Bindings

Path | Conformance | ValueSet
DiagnosticReport.language | preferred | CommonLanguages Max Binding: AllLanguages
DiagnosticReport.status | required | DiagnosticReportStatus
DiagnosticReport.category | example | DiagnosticServiceSectionCodes
DiagnosticReport.code | preferred | LOINCDiagnosticReportCodes
DiagnosticReport.conclusionCode | example | SNOMEDCTClinicalFindings

#### Constraints

Id | Grade | Path | Details | Requirements
dom-2 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() |
dom-3 | error | DiagnosticReport | If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource : contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty() |
dom-4 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated : contained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 | error | DiagnosticReport | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() |
dom-6 | Best Practice | DiagnosticReport | A resource should have narrative for robust management : text.`div`.exists() |
ele-1 | error | DiagnosticReport.meta | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.implicitRules | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.language | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.identifier | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.basedOn | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.status | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.category.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.category.coding | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.category.coding:ophthalCode.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.system | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.version | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.display | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.coding:ophthalCode.userSelected | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.category.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.code.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.code.coding | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.code.coding:vfCode.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.code.coding:vfCode.system | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode.version | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode.code | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode.display | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.coding:vfCode.userSelected | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.code.text | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.subject | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.encounter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.effective[x] | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.issued | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.performer | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.resultsInterpreter | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.specimen | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.result | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.imagingStudy | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.media | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.media.extension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.media.extension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.media.modifierExtension | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ext-1 | error | DiagnosticReport.media.modifierExtension | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
ele-1 | error | DiagnosticReport.media.comment | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.media.link | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.conclusion | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.conclusionCode | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |
ele-1 | error | DiagnosticReport.presentedForm | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) |