HRSA 2024 Uniform Data System (UDS) Patient Level Submission (PLS) (UDS+) FHIR IG
2.0.0 - STU2 Release 1 - Standard for Trial-Use International flag

HRSA 2024 Uniform Data System (UDS) Patient Level Submission (PLS) (UDS+) FHIR IG, published by HRSA BPHC. This guide is not an authorized publication; it is the continuous build for version 2.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/drajer-health/uds-plus/ and changes regularly. See the Directory of published versions

Resource Profile: De-Identified UDS Plus Procedure

Official URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-procedure Version: 2.0.0
Standards status: Trial-use Maturity Level: 2 Computable Name: UDSPlusProcedure

The UDS+ profile is based on the Procedure resource and establishes the core elements, extensions, vocabularies and value sets for representing procedures for UDS+ program.

Introduction

This profile is used to represent de-identified Procedure information. The de-identification process has to remove all data elements not explicitly identified as "SUPPORTED" in the profile.

The HHS De-identification Guidance is to be followed to ensure appropriate level of de-identification is performed.

According to the HHS guidance, dates should not have a precision of more than the year. This means month and day cannot be included. This includes Procedure.occurenceDateTime.

In FHIR Resources, text elements and reference.display elements which provide human readable information to the providers may be generated using programs and tools from the data present within the resource. For e.g a Procedure resource text element may contain information such as the Procedure date, patient information. This type of information will enable identification of the individuals. In order to avoid inadvertent revealing of PII/PHI, text elements cannot be included in the De-identified FHIR resource and the submission will be rejected when text elements are present by the validation process.

Ids and References

The original Procedure resource id should not be included in the De-identified Procedure instance. Instead a new id should be created and provided as part of the FHIR resource. The Data Submitter should be capable of using the generated id to relink the data to the original Procedure. All resource references to the Procedure submitted as part of the UDS+ report should refer to newly generated id.

Resource references cannot contain text element as it may contain PHI/PII. The text element for following references are not allowed

  • subject
  • encounter

Date Truncation

The Data Submitter has to truncate the following dates to only have a precision of year

  • performedDateTime
  • extension.recordedDate

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.Slices for extension Content/Rules for all slices
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.statusReason This element must be supported. This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
Procedure.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.performed[x] This element must be supported. This element is included in summaries. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.performer This element must be supported. This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.bodySite This element must be supported. This element is included in summaries. 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍4.0.1 FHIR Std.
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1
Procedure.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.text 0..0 Cannot include any text in the resource as part of the de-identified data.
Procedure.contained 0..0 Cannot include any contained resources in the resource as part of the de-identified data.
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.status This element must be supported. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Procedure.statusReason This element must be supported. 0..1 CodeableConcept Reason for current status
Procedure.code This element must be supported. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.subject.display 0..0 Text alternative for the resource
Procedure.encounter This element must be supported. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.encounter.display 0..0 Text alternative for the resource
Procedure.performed[x] This element must be supported. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.recorder
Procedure.recorder.display 0..0 Text alternative for the resource
Procedure.asserter
Procedure.asserter.display 0..0 Text alternative for the resource
Procedure.performer This element must be supported. 0..* BackboneElement The people who performed the procedure
Procedure.performer.actor
Procedure.performer.actor.display 0..0 Text alternative for the resource
Procedure.bodySite This element must be supported. 0..* CodeableConcept Target body sites
Procedure.note 0..0 Additional information about the procedure

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'
NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier External Identifiers for this procedure
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
Procedure.instantiatesUri This element is included in summaries. 0..* uri Instantiates external protocol or definition
Procedure.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) A request for this procedure
Procedure.partOf This element is included in summaries. 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
Procedure.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.statusReason This element must be supported. This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
Procedure.category This element is included in summaries. 0..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.subject.id 0..1 string Unique id for inter-element referencing
Procedure.subject.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.subject.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.subject.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.subject.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.encounter.id 0..1 string Unique id for inter-element referencing
Procedure.encounter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.encounter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.encounter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.encounter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performed[x] This element must be supported. This element is included in summaries. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.recorder This element is included in summaries. 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
Procedure.recorder.id 0..1 string Unique id for inter-element referencing
Procedure.recorder.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.recorder.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.recorder.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.recorder.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.asserter This element is included in summaries. 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Person who asserts this procedure
Procedure.asserter.id 0..1 string Unique id for inter-element referencing
Procedure.asserter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.asserter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.asserter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.asserter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performer This element must be supported. This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.id 0..1 string Unique id for inter-element referencing
Procedure.performer.extension 0..* Extension Additional content defined by implementations
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.performer.actor.id 0..1 string Unique id for inter-element referencing
Procedure.performer.actor.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.performer.actor.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.performer.actor.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.performer.actor.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performer.onBehalfOf 0..1 Reference(Organization) Organization the device or practitioner was acting for
Procedure.location This element is included in summaries. 0..1 Reference(Location) Where the procedure happened
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Procedure.bodySite This element must be supported. This element is included in summaries. 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Procedure.outcome This element is included in summaries. 0..1 CodeableConcept The result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
Procedure.report 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
Procedure.complication 0..* CodeableConcept Complication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
Procedure.complicationDetail 0..* Reference(Condition) A condition that is a result of the procedure
Procedure.followUp 0..* CodeableConcept Instructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
Procedure.focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
Procedure.focalDevice.id 0..1 string Unique id for inter-element referencing
Procedure.focalDevice.extension 0..* Extension Additional content defined by implementations
Procedure.focalDevice.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.focalDevice.action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
Procedure.focalDevice.manipulated 1..1 Reference(Device) Device that was changed
Procedure.usedReference 0..* Reference(Device | Medication | Substance) Items used during procedure
Procedure.usedCode 0..* CodeableConcept Coded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1
Procedure.subject.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.encounter.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.recorder.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.asserter.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.performer.​function Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Procedure.performer.​actor.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Procedure.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.
Procedure.usedCode Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'

This structure is derived from Procedure

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.Slices for extension Content/Rules for all slices
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.statusReason This element must be supported. This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
Procedure.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.performed[x] This element must be supported. This element is included in summaries. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.performer This element must be supported. This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.bodySite This element must be supported. This element is included in summaries. 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍4.0.1 FHIR Std.
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1
Procedure.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'

Differential View

This structure is derived from Procedure

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.text 0..0 Cannot include any text in the resource as part of the de-identified data.
Procedure.contained 0..0 Cannot include any contained resources in the resource as part of the de-identified data.
Procedure.Slices for extension Content/Rules for all slices
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.status This element must be supported. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Procedure.statusReason This element must be supported. 0..1 CodeableConcept Reason for current status
Procedure.code This element must be supported. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.subject.display 0..0 Text alternative for the resource
Procedure.encounter This element must be supported. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.encounter.display 0..0 Text alternative for the resource
Procedure.performed[x] This element must be supported. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.recorder
Procedure.recorder.display 0..0 Text alternative for the resource
Procedure.asserter
Procedure.asserter.display 0..0 Text alternative for the resource
Procedure.performer This element must be supported. 0..* BackboneElement The people who performed the procedure
Procedure.performer.actor
Procedure.performer.actor.display 0..0 Text alternative for the resource
Procedure.bodySite This element must be supported. 0..* CodeableConcept Target body sites
Procedure.note 0..0 Additional information about the procedure

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1

Constraints

Id Grade Path(s) Description Expression
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
Procedure 0..* Procedure De-Identified UDS Plus Procedure
Procedure.id This element must be supported. This element is included in summaries. 0..1 id The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
Procedure.meta This element is included in summaries. 0..1 Meta Metadata about the resource
Procedure.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
Procedure.language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
Procedure.Slices for extension 0..* Extension Extension
Slice: Unordered, Open by value:url
Procedure.Slices for extension.extension:recordedDate This element must be supported. 0..1 dateTime Indicates the recorded date of a clinical event
URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
Procedure.modifierExtension This element is a modifier element. 0..* Extension Extensions that cannot be ignored
Procedure.identifier This element is included in summaries. 0..* Identifier External Identifiers for this procedure
Procedure.instantiatesCanonical This element is included in summaries. 0..* canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) Instantiates FHIR protocol or definition
Procedure.instantiatesUri This element is included in summaries. 0..* uri Instantiates external protocol or definition
Procedure.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest) A request for this procedure
Procedure.partOf This element is included in summaries. 0..* Reference(Procedure | Observation | MedicationAdministration) Part of referenced event
Procedure.status This element is a modifier element. This element must be supported. This element is included in summaries. 1..1 code preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
Binding: EventStatus (required): A code specifying the state of the procedure.
Procedure.statusReason This element must be supported. This element is included in summaries. 0..1 CodeableConcept Reason for current status
Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
Procedure.category This element is included in summaries. 0..1 CodeableConcept Classification of the procedure
Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
Procedure.code This element must be supported. This element is included in summaries. 1..1 CodeableConcept Identification of the procedure
Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
Procedure.subject This element must be supported. This element is included in summaries. 1..1 Reference(De-Identified UDS Plus Patient) Who the procedure was performed on
Procedure.subject.id 0..1 string Unique id for inter-element referencing
Procedure.subject.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.subject.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.subject.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.subject.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.encounter This element must be supported. This element is included in summaries. 0..1 Reference(De-Identified UDS Plus Encounter) Encounter created as part of
Procedure.encounter.id 0..1 string Unique id for inter-element referencing
Procedure.encounter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.encounter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.encounter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.encounter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performed[x] This element must be supported. This element is included in summaries. C 0..1 When the procedure was performed
Constraints: uds-plus-proc-1, uds-plus-proc-1a, uds-plus-proc-1b, uds-plus-proc-2, uds-plus-proc-2a, uds-plus-proc-2b, uds-plus-proc-3, uds-plus-proc-3a, uds-plus-proc-3b
Procedure.performed[x].performedDateTime dateTime This target must be supported.
Procedure.performed[x].performedPeriod Period
Procedure.performed[x].performedAge Age
Procedure.performed[x].performedString string
Procedure.performed[x].performedRange Range
Procedure.recorder This element is included in summaries. 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Who recorded the procedure
Procedure.recorder.id 0..1 string Unique id for inter-element referencing
Procedure.recorder.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.recorder.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.recorder.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.recorder.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.asserter This element is included in summaries. 0..1 Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) Person who asserts this procedure
Procedure.asserter.id 0..1 string Unique id for inter-element referencing
Procedure.asserter.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.asserter.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.asserter.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.asserter.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performer This element must be supported. This element is included in summaries. 0..* BackboneElement The people who performed the procedure
Procedure.performer.id 0..1 string Unique id for inter-element referencing
Procedure.performer.extension 0..* Extension Additional content defined by implementations
Procedure.performer.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.performer.function This element is included in summaries. 0..1 CodeableConcept Type of performance
Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
Procedure.performer.actor This element is included in summaries. 1..1 Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) The reference to the practitioner
Procedure.performer.actor.id 0..1 string Unique id for inter-element referencing
Procedure.performer.actor.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
Procedure.performer.actor.reference This element is included in summaries. C 0..1 string Literal reference, Relative, internal or absolute URL
Procedure.performer.actor.type This element is included in summaries. 0..1 uri Type the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).
Procedure.performer.actor.identifier This element is included in summaries. 0..1 Identifier Logical reference, when literal reference is not known
Procedure.performer.onBehalfOf 0..1 Reference(Organization) Organization the device or practitioner was acting for
Procedure.location This element is included in summaries. 0..1 Reference(Location) Where the procedure happened
Procedure.reasonCode This element is included in summaries. 0..* CodeableConcept Coded reason procedure performed
Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
Procedure.reasonReference This element is included in summaries. 0..* Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) The justification that the procedure was performed
Procedure.bodySite This element must be supported. This element is included in summaries. 0..* CodeableConcept Target body sites
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
Procedure.outcome This element is included in summaries. 0..1 CodeableConcept The result of procedure
Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
Procedure.report 0..* Reference(DiagnosticReport | DocumentReference | Composition) Any report resulting from the procedure
Procedure.complication 0..* CodeableConcept Complication following the procedure
Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
Procedure.complicationDetail 0..* Reference(Condition) A condition that is a result of the procedure
Procedure.followUp 0..* CodeableConcept Instructions for follow up
Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
Procedure.focalDevice 0..* BackboneElement Manipulated, implanted, or removed device
Procedure.focalDevice.id 0..1 string Unique id for inter-element referencing
Procedure.focalDevice.extension 0..* Extension Additional content defined by implementations
Procedure.focalDevice.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
Procedure.focalDevice.action 0..1 CodeableConcept Kind of change to device
Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
Procedure.focalDevice.manipulated 1..1 Reference(Device) Device that was changed
Procedure.usedReference 0..* Reference(Device | Medication | Substance) Items used during procedure
Procedure.usedCode 0..* CodeableConcept Coded items used during the procedure
Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Procedure.language Base preferred Common Languages 📍4.0.1 FHIR Std.
Procedure.status Base required EventStatus 📍4.0.1 FHIR Std.
Procedure.statusReason Base example Procedure Not Performed Reason (SNOMED-CT) 📍4.0.1 FHIR Std.
Procedure.category Base example Procedure Category Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.code Base extensible US Core Procedure Codes 📦6.1.0 US Core v6.1
Procedure.subject.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.encounter.​type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.recorder.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.asserter.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.performer.​function Base example Procedure Performer Role Codes 📍4.0.1 FHIR Std.
Procedure.performer.​actor.type Base extensible ResourceType 📍4.0.1 FHIR Std.
Procedure.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
Procedure.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.
Procedure.outcome Base example Procedure Outcome Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.complication Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.
Procedure.followUp Base example Procedure Follow up Codes (SNOMED CT) 📍4.0.1 FHIR Std.
Procedure.focalDevice.​action Base preferred Procedure Device Action Codes 📍4.0.1 FHIR Std.
Procedure.usedCode Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error Procedure If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Procedure 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 Procedure 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 Procedure If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Procedure A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
uds-plus-proc-1 error Procedure.performed[x] All dateTime data elements should be truncated to a year only for de-identified resources. $this is DateTime implies $this.toString().length() = 4
uds-plus-proc-1a error Procedure.performed[x] All dateTime data elements should have valid year > 1900 $this is DateTime implies $this.toString() >= '1900'
uds-plus-proc-1b error Procedure.performed[x] All dateTime data elements should have valid year < 2030 $this is DateTime implies $this.toString() <= '2030'
uds-plus-proc-2 error Procedure.performed[x] All Period.start data elements should be truncated to a year only for de-identified resources. $this is Period and Period.start.exists() implies $this.start.toString().length() = 4
uds-plus-proc-2a error Procedure.performed[x] All Period.start data elements should have valid year > 1900 $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'
uds-plus-proc-2b error Procedure.performed[x] All Period.start data elements should have valid year < 2030 $this is Period and Period.start.exists() implies $this.start.toString() <= '2030'
uds-plus-proc-3 error Procedure.performed[x] All Period.emd data elements should be truncated to a year only for de-identified resources. $this is Period and Period.end.exists() implies $this.end.toString().length() = 4
uds-plus-proc-3a error Procedure.performed[x] All Period.end data elements should have valid year > 1900 $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'
uds-plus-proc-3b error Procedure.performed[x] All Period.end data elements should have valid year < 2030 $this is Period and Period.end.exists() implies $this.end.toString() <= '2030'

This structure is derived from Procedure

 

Other representations of profile: CSV, Excel, Schematron