Botswana FHIR Implementation Guide
1.0.0 - ci-build Botswana flag

Botswana FHIR Implementation Guide, published by Jembi Health Systems. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/jembi/botswana-hie-fhir-ig/ and changes regularly. See the Directory of published versions

Resource Profile: ServiceRequest - Lab Orders

Official URL: http://moh.bw.org/StructureDefinition/lab-order-service-request Version: 1.0.0
Active as of 2026-10-13 Computable Name: LabOrderServiceRequest

Represents the service request for lab 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: doco
ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: bdystr-1, prr-1
ServiceRequest.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
ServiceRequest.contained 0..* Resource Contained, inline Resources
ServiceRequest.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
ServiceRequest.Slices for identifier This element is included in summaries. 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC This element is included in summaries. 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
ServiceRequest.Slices for identifier.identifier:PLAC.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
ServiceRequest.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
ServiceRequest.intent This element is a modifier element. This element is included in summaries. 1..1 code proposal | plan | directive | order +
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
ServiceRequest.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if service/procedure should not be performed
ServiceRequest.code This element is included in summaries. C 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.subject This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Individual or Entity the service is ordered for
ServiceRequest.encounter This element must be supported. This element is included in summaries. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] This element is included in summaries. 1..1 dateTime When service should occur
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime This element is included in summaries. 1..1 dateTime When service should occur
ServiceRequest.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performer This element is included in summaries. 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.specimen This element is included in summaries. 1..* Reference(Specimen) Procedure Samples

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.identifier:PLAC.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
ServiceRequest.status Base required RequestStatus 📍5.0.0 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📍5.0.0 FHIR Std.
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
bdystr-1 error ServiceRequest bodyStructure SHALL only be present if bodySite is not present bodySite.exists() implies bodyStructure.empty()
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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: doco
ServiceRequest 0..* ServiceRequest A request for a service to be performed
ServiceRequest.Slices for identifier 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.system 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value 1..1 string The value that is unique
ServiceRequest.intent 1..1 code proposal | plan | directive | order +
Required Pattern: order
ServiceRequest.code 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.encounter This element must be supported. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] 1..1 dateTime When service should occur
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime 1..1 dateTime When service should occur
ServiceRequest.requester 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performer 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.specimen 1..* Reference(Specimen) Procedure Samples

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG
NameFlagsCard.TypeDescription & Constraints    Filter: doco
ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: bdystr-1, prr-1
ServiceRequest.id This element is included in summaries. 0..1 id Logical id of this artifact
ServiceRequest.meta This element is included in summaries. 0..1 Meta Metadata about the resource
ServiceRequest.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
ServiceRequest.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
ServiceRequest.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
ServiceRequest.contained 0..* Resource Contained, inline Resources
ServiceRequest.extension 0..* Extension Additional content defined by implementations
ServiceRequest.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
ServiceRequest.Slices for identifier This element is included in summaries. 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC This element is included in summaries. 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.id 0..1 id Unique id for inter-element referencing
ServiceRequest.Slices for identifier.identifier:PLAC.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ServiceRequest.Slices for identifier.identifier:PLAC.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
ServiceRequest.Slices for identifier.identifier:PLAC.type This element is included in summaries. 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
ServiceRequest.Slices for identifier.identifier:PLAC.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
ServiceRequest.Slices for identifier.identifier:PLAC.period This element is included in summaries. 0..1 Period Time period when id is/was valid for use
ServiceRequest.Slices for identifier.identifier:PLAC.assigner This element is included in summaries. 0..1 Reference(Organization) Organization that issued id (may be just text)
ServiceRequest.instantiatesCanonical This element is included in summaries. 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
ServiceRequest.instantiatesUri This element is included in summaries. 0..* uri Instantiates external protocol or definition
ServiceRequest.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
ServiceRequest.replaces This element is included in summaries. 0..* Reference(ServiceRequest) What request replaces
ServiceRequest.requisition This element is included in summaries. 0..1 Identifier Composite Request ID
ServiceRequest.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
ServiceRequest.intent This element is a modifier element. This element is included in summaries. 1..1 code proposal | plan | directive | order +
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
ServiceRequest.category This element is included in summaries. 0..* CodeableConcept Classification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
ServiceRequest.priority This element is included in summaries. 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
ServiceRequest.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if service/procedure should not be performed
ServiceRequest.code This element is included in summaries. C 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.orderDetail This element is included in summaries. C 0..* BackboneElement Additional order information
ServiceRequest.orderDetail.id 0..1 string Unique id for inter-element referencing
ServiceRequest.orderDetail.extension 0..* Extension Additional content defined by implementations
ServiceRequest.orderDetail.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.orderDetail.parameterFocus 0..1 CodeableReference(Device | DeviceDefinition | DeviceRequest | SupplyRequest | Medication | MedicationRequest | BiologicallyDerivedProduct | Substance) The context of the order details by reference
ServiceRequest.orderDetail.parameter This element is included in summaries. 1..* BackboneElement The parameter details for the service being requested
ServiceRequest.orderDetail.parameter.id 0..1 string Unique id for inter-element referencing
ServiceRequest.orderDetail.parameter.extension 0..* Extension Additional content defined by implementations
ServiceRequest.orderDetail.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.orderDetail.parameter.code This element is included in summaries. 1..1 CodeableConcept The detail of the order being requested
Binding: ServiceRequestOrderDetailParameterCode (example): Codes for order detail parameters.
ServiceRequest.orderDetail.parameter.value[x] This element is included in summaries. 1..1 The value for the order detail
ServiceRequest.orderDetail.parameter.value[x].valueQuantity Quantity
ServiceRequest.orderDetail.parameter.value[x].valueRatio Ratio
ServiceRequest.orderDetail.parameter.value[x].valueRange Range
ServiceRequest.orderDetail.parameter.value[x].valueBoolean boolean
ServiceRequest.orderDetail.parameter.value[x].valueCodeableConcept CodeableConcept
ServiceRequest.orderDetail.parameter.value[x].valueString string
ServiceRequest.orderDetail.parameter.value[x].valuePeriod Period
ServiceRequest.quantity[x] This element is included in summaries. 0..1 Service amount
ServiceRequest.quantity[x].quantityQuantity Quantity
ServiceRequest.quantity[x].quantityRatio Ratio
ServiceRequest.quantity[x].quantityRange Range
ServiceRequest.subject This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Individual or Entity the service is ordered for
ServiceRequest.focus This element is included in summaries. 0..* Reference(Resource) What the service request is about, when it is not about the subject of record
ServiceRequest.encounter This element must be supported. This element is included in summaries. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] This element is included in summaries. 1..1 dateTime When service should occur
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime This element is included in summaries. 1..1 dateTime When service should occur
ServiceRequest.asNeeded[x] This element is included in summaries. 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.
ServiceRequest.asNeeded[x].asNeededBoolean boolean
ServiceRequest.asNeeded[x].asNeededCodeableConcept CodeableConcept
ServiceRequest.authoredOn This element is included in summaries. 0..1 dateTime Date request signed
ServiceRequest.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performerType This element is included in summaries. 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.
ServiceRequest.performer This element is included in summaries. 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.location This element is included in summaries. 0..* CodeableReference(Location) Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
ServiceRequest.reason This element is included in summaries. 0..* CodeableReference(Condition | Observation | DiagnosticReport | DocumentReference | DetectedIssue) Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): SNOMED CT Condition/Problem/Diagnosis Codes
ServiceRequest.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
ServiceRequest.supportingInfo 0..* CodeableReference(Resource) Additional clinical information
ServiceRequest.specimen This element is included in summaries. 1..* Reference(Specimen) Procedure Samples
ServiceRequest.bodySite This element is included in summaries. C 0..* CodeableConcept Coded location on Body
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
ServiceRequest.bodyStructure This element is included in summaries. C 0..1 Reference(BodyStructure) BodyStructure-based location on the body
ServiceRequest.note 0..* Annotation Comments
ServiceRequest.patientInstruction 0..* BackboneElement Patient or consumer-oriented instructions
ServiceRequest.patientInstruction.id 0..1 string Unique id for inter-element referencing
ServiceRequest.patientInstruction.extension 0..* Extension Additional content defined by implementations
ServiceRequest.patientInstruction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.patientInstruction.instruction[x] This element is included in summaries. 0..1 Patient or consumer-oriented instructions
ServiceRequest.patientInstruction.instruction[x].instructionMarkdown markdown
ServiceRequest.patientInstruction.instruction[x].instructionReference Reference(DocumentReference)
ServiceRequest.relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.language Base required All Languages 📍5.0.0 FHIR Std.
ServiceRequest.identifier:PLAC.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
ServiceRequest.identifier:PLAC.​type Base extensible Identifier Type Codes 📍5.0.0 FHIR Std.
ServiceRequest.status Base required RequestStatus 📍5.0.0 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📍5.0.0 FHIR Std.
ServiceRequest.category Base example Service Request Category Codes 📍5.0.0 FHIR Std.
ServiceRequest.priority Base required RequestPriority 📍5.0.0 FHIR Std.
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG
ServiceRequest.orderDetail.​parameter.code Base example Servicerequest OrderDetail Parameter Code 📍5.0.0 FHIR Std.
ServiceRequest.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍5.0.0 FHIR Std.
ServiceRequest.performerType Base example Participant Roles 📍5.0.0 FHIR Std.
ServiceRequest.location Base example ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.4
ServiceRequest.reason Base example Procedure Reason Codes 📍5.0.0 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdystr-1 error ServiceRequest bodyStructure SHALL only be present if bodySite is not present bodySite.exists() implies bodyStructure.empty()
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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

Summary

Mandatory: 10 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of ServiceRequest.identifier
  • The element 1 is sliced based on the value of ServiceRequest.occurrence[x]

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: bdystr-1, prr-1
ServiceRequest.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
ServiceRequest.contained 0..* Resource Contained, inline Resources
ServiceRequest.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
ServiceRequest.Slices for identifier This element is included in summaries. 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC This element is included in summaries. 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
ServiceRequest.Slices for identifier.identifier:PLAC.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
ServiceRequest.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
ServiceRequest.intent This element is a modifier element. This element is included in summaries. 1..1 code proposal | plan | directive | order +
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
ServiceRequest.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if service/procedure should not be performed
ServiceRequest.code This element is included in summaries. C 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.subject This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Individual or Entity the service is ordered for
ServiceRequest.encounter This element must be supported. This element is included in summaries. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] This element is included in summaries. 1..1 dateTime When service should occur
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime This element is included in summaries. 1..1 dateTime When service should occur
ServiceRequest.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performer This element is included in summaries. 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.specimen This element is included in summaries. 1..* Reference(Specimen) Procedure Samples

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.identifier:PLAC.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
ServiceRequest.status Base required RequestStatus 📍5.0.0 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📍5.0.0 FHIR Std.
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
bdystr-1 error ServiceRequest bodyStructure SHALL only be present if bodySite is not present bodySite.exists() implies bodyStructure.empty()
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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: doco
ServiceRequest 0..* ServiceRequest A request for a service to be performed
ServiceRequest.Slices for identifier 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.system 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value 1..1 string The value that is unique
ServiceRequest.intent 1..1 code proposal | plan | directive | order +
Required Pattern: order
ServiceRequest.code 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.subject 1..1 Reference(Patient - Botswana Patient) Individual or Entity the service is ordered for
ServiceRequest.encounter This element must be supported. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] 1..1 dateTime When service should occur
Slice: Unordered, Open by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime 1..1 dateTime When service should occur
ServiceRequest.requester 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performer 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.specimen 1..* Reference(Specimen) Procedure Samples

doco Documentation for this format

Terminology Bindings (Differential)

Path Status Usage ValueSet Version Source
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: doco
ServiceRequest C 0..* ServiceRequest A request for a service to be performed
Constraints: bdystr-1, prr-1
ServiceRequest.id This element is included in summaries. 0..1 id Logical id of this artifact
ServiceRequest.meta This element is included in summaries. 0..1 Meta Metadata about the resource
ServiceRequest.implicitRules This element is a modifier element. This element is included in summaries. 0..1 uri A set of rules under which this content was created
ServiceRequest.language 0..1 code Language of the resource content
Binding: AllLanguages (required): IETF language tag for a human language
Additional BindingsPurpose
CommonLanguages Starter
ServiceRequest.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
ServiceRequest.contained 0..* Resource Contained, inline Resources
ServiceRequest.extension 0..* Extension Additional content defined by implementations
ServiceRequest.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored
ServiceRequest.Slices for identifier This element is included in summaries. 1..* Identifier Identifiers assigned to this order
Slice: Unordered, Open by value:system

Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for identifier.identifier:PLAC This element is included in summaries. 1..1 Identifier Identifiers assigned to this order
ServiceRequest.Slices for identifier.identifier:PLAC.id 0..1 id Unique id for inter-element referencing
ServiceRequest.Slices for identifier.identifier:PLAC.extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
ServiceRequest.Slices for identifier.identifier:PLAC.use This element is a modifier element. This element is included in summaries. 0..1 code usual | official | temp | secondary | old (If known)
Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known .
ServiceRequest.Slices for identifier.identifier:PLAC.type This element is included in summaries. 0..1 CodeableConcept Description of identifier
Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.
ServiceRequest.Slices for identifier.identifier:PLAC.system This element is included in summaries. 1..1 uri The namespace for the identifier value
Required Pattern: http://moh.bw.org/identifier/service-request-id
ServiceRequest.Slices for identifier.identifier:PLAC.value This element is included in summaries. C 1..1 string The value that is unique
Example General: 123456
ServiceRequest.Slices for identifier.identifier:PLAC.period This element is included in summaries. 0..1 Period Time period when id is/was valid for use
ServiceRequest.Slices for identifier.identifier:PLAC.assigner This element is included in summaries. 0..1 Reference(Organization) Organization that issued id (may be just text)
ServiceRequest.instantiatesCanonical This element is included in summaries. 0..* canonical(ActivityDefinition | PlanDefinition) Instantiates FHIR protocol or definition
ServiceRequest.instantiatesUri This element is included in summaries. 0..* uri Instantiates external protocol or definition
ServiceRequest.basedOn This element is included in summaries. 0..* Reference(CarePlan | ServiceRequest | MedicationRequest) What request fulfills
ServiceRequest.replaces This element is included in summaries. 0..* Reference(ServiceRequest) What request replaces
ServiceRequest.requisition This element is included in summaries. 0..1 Identifier Composite Request ID
ServiceRequest.status This element is a modifier element. This element is included in summaries. 1..1 code draft | active | on-hold | revoked | completed | entered-in-error | unknown
Binding: RequestStatus (required): The status of a service order.
ServiceRequest.intent This element is a modifier element. This element is included in summaries. 1..1 code proposal | plan | directive | order +
Binding: RequestIntent (required): The kind of service request.
Required Pattern: order
ServiceRequest.category This element is included in summaries. 0..* CodeableConcept Classification of service
Binding: ServiceRequestCategoryCodes (example): Classification of the requested service.
ServiceRequest.priority This element is included in summaries. 0..1 code routine | urgent | asap | stat
Binding: RequestPriority (required): Identifies the level of importance to be assigned to actioning the request.
ServiceRequest.doNotPerform This element is a modifier element. This element is included in summaries. 0..1 boolean True if service/procedure should not be performed
ServiceRequest.code This element is included in summaries. C 1..1 CodeableReference(ActivityDefinition | PlanDefinition) What is being requested/ordered
Binding: Lab Order Codes (extensible)
ServiceRequest.orderDetail This element is included in summaries. C 0..* BackboneElement Additional order information
ServiceRequest.orderDetail.id 0..1 string Unique id for inter-element referencing
ServiceRequest.orderDetail.extension 0..* Extension Additional content defined by implementations
ServiceRequest.orderDetail.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.orderDetail.parameterFocus 0..1 CodeableReference(Device | DeviceDefinition | DeviceRequest | SupplyRequest | Medication | MedicationRequest | BiologicallyDerivedProduct | Substance) The context of the order details by reference
ServiceRequest.orderDetail.parameter This element is included in summaries. 1..* BackboneElement The parameter details for the service being requested
ServiceRequest.orderDetail.parameter.id 0..1 string Unique id for inter-element referencing
ServiceRequest.orderDetail.parameter.extension 0..* Extension Additional content defined by implementations
ServiceRequest.orderDetail.parameter.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.orderDetail.parameter.code This element is included in summaries. 1..1 CodeableConcept The detail of the order being requested
Binding: ServiceRequestOrderDetailParameterCode (example): Codes for order detail parameters.
ServiceRequest.orderDetail.parameter.value[x] This element is included in summaries. 1..1 The value for the order detail
ServiceRequest.orderDetail.parameter.value[x].valueQuantity Quantity
ServiceRequest.orderDetail.parameter.value[x].valueRatio Ratio
ServiceRequest.orderDetail.parameter.value[x].valueRange Range
ServiceRequest.orderDetail.parameter.value[x].valueBoolean boolean
ServiceRequest.orderDetail.parameter.value[x].valueCodeableConcept CodeableConcept
ServiceRequest.orderDetail.parameter.value[x].valueString string
ServiceRequest.orderDetail.parameter.value[x].valuePeriod Period
ServiceRequest.quantity[x] This element is included in summaries. 0..1 Service amount
ServiceRequest.quantity[x].quantityQuantity Quantity
ServiceRequest.quantity[x].quantityRatio Ratio
ServiceRequest.quantity[x].quantityRange Range
ServiceRequest.subject This element is included in summaries. 1..1 Reference(Patient - Botswana Patient) Individual or Entity the service is ordered for
ServiceRequest.focus This element is included in summaries. 0..* Reference(Resource) What the service request is about, when it is not about the subject of record
ServiceRequest.encounter This element must be supported. This element is included in summaries. 0..1 Reference(Encounter) Encounter in which the request was created
ServiceRequest.Slices for occurrence[x] This element is included in summaries. 1..1 dateTime When service should occur
Slice: Unordered, Closed by type:$this
Slicing Note: The rules on this element (including its children) apply to all the slices, but are not repeated in them
ServiceRequest.Slices for occurrence[x].occurrence[x]:occurrenceDateTime This element is included in summaries. 1..1 dateTime When service should occur
ServiceRequest.asNeeded[x] This element is included in summaries. 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.
ServiceRequest.asNeeded[x].asNeededBoolean boolean
ServiceRequest.asNeeded[x].asNeededCodeableConcept CodeableConcept
ServiceRequest.authoredOn This element is included in summaries. 0..1 dateTime Date request signed
ServiceRequest.requester This element is included in summaries. 1..1 Reference(Practitioner | Service Provider) Who/what is requesting service
ServiceRequest.performerType This element is included in summaries. 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.
ServiceRequest.performer This element is included in summaries. 1..* Reference(Practitioner | Service Provider) Requested performer
ServiceRequest.location This element is included in summaries. 0..* CodeableReference(Location) Requested location
Binding: ServiceDeliveryLocationRoleType (example): A location type where services are delivered.
ServiceRequest.reason This element is included in summaries. 0..* CodeableReference(Condition | Observation | DiagnosticReport | DocumentReference | DetectedIssue) Explanation/Justification for procedure or service
Binding: ProcedureReasonCodes (example): SNOMED CT Condition/Problem/Diagnosis Codes
ServiceRequest.insurance 0..* Reference(Coverage | ClaimResponse) Associated insurance coverage
ServiceRequest.supportingInfo 0..* CodeableReference(Resource) Additional clinical information
ServiceRequest.specimen This element is included in summaries. 1..* Reference(Specimen) Procedure Samples
ServiceRequest.bodySite This element is included in summaries. C 0..* CodeableConcept Coded location on Body
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts
ServiceRequest.bodyStructure This element is included in summaries. C 0..1 Reference(BodyStructure) BodyStructure-based location on the body
ServiceRequest.note 0..* Annotation Comments
ServiceRequest.patientInstruction 0..* BackboneElement Patient or consumer-oriented instructions
ServiceRequest.patientInstruction.id 0..1 string Unique id for inter-element referencing
ServiceRequest.patientInstruction.extension 0..* Extension Additional content defined by implementations
ServiceRequest.patientInstruction.modifierExtension This element is a modifier element. This element is included in summaries. 0..* Extension Extensions that cannot be ignored even if unrecognized
ServiceRequest.patientInstruction.instruction[x] This element is included in summaries. 0..1 Patient or consumer-oriented instructions
ServiceRequest.patientInstruction.instruction[x].instructionMarkdown markdown
ServiceRequest.patientInstruction.instruction[x].instructionReference Reference(DocumentReference)
ServiceRequest.relevantHistory 0..* Reference(Provenance) Request provenance

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
ServiceRequest.language Base required All Languages 📍5.0.0 FHIR Std.
ServiceRequest.identifier:PLAC.​use Base required IdentifierUse 📍5.0.0 FHIR Std.
ServiceRequest.identifier:PLAC.​type Base extensible Identifier Type Codes 📍5.0.0 FHIR Std.
ServiceRequest.status Base required RequestStatus 📍5.0.0 FHIR Std.
ServiceRequest.intent Base required RequestIntent 📍5.0.0 FHIR Std.
ServiceRequest.category Base example Service Request Category Codes 📍5.0.0 FHIR Std.
ServiceRequest.priority Base required RequestPriority 📍5.0.0 FHIR Std.
ServiceRequest.code Base extensible Lab Order Codes 📦1.0.0 This IG
ServiceRequest.orderDetail.​parameter.code Base example Servicerequest OrderDetail Parameter Code 📍5.0.0 FHIR Std.
ServiceRequest.asNeeded[x] Base example SNOMED CT Medication As Needed Reason Codes 📍5.0.0 FHIR Std.
ServiceRequest.performerType Base example Participant Roles 📍5.0.0 FHIR Std.
ServiceRequest.location Base example ServiceDeliveryLocationRoleType 📦3.0.0 THO v7.4
ServiceRequest.reason Base example Procedure Reason Codes 📍5.0.0 FHIR Std.
ServiceRequest.bodySite Base example SNOMED CT Body Structures 📍5.0.0 FHIR Std.

Constraints

Id Grade Path(s) Description Expression
bdystr-1 error ServiceRequest bodyStructure SHALL only be present if bodySite is not present bodySite.exists() implies bodyStructure.empty()
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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(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

Summary

Mandatory: 10 elements
Must-Support: 1 element

Structures

This structure refers to these other structures:

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of ServiceRequest.identifier
  • The element 1 is sliced based on the value of ServiceRequest.occurrence[x]

 

Other representations of profile: CSV, Excel, Schematron