DHIN 2025Connectathon FHIR IG
0.1.0 - draft

DHIN 2025Connectathon FHIR IG, published by DHIN. This guide is not an authorized publication; it is the continuous build for version 0.1.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/Nigeria-FHIR-Community/2025Connectathon/ and changes regularly. See the Directory of published versions

Resource Profile: NG DeviceRequest

Official URL: https://sandbox.dhin-hie.org/ig/StructureDefinition/NgDeviceRequest Version: 0.1.0
Draft as of 2025-10-02 Computable Name: NgDeviceRequest

Minimal DeviceRequest profile for the 2025 Connectathon.

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: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... code[x] SΣ 1..1 Device requested
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... subject SΣ 1..1 Reference(NG Patient) Focus of request
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performer Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 DeviceRequest 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 DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest 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()

This structure is derived from DeviceRequest

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... status S 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... intent S 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required)
... code[x] S 1..1 Device requested
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... requester 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performer 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Request identifier
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) What request fulfills
... priorRequest Σ 0..* Reference(Resource) What request replaces
... groupIdentifier Σ 0..1 Identifier Identifier of composite request
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... intent ?!SΣ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required)
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... code[x] SΣ 1..1 Device requested
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... parameter 0..* BackboneElement Device details
.... 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
.... code 0..1 CodeableConcept Device detail
Binding Description: (example): A code that identifies the device detail.
.... value[x] 0..1 Value of detail
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
... subject SΣ 1..1 Reference(NG Patient) Focus of request
... encounter Σ 0..1 Reference(Encounter) Encounter motivating request
... occurrence[x] Σ 0..1 Desired time or schedule for use
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... authoredOn Σ 0..1 dateTime When recorded
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performerType Σ 0..1 CodeableConcept Filler role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... reasonCode Σ 0..* CodeableConcept Coded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Linked Reason for request
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... note 0..* Annotation Notes or comments
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
DeviceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.
DeviceRequest.parameter.​code Base example ? Unknown
DeviceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
DeviceRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 DeviceRequest 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 DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest 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()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... code[x] SΣ 1..1 Device requested
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... subject SΣ 1..1 Reference(NG Patient) Focus of request
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performer Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 DeviceRequest 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 DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest 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()

Differential View

This structure is derived from DeviceRequest

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... status S 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... intent S 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required)
... code[x] S 1..1 Device requested
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... requester 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performer 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. DeviceRequest 0..* DeviceRequest Medical device request
... id Σ 0..1 id Logical id of this artifact
... meta Σ 0..1 Meta Metadata about the resource
... implicitRules ?!Σ 0..1 uri A set of rules under which this content was created
... language 0..1 code Language of the resource content
Binding: CommonLanguages (preferred): A human language.
Additional BindingsPurpose
AllLanguages Max Binding
... text 0..1 Narrative Text summary of the resource, for human interpretation
This profile does not constrain the narrative in regard to content, language, or traceability to data elements
... contained 0..* Resource Contained, inline Resources
... extension 0..* Extension Additional content defined by implementations
... modifierExtension ?! 0..* Extension Extensions that cannot be ignored
... identifier Σ 0..* Identifier External Request identifier
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(Resource) What request fulfills
... priorRequest Σ 0..* Reference(Resource) What request replaces
... groupIdentifier Σ 0..1 Identifier Identifier of composite request
... status ?!SΣ 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required)
... intent ?!SΣ 1..1 code proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option
Binding: RequestIntent (required)
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
... code[x] SΣ 1..1 Device requested
Binding: FHIRDeviceTypes (example): Codes for devices that can be requested.
.... codeReference Reference(NG Device)
.... codeCodeableConcept CodeableConcept
... parameter 0..* BackboneElement Device details
.... 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
.... code 0..1 CodeableConcept Device detail
Binding Description: (example): A code that identifies the device detail.
.... value[x] 0..1 Value of detail
..... valueCodeableConcept CodeableConcept
..... valueQuantity Quantity
..... valueRange Range
..... valueBoolean boolean
... subject SΣ 1..1 Reference(NG Patient) Focus of request
... encounter Σ 0..1 Reference(Encounter) Encounter motivating request
... occurrence[x] Σ 0..1 Desired time or schedule for use
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... authoredOn Σ 0..1 dateTime When recorded
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting diagnostics
... performerType Σ 0..1 CodeableConcept Filler role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Requested Filler
... reasonCode Σ 0..* CodeableConcept Coded Reason for request
Binding: Condition/Problem/DiagnosisCodes (example): Diagnosis or problem codes justifying the reason for requesting the device.
... reasonReference Σ 0..* Reference(Condition | Observation | DiagnosticReport | DocumentReference) Linked Reason for request
... insurance 0..* Reference(NG Claim Coverage) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... note 0..* Annotation Notes or comments
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
DeviceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
DeviceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
DeviceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
DeviceRequest.priority Base required Request priority 📍4.0.1 FHIR Std.
DeviceRequest.code[x] Base example FHIR Device Types 📍4.0.1 FHIR Std.
DeviceRequest.parameter.​code Base example ? Unknown
DeviceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
DeviceRequest.reasonCode Base example Condition/Problem/Diagnosis Codes 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error DeviceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error DeviceRequest 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 DeviceRequest 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 DeviceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice DeviceRequest 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()

 

Other representations of profile: CSV, Excel, Schematron