Skip to content

Task Note (one conversation turn) Profile

Canonical../StructureDefinition/nexus-emr-task-note
Statusdraft · 1.26.0
BaseAnnotation (constraint)
SourceFSH · JSON

One turn in a task's conversation: who said it, when, and what they said. Both people and machine actors (harness graphs, decision-support rules) author turns. Because R4 does not permit Device as an Annotation.author target and a profile cannot widen it, a machine-authored turn is an identifier-only logical reference under the nexus-harness-graph or nexus-cds-rule NamingSystem, carrying a display and no literal reference; the identifier's system is what says the author is a graph. Human authors use the element normally.

Invariants

Every rule in force on a conforming instance. This profile rows are stated here; inherited rows come from the base resource and are listed so that a constraint named on an element is findable. Invariant keys elsewhere on this page link into this table.

Key Source Severity On Rule
nexus-note-agent-author this profile error Annotation A turn authored by a machine actor SHALL be an identifier-only logical reference: author.identifier under the nexus-harness-graph or nexus-cds-rule NamingSystem, carrying a display and NO literal reference. Device is not an allowed target of Annotation.author in R4, so the identifier system carries the identity; Reference.type is omitted deliberately rather than asserting a target the element does not permit.
author.ofType(Reference).identifier.where(system = '../NamingSystem/nexus-harness-graph' or system = '../NamingSystem/nexus-cds-rule').exists() implies (author.ofType(Reference).reference.empty() and author.ofType(Reference).type.empty() and author.ofType(Reference).display.exists() and author.ofType(Reference).identifier.value.exists())
ele-1 inherited error Annotation All FHIR elements must have a @value or children
hasValue() or (children().count() > id.count())
ext-1 inherited error Annotation.extension Must have either extensions or value[x], not both
extension.exists() != value.exists()