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 ServiceRequest

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

Minimal ServiceRequest profile for the 2025 Connectathon (referrals and orders).

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
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... 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)
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required)
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code SΣ 1..1 CodeableConcept What is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred.
... subject SΣ 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performer Σ 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... reasonReference Σ 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📦4.0.1 FHIR Std.
ServiceRequest.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ServiceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ServiceRequest 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 ServiceRequest 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 ServiceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ServiceRequest 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()
prr-1 error ServiceRequest orderDetail SHALL only be present if code is present orderDetail.empty() or code.exists()

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest 0..* ServiceRequest A request for a service to be performed
... 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)
... subject S 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... requester 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performer 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... reasonReference 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
ServiceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📦4.0.1 FHIR Std.
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... 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 Identifiers assigned to this order
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
... replaces Σ 0..* Reference(ServiceRequest) What request replaces
... requisition Σ 0..1 Identifier Composite Request ID
... 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)
... category Σ 0..* CodeableConcept Classification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required)
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code SΣ 1..1 CodeableConcept What is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred.
... orderDetail ΣC 0..* CodeableConcept Additional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
... quantity[x] Σ 0..1 Service amount
.... quantityQuantity Quantity
.... quantityRatio Ratio
.... quantityRange Range
... subject SΣ 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... encounter Σ 0..1 Reference(Encounter) Encounter in which the request was created
... occurrence[x] Σ 0..1 When service should occur
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... asNeeded[x] Σ 0..1 Preconditions for service
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... authoredOn Σ 0..1 dateTime Date request signed
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performerType Σ 0..1 CodeableConcept Performer role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... locationCode Σ 0..* CodeableConcept Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
... locationReference Σ 0..* Reference(Location) Requested location
... reasonCode Σ 0..* CodeableConcept Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
... reasonReference Σ 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... specimen Σ 0..* Reference(Specimen) Procedure Samples
... bodySite Σ 0..* CodeableConcept Location on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... note 0..* Annotation Comments
... patientInstruction Σ 0..1 string Patient or consumer-oriented instructions
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
ServiceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
ServiceRequest.category Base example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📦4.0.1 FHIR Std.
ServiceRequest.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
ServiceRequest.orderDetail Base example Service Request Order Details Codes 📍4.0.1 FHIR Std.
ServiceRequest.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
ServiceRequest.locationCode Base example ServiceDeliveryLocationRoleType 📦3.0.0 THO v6.5
ServiceRequest.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ServiceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ServiceRequest 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 ServiceRequest 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 ServiceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ServiceRequest 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()
prr-1 error ServiceRequest orderDetail SHALL only be present if code is present orderDetail.empty() or code.exists()

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... 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)
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required)
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code SΣ 1..1 CodeableConcept What is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred.
... subject SΣ 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performer Σ 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... reasonReference Σ 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📦4.0.1 FHIR Std.
ServiceRequest.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ServiceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ServiceRequest 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 ServiceRequest 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 ServiceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ServiceRequest 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()
prr-1 error ServiceRequest orderDetail SHALL only be present if code is present orderDetail.empty() or code.exists()

Differential View

This structure is derived from ServiceRequest

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest 0..* ServiceRequest A request for a service to be performed
... 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)
... subject S 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... requester 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performer 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... reasonReference 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service

doco Documentation for this format

Terminology Bindings (Differential)

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

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: prr-1
... 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 Identifiers assigned to this order
... instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
... instantiatesUri Σ 0..* uri Instantiates external protocol or definition
... basedOn Σ 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
... replaces Σ 0..* Reference(ServiceRequest) What request replaces
... requisition Σ 0..1 Identifier Composite Request ID
... 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)
... category Σ 0..* CodeableConcept Classification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
... priority Σ 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required)
... doNotPerform ?!Σ 0..1 boolean True if service/procedure should not be performed
... code SΣ 1..1 CodeableConcept What is being requested/ordered
Binding: ProcedureCodes(SNOMEDCT) (example): Codes for tests or services that can be carried out by a designated individual, organization or healthcare service. For laboratory, LOINC is preferred.
... orderDetail ΣC 0..* CodeableConcept Additional order information
Binding: ServiceRequestOrderDetailsCodes (example): Codified order entry details which are based on order context.
... quantity[x] Σ 0..1 Service amount
.... quantityQuantity Quantity
.... quantityRatio Ratio
.... quantityRange Range
... subject SΣ 1..1 Reference(NG Patient) Individual or Entity the service is ordered for
... encounter Σ 0..1 Reference(Encounter) Encounter in which the request was created
... occurrence[x] Σ 0..1 When service should occur
.... occurrenceDateTime dateTime
.... occurrencePeriod Period
.... occurrenceTiming Timing
... asNeeded[x] Σ 0..1 Preconditions for service
Binding: SNOMEDCTMedicationAsNeededReasonCodes (example): A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc.
.... asNeededBoolean boolean
.... asNeededCodeableConcept CodeableConcept
... authoredOn Σ 0..1 dateTime Date request signed
... requester Σ 0..1 Reference(NG Practitioner | NG PractitionerRole | NG Organization) Who/what is requesting service
... performerType Σ 0..1 CodeableConcept Performer role
Binding: ParticipantRoles (example): Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc.
... performer Σ 0..* Reference(NG Practitioner | NG PractitionerRole | NG Organization | NG HealthcareService) Requested performer
... locationCode Σ 0..* CodeableConcept Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
... locationReference Σ 0..* Reference(Location) Requested location
... reasonCode Σ 0..* CodeableConcept Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): Diagnosis or problem codes justifying the reason for requesting the service investigation.
... reasonReference Σ 0..* Reference(NG Condition | NG Observations) Explanation/Justification for service or service
... insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
... supportingInfo 0..* Reference(Resource) Additional clinical information
... specimen Σ 0..* Reference(Specimen) Procedure Samples
... bodySite Σ 0..* CodeableConcept Location on Body
Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality.
... note 0..* Annotation Comments
... patientInstruction Σ 0..1 string Patient or consumer-oriented instructions
... relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.language Base preferred Common Languages 📍4.0.1 FHIR Std.
ServiceRequest.status Base required RequestStatus 📦4.0.1 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📦4.0.1 FHIR Std.
ServiceRequest.category Base example Service Request Category Codes 📍4.0.1 FHIR Std.
ServiceRequest.priority Base required Request priority 📦4.0.1 FHIR Std.
ServiceRequest.code Base example Procedure Codes (SNOMED CT) 📍4.0.1 FHIR Std.
ServiceRequest.orderDetail Base example Service Request Order Details Codes 📍4.0.1 FHIR Std.
ServiceRequest.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.performerType Base example Participant Roles 📍4.0.1 FHIR Std.
ServiceRequest.locationCode Base example ServiceDeliveryLocationRoleType 📦3.0.0 THO v6.5
ServiceRequest.reasonCode Base example Procedure Reason Codes 📍4.0.1 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍4.0.1 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
dom-2 error ServiceRequest If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error ServiceRequest 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 ServiceRequest 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 ServiceRequest If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice ServiceRequest 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()
prr-1 error ServiceRequest orderDetail SHALL only be present if code is present orderDetail.empty() or code.exists()

 

Other representations of profile: CSV, Excel, Schematron