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

Publication Build: This will be filled in by the publication tooling

## 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

Usage:

- Examples for this Resource Profile: Procedure/de-identified-example

### Formal Views of Profile Content

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

- Key Elements Table
- Differential Table
- Snapshot Table
- Statistics/References
- All

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
id | S Σ | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  |  |  | Content/Rules for all slices
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!S Σ | 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. ele-1: All FHIR elements must have a @value or children
statusReason | S Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed. ele-1: All FHIR elements must have a @value or children
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures ele-1: All FHIR elements must have a @value or children
subject | S Σ | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on ele-1: All FHIR elements must have a @value or children
encounter | S Σ | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of ele-1: All FHIR elements must have a @value or children
performed[x] | S Σ C | 0..1 |  | When the procedure was performed ele-1: All FHIR elements must have a @value or children uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime |
performer | S Σ | 0..* | BackboneElement | The people who performed the procedure ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner ele-1: All FHIR elements must have a @value or children
bodySite | S Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` from the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason` from the FHIR Standard
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`
Procedure.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure
id | S | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
text |  | 0..0 |  |
contained |  | 0..0 |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
status | S | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
statusReason | S | 0..1 | CodeableConcept | Reason for current status
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
subject | S | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on
display |  | 0..0 |  |
encounter | S | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of
display |  | 0..0 |  |
performed[x] | S C | 0..1 |  | When the procedure was performed uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime S |
performedPeriod |  |  | Period |
performedAge |  |  | Age |
performedString |  |  | string |
performedRange |  |  | Range |
recorder |  |  |  |
display |  | 0..0 |  |
asserter |  |  |  |
display |  | 0..0 |  |
performer | S | 0..* | BackboneElement | The people who performed the procedure
actor |  |  |  |
display |  | 0..0 |  |
bodySite | S | 0..* | CodeableConcept | Target body sites
note |  | 0..0 |  |
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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' |

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure
id | S Σ | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest) | A request for this procedure
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event
status | ?!S Σ | 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.
statusReason | S Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
subject | S Σ | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
encounter | S Σ | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
performed[x] | S Σ C | 0..1 |  | When the procedure was performed uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime S |
performedPeriod |  |  | Period |
performedAge |  |  | Age |
performedString |  |  | string |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
performer | S Σ | 0..* | BackboneElement | The people who performed the procedure
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
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed
bodySite | S Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail |  | 0..* | Reference(Condition) | A condition that is a result of the procedure
followUp |  | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
focalDevice |  | 0..* | BackboneElement | Manipulated, implanted, or removed device
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
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(Device) | Device that was changed
usedReference |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Procedure.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` from the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason` from the FHIR Standard
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-category` from the FHIR Standard
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`
Procedure.subject.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.encounter.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.recorder.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.asserter.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.performer.function | example | ProcedurePerformerRoleCodes `http://hl7.org/fhir/ValueSet/performer-role` from the FHIR Standard
Procedure.performer.actor.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.reasonCode | example | ProcedureReasonCodes `http://hl7.org/fhir/ValueSet/procedure-reason` from the FHIR Standard
Procedure.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` from the FHIR Standard
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-outcome` from the FHIR Standard
Procedure.complication | example | Condition/Problem/DiagnosisCodes `http://hl7.org/fhir/ValueSet/condition-code` from the FHIR Standard
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-followup` from the FHIR Standard
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes `http://hl7.org/fhir/ValueSet/device-action` from the FHIR Standard
Procedure.usedCode | example | FHIRDeviceTypes `http://hl7.org/fhir/ValueSet/device-kind` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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

Summary

Mandatory: 3 elements
Must-Support: 10 elements
Prohibited: 8 elements

Structures

This structure refers to these other structures:

- De-Identified UDS Plus Patient (http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/de-identified-uds-plus-patient)
- De-Identified UDS Plus Encounter (http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-encounter)

Extensions

This structure refers to these extensions:

- http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension

Maturity: 2

Key Elements View

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: 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 dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management
id | S Σ | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children
Slices for extension |  |  |  | Content/Rules for all slices
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
status | ?!S Σ | 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. ele-1: All FHIR elements must have a @value or children
statusReason | S Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed. ele-1: All FHIR elements must have a @value or children
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures ele-1: All FHIR elements must have a @value or children
subject | S Σ | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on ele-1: All FHIR elements must have a @value or children
encounter | S Σ | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of ele-1: All FHIR elements must have a @value or children
performed[x] | S Σ C | 0..1 |  | When the procedure was performed ele-1: All FHIR elements must have a @value or children uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime |
performer | S Σ | 0..* | BackboneElement | The people who performed the procedure ele-1: All FHIR elements must have a @value or children
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner ele-1: All FHIR elements must have a @value or children
bodySite | S Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. ele-1: All FHIR elements must have a @value or children
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` from the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason` from the FHIR Standard
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`
Procedure.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure
id | S | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
text |  | 0..0 |  |
contained |  | 0..0 |  |
Slices for extension |  |  |  | Content/Rules for all slices
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
status | S | 1..1 | code | preparation | in-progress | not-done | on-hold | stopped | completed | entered-in-error | unknown
statusReason | S | 0..1 | CodeableConcept | Reason for current status
code | S | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
subject | S | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on
display |  | 0..0 |  |
encounter | S | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of
display |  | 0..0 |  |
performed[x] | S C | 0..1 |  | When the procedure was performed uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime S |
performedPeriod |  |  | Period |
performedAge |  |  | Age |
performedString |  |  | string |
performedRange |  |  | Range |
recorder |  |  |  |
display |  | 0..0 |  |
asserter |  |  |  |
display |  | 0..0 |  |
performer | S | 0..* | BackboneElement | The people who performed the procedure
actor |  |  |  |
display |  | 0..0 |  |
bodySite | S | 0..* | CodeableConcept | Target body sites
note |  | 0..0 |  |
Documentation for this format

#### Terminology Bindings (Differential)

Path | Conformance | ValueSet | URI
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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

Name | Flags | Card. | Type | Description & Constraints
--- | --- | --- | --- | ---
Procedure |  | 0..* | Procedure | De-Identified UDS Plus Procedure
id | S Σ | 0..1 | id | The de-identified Procedure identifier created by the health center to send data to UDS+ Data Receiver
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
Slices for extension |  | 0..* | Extension | Extension Slice: Unordered, Open by value:url
extension:recordedDate | S | 0..1 | dateTime | Indicates the recorded date of a clinical event URL: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension
modifierExtension | ?! | 0..* | Extension | Extensions that cannot be ignored
identifier | Σ | 0..* | Identifier | External Identifiers for this procedure
instantiatesCanonical | Σ | 0..* | canonical(PlanDefinition | ActivityDefinition | Measure | OperationDefinition | Questionnaire) | Instantiates FHIR protocol or definition
instantiatesUri | Σ | 0..* | uri | Instantiates external protocol or definition
basedOn | Σ | 0..* | Reference(CarePlan | ServiceRequest) | A request for this procedure
partOf | Σ | 0..* | Reference(Procedure | Observation | MedicationAdministration) | Part of referenced event
status | ?!S Σ | 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.
statusReason | S Σ | 0..1 | CodeableConcept | Reason for current status Binding: ProcedureNotPerformedReason(SNOMED-CT) (example): A code that identifies the reason a procedure was not performed.
category | Σ | 0..1 | CodeableConcept | Classification of the procedure Binding: ProcedureCategoryCodes(SNOMEDCT) (example): A code that classifies a procedure for searching, sorting and display purposes.
code | S Σ | 1..1 | CodeableConcept | Identification of the procedure Binding: US Core Procedure Codes (extensible): The set of codes indicating the procedures
subject | S Σ | 1..1 | Reference(De-Identified UDS Plus Patient) | Who the procedure was performed on
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
encounter | S Σ | 0..1 | Reference(De-Identified UDS Plus Encounter) | Encounter created as part of
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
performed[x] | S Σ C | 0..1 |  | When the procedure was performed uds-plus-proc-1: All dateTime data elements should be truncated to a year only for de-identified resources. uds-plus-proc-1a: All dateTime data elements should have valid year > 1900 uds-plus-proc-1b: All dateTime data elements should have valid year < 2030 uds-plus-proc-2: All Period.start data elements should be truncated to a year only for de-identified resources. uds-plus-proc-2a: All Period.start data elements should have valid year > 1900 uds-plus-proc-2b: All Period.start data elements should have valid year < 2030 uds-plus-proc-3: All Period.emd data elements should be truncated to a year only for de-identified resources. uds-plus-proc-3a: All Period.end data elements should have valid year > 1900 uds-plus-proc-3b: All Period.end data elements should have valid year < 2030
performedDateTime |  |  | dateTime S |
performedPeriod |  |  | Period |
performedAge |  |  | Age |
performedString |  |  | string |
performedRange |  |  | Range |
recorder | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Who recorded the procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
asserter | Σ | 0..1 | Reference(Patient | RelatedPerson | Practitioner | PractitionerRole) | Person who asserts this procedure
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
performer | S Σ | 0..* | BackboneElement | The people who performed the procedure
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
function | Σ | 0..1 | CodeableConcept | Type of performance Binding: ProcedurePerformerRoleCodes (example): A code that identifies the role of a performer of the procedure.
actor | Σ | 1..1 | Reference(Practitioner | PractitionerRole | Organization | Patient | RelatedPerson | Device) | The reference to the practitioner
id |  | 0..1 | string | Unique id for inter-element referencing
extension |  | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url
reference | Σ C | 0..1 | string | Literal reference, Relative, internal or absolute URL
type | Σ | 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).
identifier | Σ | 0..1 | Identifier | Logical reference, when literal reference is not known
onBehalfOf |  | 0..1 | Reference(Organization) | Organization the device or practitioner was acting for
location | Σ | 0..1 | Reference(Location) | Where the procedure happened
reasonCode | Σ | 0..* | CodeableConcept | Coded reason procedure performed Binding: ProcedureReasonCodes (example): A code that identifies the reason a procedure is required.
reasonReference | Σ | 0..* | Reference(Condition | Observation | Procedure | DiagnosticReport | DocumentReference) | The justification that the procedure was performed
bodySite | S Σ | 0..* | CodeableConcept | Target body sites Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
outcome | Σ | 0..1 | CodeableConcept | The result of procedure Binding: ProcedureOutcomeCodes(SNOMEDCT) (example): An outcome of a procedure - whether it was resolved or otherwise.
report |  | 0..* | Reference(DiagnosticReport | DocumentReference | Composition) | Any report resulting from the procedure
complication |  | 0..* | CodeableConcept | Complication following the procedure Binding: Condition/Problem/DiagnosisCodes (example): Codes describing complications that resulted from a procedure.
complicationDetail |  | 0..* | Reference(Condition) | A condition that is a result of the procedure
followUp |  | 0..* | CodeableConcept | Instructions for follow up Binding: ProcedureFollowUpCodes(SNOMEDCT) (example): Specific follow up required for a procedure e.g. removal of sutures.
focalDevice |  | 0..* | BackboneElement | Manipulated, implanted, or removed device
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
action |  | 0..1 | CodeableConcept | Kind of change to device Binding: ProcedureDeviceActionCodes (preferred): A kind of change that happened to the device during the procedure.
manipulated |  | 1..1 | Reference(Device) | Device that was changed
usedReference |  | 0..* | Reference(Device | Medication | Substance) | Items used during procedure
usedCode |  | 0..* | CodeableConcept | Coded items used during the procedure Binding: FHIRDeviceTypes (example): Codes describing items used during a procedure.
Documentation for this format

#### Terminology Bindings

Path | Conformance | ValueSet | URI
Procedure.language | preferred | CommonLanguages `http://hl7.org/fhir/ValueSet/languages` from the FHIR Standard
Additional Bindings | Purpose
AllLanguages | Max Binding
Procedure.status | required | EventStatus `http://hl7.org/fhir/ValueSet/event-status|4.0.1` from the FHIR Standard
Procedure.statusReason | example | ProcedureNotPerformedReason(SNOMED-CT) `http://hl7.org/fhir/ValueSet/procedure-not-performed-reason` from the FHIR Standard
Procedure.category | example | ProcedureCategoryCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-category` from the FHIR Standard
Procedure.code | extensible | USCoreProcedureCodes `http://hl7.org/fhir/us/core/ValueSet/us-core-procedure-code`
Procedure.subject.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.encounter.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.recorder.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.asserter.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.performer.function | example | ProcedurePerformerRoleCodes `http://hl7.org/fhir/ValueSet/performer-role` from the FHIR Standard
Procedure.performer.actor.type | extensible | ResourceType `http://hl7.org/fhir/ValueSet/resource-types` from the FHIR Standard
Procedure.reasonCode | example | ProcedureReasonCodes `http://hl7.org/fhir/ValueSet/procedure-reason` from the FHIR Standard
Procedure.bodySite | example | SNOMEDCTBodyStructures `http://hl7.org/fhir/ValueSet/body-site` from the FHIR Standard
Procedure.outcome | example | ProcedureOutcomeCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-outcome` from the FHIR Standard
Procedure.complication | example | Condition/Problem/DiagnosisCodes `http://hl7.org/fhir/ValueSet/condition-code` from the FHIR Standard
Procedure.followUp | example | ProcedureFollowUpCodes(SNOMEDCT) `http://hl7.org/fhir/ValueSet/procedure-followup` from the FHIR Standard
Procedure.focalDevice.action | preferred | ProcedureDeviceActionCodes `http://hl7.org/fhir/ValueSet/device-action` from the FHIR Standard
Procedure.usedCode | example | FHIRDeviceTypes `http://hl7.org/fhir/ValueSet/device-kind` from the FHIR Standard

#### Constraints

Id | Grade | Path(s) | Details | Requirements
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

Summary

Mandatory: 3 elements
Must-Support: 10 elements
Prohibited: 8 elements

Structures

This structure refers to these other structures:

- De-Identified UDS Plus Patient (http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/de-identified-uds-plus-patient)
- De-Identified UDS Plus Encounter (http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-encounter)

Extensions

This structure refers to these extensions:

- http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-recordedDate-extension

Maturity: 2

Other representations of profile: CSV, Excel, Schematron