Composition Profile¶
| Canonical | ../StructureDefinition/nexus-emr-core-composition |
|---|---|
| Status | draft · 1.26.0 |
| Base | Composition (constraint) |
| Source | FSH · JSON |
Nexus EMR profile for an AUTHORED clinical note -- principally the encounter note (progress note, consult note, telephone note) written by an EMR user or drafted by an AI scribe and attested by a clinician.
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 |
|---|---|---|---|---|
composition-has-narrative |
this profile | warning | Composition |
SHOULD carry readable narrative -- at least one section with text, or a resource-level text. A note with no body renders as a blank chart entry rather than a visible errorsection.where(text.exists()).exists() or text.exists() |
composition-signed-has-attester |
this profile | error | Composition |
A note or letter with status final or amended SHALL identify who signed it -- attester with mode legal or professional. Generated summaries are exempt: nothing attests to a machine-generated summary, and naming an attester who never attested would fabricate a medico-legal signature. A summary is one whose type carries LOINC 34133-9. category is not consulted, so a note cannot buy the exemption by acquiring a refinement, and a converted summary must be remapped to say 34133-9 on type rather than carrying a source constant there.(status = 'final' or status = 'amended') implies (type.coding.where(system = 'http://loinc.org' and code = '34133-9').exists() or attester.where(mode = 'legal' or mode = 'professional').exists()) |
cmp-1 |
inherited | error | Composition.section |
A section must contain at least one of text, entries, or sub-sectionstext.exists() or entry.exists() or section.exists() |
cmp-2 |
inherited | error | Composition.section |
A section can only have an emptyReason if it is emptyemptyReason.empty() or entry.empty() |
dom-2 |
inherited | error | Composition |
If the resource is contained in another resource, it SHALL NOT contain nested Resourcescontained.contained.empty() |
dom-3 |
inherited | error | Composition |
If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resourcecontained.where((('#'+id in (%resource.descendants().reference |
dom-4 |
inherited | error | Composition |
If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdatedcontained.meta.versionId.empty() and contained.meta.lastUpdated.empty() |
dom-5 |
inherited | error | Composition |
If a resource is contained in another resource, it SHALL NOT have a security labelcontained.meta.security.empty() |
dom-6 |
inherited | warning | Composition |
A resource should have narrative for robust managementtext. |
ele-1 |
inherited | error | Composition.meta |
All FHIR elements must have a @value or childrenhasValue() or (children().count() > id.count()) |
ext-1 |
inherited | error | Composition.meta.extension |
Must have either extensions or value[x], not bothextension.exists() != value.exists() |
txt-1 |
inherited | error | Composition.section.text.div |
The narrative SHALL contain only the basic html formatting elements and attributes described in chapters 7-11 (except section 4 of chapter 9) and 15 of the HTML 4.0 standard, elements (either name or href), images and internally contained style attributeshtmlChecks() |
txt-2 |
inherited | error | Composition.section.text.div |
The narrative SHALL have some non-whitespace contenthtmlChecks() |