Standard Patterns for BaRS Operations
Most implementations of the BaRS that are applying the standard to support a particular use case or operational workflow will follow the same basic set of foundational operations with little deviation.
In order to establish a guarantee of compatibility between different solutions compliant with the standard, all implementations must support all the underlying foundational operations and patterns.
Standard Pattern For Composites
The majority of BaRS operations utilise a single standard approach. Since most BaRS operations involve composites of FHIR resources supporting a particular workflow they all utilise a single type of endpoint designed for processing and consuming of composite resources. This is the $process-message endpoint from the FHIR operations framework. The resource being transmitted in the body of the http request is a FHIR "Bundle" resource. This request payload needs to support two purposes, both the transmission of information as well as an indicator to direct the recieving system to how this particular bundle of resources is to be processed and what workflow should be triggered as a result of its consumption.
These core functions are:
- making a referral
- cancelling/amending a referral
- making a booking
- cancelling/amending a booking
- providing a response/feedback communication
At the highest level this pattern follows the following key steps:
- Sender GET the message definition for the payload/workflow being attempted
- Sender composes the bundle (as defined by the message definition) ready for POST-ing.
- Sender does a POST request to the receivers' /$process-message endpoint.
- Receiver inspects the request header and the bundle MessageHeader resource for the core workflow variables indicating how to process and consume the bundle.
- Receiver send http response message back to the sender.
Below is a pseudo code example, showing the above process in detail, illustrating how a message could be interpreted using core workflow variables for a message sent to POST /$process-message.
Each Application will have a tailored example of the below pseudo code.
> Click here to show example
Receive_Request { initialise_variable "messageType" initialise_variable "MessageReason" initialise_variable "RequestType" //HTTP_Headers { if (HttpHeaders is null || HttpHeaders not Guid ) OperationOutcome.issue.code = "invalid" throw exception with "REC_BAD_REQUEST" then return with HTTP.ResponseCode 400 else if (HttpHeaders.RequestId == RequestId.AlreadyReceived) OperationOutcome.issue.code = "duplicate" throw exception with "REC_CONFLICT" then return with HTTP.ResponseCode 409 } //Bundle { if(Bundle.meta.versionID is null) OperationOutcome.issue.code = "invariant" throw exception with "REC_BAD_REQUEST" then return with HTTP.ResponseCode 422 else if!(Bundle.meta.versionID in versionID.supported) OperationOutcome.issue.code = "not-supported" throw exception with "REC_UNPROCESSABLE_ENTITY" then return with HTTP.ResponseCode 422 } //Contents; { switch(MessageHeader.eventCoding) { case "servicerequest-request": if (MessageHeader.reason.code == "new" && ServiceRequest.status == "active") { switch(ServiceRequest.Category) { case "Validation": if (CarePlan.status != "active") { RequestType = "unknown"; OperationOutcome.issue.code = "invariant";//A content validation rule failed throw exception with "REC_BAD_REQUEST"; then return HTTP.ResponseCode 400; } else if(Encounter.Status.In("triaged","in-progress") {RequestType = "Im Receiving a new Validation Request";} else { RequestType = "unknown"; OperationOutcome.issue.code = "invariant";//A content validation rule failed throw exception with "REC_BAD_REQUEST"; then return HTTP.ResponseCode 400; } break; case "Referral": if (Careplan.status != "completed") { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400 } else if(Encounter.Status.In("triaged","finished")) RequestType = "Im Receiving a new Referral" else RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400 break; default: RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } } else if (MessageHeader.reason.code == "update") { switch(ServiceRequest.category) { case "Validation": if(ServiceRequest.status.In("entered-in-error","revoked")) {RequestType = "im receiving a cancelled validation request";} else if(ServiceRequest.status.In("active","on-hold")) {RequestType = "im receiving an update to a validation request";} else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400 } break; case "Referral": if(ServiceRequest.status.In("entered-in-error","revoked")) {RequestType = "im receiving a cancelled referral"} else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400 } break; default: RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } } else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400} break; case "servicerequest-response": if (MessageHeader.Response is null ) { RequestType = "Invalid servicerequest-response" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } else if ( !Message.Response.identifier.existsLocally()) { RequestType = "none or invalid response ID" OperationOutcome.issue.code = "not-found"//A content validation rule failed throw exception with "REC_NOT_FOUND" then return HTTP.ResponseCode 404; } switch (ServiceRequest.Category) { case "Referral": if (ServiceRequest.status == "revoked" && MessageHeader.reason.code == "new") { RequestType = "im receiving a Safeguarding DNA response (noshow)" } else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } break; case "Validation": if(!AnyEncounter.Originates.Local && Encount.Count()<=3) { if (MessageHeader.Reason.code == "new" && ServiceRequest.status == "active" && MessageHeader.FocusEncounter.status=="in-progress") {Request Type = "im receiving a Validation Response interim update" } else if (MessageHeader.Reason.code.In ("new","update") && ServiceRequest.status == "completed" && MessageHeader.FocusEncounter.status.In("triaged","complete") {Request Type = "im receiving a final Validation Response" } else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } } else if(MessageHeader.FocusEncounter.status = "triaged" && ServiceRequest.status == "revoked" && MessageHeader.Reason.code.In("new","update")) { RequestType = "im receiving a Rejected validation response" } // a new encounter here is an edge case. else { RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } default: RequestType = "unknown" OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return HTTP.ResponseCode 400; } case "booking-request": if (MessageHeader.Reason.code== "new" && Appointment.Status == "booked") if(slot.IsFree()) {RequestType = "Im Receiving a new booking.";} else { OperationOutcome.issue.code = "conflict" throw exception with "REC_CONFLICT" then return with HTTP.ResponseCode 409 } else if (MessageHeader.Reason.code == "update") MessageHeaderIsUpdate = true; switch (Appointment.Status) { case "cancelled": RequestType = "Im Receiving a booking cancellation." break case "entered-in-error": RequestType = "Im Receiving a booking cancellation." break case "booked": RequestType = "Im Receiving an update to a booking." break default: OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return with HTTP.ResponseCode 400; break; } else { OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with "REC_BAD_REQUEST" then return with HTTP.ResponseCode 400; } break; case "booking-response": OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with 'REC_BAD_REQUEST' then return with HTTP.ResponseCode 400 break; default: OperationOutcome.issue.code = "invariant"//A content validation rule failed throw exception with 'REC_BAD_REQUEST' then return with HTTP.ResponseCode 400 break; } } //Submit { if (Message == "update") { if (currentLocalData.LastUpdated > originaRequest.ReceivedDate) { OperationOutcome.issue.code = "conflict" throw exception with 'REC_CONFLICT' then return with HTTP.ResponseCode 409 break; } foreach (Entry in Bundle) { if (currentLocalData.Item.exists) { if (currentLocalData.LastUpdated > originaRequest.Received) { OperationOutcome.issue.code = "conflict" throw exception with 'REC_CONFLICT' then return with HTTP.ResponseCode 409 break; } if(Entry.LastUpdated > currentLocalData.Item.meta.LastUpdated && Entry.fullUrl = currentLocalData.Item.fullUrl) currentLocalData.Item = Entry.Item Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated ) else ignore } else Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated ) } Submit(currentLocalData.Bundle.meta.LastUpdated = Bundle.Meta.LastUpdated) return HTTP.ResponseCode 200 'OK' } else { foreach(Entry in Bundle) { Entry.SubmitWith(currentLocalData.Item.meta.LastUpdated == Entry.LastUpdated ) Submit(currentLocalData.Bundle.meta.LastUpdated = Bundle.Meta.LastUpdated) return HTTP.ResponseCode 200 'OK' } } } }
Message Headers
MessageHeader Resource
BaRS payloads (FHIR message bundles) require a MessageHeader FHIR resource which provides key information to drive workflow and start interpreting the data contained within. This resource is central to making a request or asynchronous response and must be present in all payloads.
The MessageHeader resource contains the following element which must be used as outlined:
- MessageHeader.source - stipulates where the payload originated. The Sender must, under MessageHeader.source.endpoint, include a valid URI which could be used as a NHSD-Target-Identifier (their reference on the Endpoint Catalogue) for the Receiver to send an asynchronous response.
- MessageHeader.destination - designates who the payload is intended for, including reference to an Organisation resource and a valid URI (MessageHeader.destination.endpoint) which is the NHSD-Target-Identifier (their reference on the Endpoint Catalogue) the payload is being sent to.
- MessageHeader.eventCoding - determines the 'type' of payload, whether booking, referral, request or asynchronousus response. The value must be populated from this CodeSystem. In referrals, this value, combined with the ServiceRequest.category element, allows supports for different styles of referral to support various use-cases. The value must be populated from CodeSystems for specific type and use-case.
- MessageHeader.reason.code - indicates whether the message is 'new' or an 'update' to something the Receiver is already aware of. The value must be populated from this CodeSystem.
- MessageHeader.focus - specifies the root resource through which to start interpreting the payload.
- MessageHeader.definition - cites the MessageDefinition the payload must adhere to and must be rejected by the Receiver if it fails to do so. Note: payload conformance to MessageDefinitions is not checked as part of FHIR validation.
When a Receiver begins to process the payload, they must initially ensure it is for them and they know who it is from:
- check the MessageHeader.destination and verify the MessageHeader.destination.receiver.reference refers to their Organisation.
- check the MessageHeader.destination.endpoint is the Service ID they are expected to be processing the request on behalf of.
- Store MessageHeader.source.endpoint as NHSD-Target-Identifier to enable an asynchronous response back to the Sender. Not all workflows will require this type of response but this data must be stored for audit purposes.
Certain elements in MessageHeader explicitly drive workflow, check MessageHeader.eventCoding to determine whether a booking or referral payload is being sent, and whether this is an initial or update request or an asynchronous response to a pre-existing request. There are various styles of referral too, a request could be made for a simple 'transfer of care' or, currently, something termed a 'validation', where one service requests another to validate the assessment outcome they have reached. The intention of supporting gradation of referral is to provide BaRS the malleability to support further subtlety of referrals for future use cases. Combining the MessageHeader.eventCoding with the ServiceRequest.cateory provides this functionality and, with the addition of use-case categories (again populated under ServiceRequest.category) specific services are pinpointed through every BaRS workflow.
Once the above checks have been made, the detail of the payload can start to be unpacked and processed. The structure of the payload must be checked first to ensure it adheres to the MessageHeader.definition it claims to. The MessageDefinitions will principally be defined by BaRS, at a national level (although bespoke definitions can be used through BaRS), and the Receiver is checking to ensure all mandatory FHIR resources are present and meet their assigned cardinality. This is a manual, business logic, check and not something which is supported through standard FHIR validation of the payload (bundle). Next, MessageHeader.focus is the root resource through which the payload is intended to be understood. In an initial referral request, this will typically be the ServiceRequest FHIR resource. This root will link to other resources to build a narrative for the payload, for example, the ServiceRequest will link to the Encounter which led to the referral being made and the Careplan detailing next actions. The Entity Relationship Diagrams (included in each Application) are used as a visual representation of the FHIR resource links in the payloads.
Asynchronous Response Workflows
For certain Applications, an initial request by a Sender expects an asynchronous response (as opposed to an HTTP synchronous response (200) message). These responses are defined by the workflow of the Application and may be consistently returned or conditional. When an asynchronous response is initiated, the original Sender and Receiver roles are switched, the Sender becoming the Receiver and vice versa. This allows BaRS to support complex workflows through support for multiple requests (initial and update) and, potentially, multiple asynchronous responses, for example, an initial status update followed by a more detailed final outcome (as defined in Application 4). The asynchronous response should be thought of as merely another payload, adhering to all the same rules as an initial request or update. Similarly, Sender and Receiver roles are intended to be interchangeable in BaRS and, in most BaRS Applications a supplier is expected to build both Sender and Receiver functionality, something which is reflected in the assurance process, especially BaRS Core.
Where the workflow dictates an asynchronous response is to be sent, the Sender (originally the Receiver) must populate:
- MessageHeader.response.identifier with the Bundle.Id of the original request payload and set the MessageHeader.response.code value to 'ok'.
- Additionally, they must follow the above guidance on populating the MessageHeader.
Cancellation
The ability to reverse a digital request, by performing a cancellation, whether booking or referral, is a core workflow within BaRS. It completes the digital workflow, supports genuine interoperability and removes the need for manual intervention by service providers.
Cancellation, for any referral type or booking, is a stripped back request, containing only the specific resources a Receiver requires to the fulfil the request. There are separate MessageDefinitions involved when engaged in referral and booking cancellation workflows.
A prerequisite when performing a cancellation of any request is to perform a read (GET) of either the booking or referral to be cancelled. The Sender must only make a cancellation request if the entity has a status which means it is still current; 'active' in the case of a referral (ServiceRequest) and 'booked' for a booking (Appointment). This ensures the Sender has the latest version of the entity they are about to change or, if it is no longer current (because its been actioned by the Receiver), allows the Sender to advise the end user so an alternative (often manual) workflow can be started. The Receiver must not process a cancellation request for a booking or referral which is not current, instead they must return an appropriate error response.
Cancellation Referral Request Payload
MessageHeader Resource
Standard Patterns for BaRS Operations explains in detail how the MessageHeader resource must be used.
When cancelling a referral, in conjunction with the guidance provided under the Standard Patterns, the three important elements which drive workflow must be used as follows:
- eventCoding - this must be the same code as used in the request.
- reasonCode - a cancellation follows an initial request, therefore, this must always be 'update' for cancellation.
- definition - cancellation has a unique MessageDefinition the request must adhere to.
- focus - must point to the ServiceRequest resource.
ServiceRequest Resource
The 'focus' resource in a cancellation referral request is the ServiceRequest resource. When the payload is created by the Sender and processed by the Receiver, this is the starting point from which it (the bundle) is understood and provides either the detail or references to all key FHIR resources, for example, the Patient. The guidance for this resource below provides more granular, element level, detail.
When a Receiver processes the cancellation referral request, the two key elements used are the ServiceRequest.id and ServiceRequest.status. The .id must already exist as an 'active' (status) ServiceRequest on the Receiver system (this must have been confirmed by a prior read (GET) by the Sender) and the .status, in the request, must either be 'revoked' or 'entered-in-error'. There is a distinct difference between these two ServiceRequest.status(es). 'Revoked' should be used to denote the original request was intentional but, due to a change in circumstances, is no longer valid, whereas, 'entered-in-error' should be used when original request was in error. The purpose of this differentiation is to allow service providers to accurately report the reason for cancellations.
Patient Resource
Key patient demographics should be cross-referenced between the current 'active' referral and incoming cancellation referral request to ensure validity.
Payload for Referral Cancellation Request
This payload is used to transmit all the necessary information that is required to transmit the cancellation of a Referral.
> Bundle
The Bundle resource is the container for the event message.
Bundle | I | Bundle | There are no (further) constraints on this element Element IdBundle Contains a collection of resources DefinitionA container for a collection of resources.
| |
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.identifier Persistent identifier for the bundle DefinitionA persistent identifier for the bundle that won't change as a bundle is copied from server to server. Persistent identity generally only matters for batches of type Document, Message, and Collection. It would not normally be populated for search and history results and servers ignore Bundle.identifier when processing batches and transactions. For Documents the .identifier SHALL be populated such that the .identifier is globally unique.
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
type | Σ | 1..1 | codeBindingFixed Value | Element IdBundle.type document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection DefinitionIndicates the purpose of this bundle - how it is intended to be used. It's possible to use a bundle for other purposes (e.g. a document can be accepted as a transaction). This is primarily defined so that there can be specific rules for some of the bundle types. Indicates the purpose of a bundle - how it is intended to be used. BundleType (required)Constraints
message
|
timestamp | Σ | 1..1 | instant | There are no (further) constraints on this element Element IdBundle.timestamp When the bundle was assembled DefinitionThe date/time that the bundle was assembled - i.e. when the resources were placed in the bundle. For many bundles, the timestamp is equal to .meta.lastUpdated, because they are not stored (e.g. search results). When a bundle is placed in a persistent store, .meta.lastUpdated will be usually be changed by the server. When the bundle is a message, a middleware agent altering the message (even if not stored) SHOULD update .meta.lastUpdated. .timestamp is used to track the original time of the Bundle, and SHOULD be populated. Usage:
The timestamp value should be greater than the lastUpdated and other timestamps in the resources in the bundle, and it should be equal or earlier than the .meta.lastUpdated on the Bundle itself.
|
total | Σ I | 0..1 | unsignedInt | There are no (further) constraints on this element Element IdBundle.total If search, the total number of matches DefinitionIf a set of search matches, this is the total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle. Only used if the bundle is a search result set. The total does not include resources such as OperationOutcome and included resources, only the total number of matching resources.
|
link | Σ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdBundle.link Links related to this Bundle DefinitionA series of links that provide context to this bundle. Both Bundle.link and Bundle.entry.link are defined to support providing additional context when Bundles are used (e.g. HATEOAS). Bundle.entry.link corresponds to links found in the HTTP header if the resource in the entry was read directly. This specification defines some specific uses of Bundle.link for searching and paging, but no specific uses for Bundle.entry.link, and no defined function in a transaction - the meaning is implementation specific.
|
relation | Σ | 1..1 | string | There are no (further) constraints on this element Element IdBundle.link.relation See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 DefinitionA name which details the functional use for this link - see http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1. Note that FHIR strings SHALL NOT exceed 1MB in size
|
url | Σ | 1..1 | uri | There are no (further) constraints on this element Element IdBundle.link.url Reference details for the link DefinitionThe reference details for the link. see http://en.wikipedia.org/wiki/Uniform_resource_identifier
|
entry | Σ I | 0..* | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry Entry in the bundle - will have a resource or information DefinitionAn entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).
|
link | Σ | 0..* | see (link) | There are no (further) constraints on this element Element IdBundle.entry.link Links related to this entry DefinitionA series of links that provide context to this entry. |
fullUrl | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.fullUrl URI for resource (Absolute URL server address or URI for UUID/OID) DefinitionThe Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
fullUrl might not be unique in the context of a resource. Note that since FHIR resources do not need to be served through the FHIR API, the fullURL might be a URN or an absolute URL that does not end with the logical id of the resource (Resource.id). However, but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then the 'id' portion of the fullUrl SHALL end with the Resource.id. Note that the fullUrl is not the same as the canonical URL - it's an absolute url for an endpoint serving the resource (these will happen to have the same value on the canonical server for the resource with the canonical URL).
|
resource | Σ | 0..1 | Resource | There are no (further) constraints on this element Element IdBundle.entry.resource A resource in the bundle DefinitionThe Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.
|
search | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.search Search related information DefinitionInformation about the search process that lead to the creation of this entry.
|
mode | Σ | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.entry.search.mode match | include | outcome - why this is in the result set DefinitionWhy this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process. There is only one mode. In some corner cases, a resource may be included because it is both a match and an include. In these circumstances, 'match' takes precedence. Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process. SearchEntryMode (required)Constraints
|
score | Σ | 0..1 | decimal | There are no (further) constraints on this element Element IdBundle.entry.search.score Search ranking (between 0 and 1) DefinitionWhen searching, the server's search ranking score for the entry. Servers are not required to return a ranking score. 1 is most relevant, and 0 is least relevant. Often, search results are sorted by score, but the client may specify a different sort order. See Patient Match for the EMPI search which relates to this element.
|
request | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.request Additional execution information (transaction/batch/history) DefinitionAdditional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.
|
method | Σ | 1..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.entry.request.method GET | HEAD | POST | PUT | DELETE | PATCH DefinitionIn a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred. Note that FHIR strings SHALL NOT exceed 1MB in size HTTP verbs (in the HTTP command line). See [HTTP rfc](https://tools.ietf.org/html/rfc7231) for details. HTTPVerb (required)Constraints
|
url | Σ | 1..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.request.url URL for HTTP equivalent of this entry DefinitionThe URL for this entry, relative to the root (the address to which the request is posted). E.g. for a Patient Create, the method would be "POST" and the URL would be "Patient". For a Patient Update, the method would be PUT and the URL would be "Patient/[id]".
|
ifNoneMatch | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifNoneMatch For managing cache currency DefinitionIf the ETag values match, return a 304 Not Modified status. See the API documentation for "Conditional Read". Note that FHIR strings SHALL NOT exceed 1MB in size
|
ifModifiedSince | Σ | 0..1 | instant | There are no (further) constraints on this element Element IdBundle.entry.request.ifModifiedSince For managing cache currency DefinitionOnly perform the operation if the last updated date matches. See the API documentation for "Conditional Read". Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required
|
ifMatch | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifMatch For managing update contention DefinitionOnly perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". Note that FHIR strings SHALL NOT exceed 1MB in size
|
ifNoneExist | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifNoneExist For conditional creates DefinitionInstruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for "Conditional Create". This is just the query portion of the URL - what follows the "?" (not including the "?"). Note that FHIR strings SHALL NOT exceed 1MB in size
|
response | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.response Results of execution (transaction/batch/history) DefinitionIndicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.
|
status | Σ | 1..1 | string | There are no (further) constraints on this element Element IdBundle.entry.response.status Status response code (text optional) DefinitionThe status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code. Note that FHIR strings SHALL NOT exceed 1MB in size
|
location | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.response.location The location (if the operation returns a location) DefinitionThe location header created by processing this operation, populated if the operation returns a location. see http://en.wikipedia.org/wiki/Uniform_resource_identifier
|
etag | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.response.etag The Etag for the resource (if relevant) DefinitionThe Etag for the resource, if the operation for the entry produced a versioned resource (see Resource Metadata and Versioning and Managing Resource Contention). Etags match the Resource.meta.versionId. The ETag has to match the version id in the header if a resource is included.
|
lastModified | Σ | 0..1 | instant | There are no (further) constraints on this element Element IdBundle.entry.response.lastModified Server's date time modified DefinitionThe date/time that the resource was modified on the server. This has to match the same time in the meta header (meta.lastUpdated) if a resource is included.
|
outcome | Σ | 0..1 | Resource | There are no (further) constraints on this element Element IdBundle.entry.response.outcome OperationOutcome with hints and warnings (for batch/transaction) DefinitionAn OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction. For a POST/PUT operation, this is the equivalent outcome that would be returned for prefer = operationoutcome - except that the resource is always returned whether or not the outcome is returned. This outcome is not used for error responses in batch/transaction, only for hints and warnings. In a batch operation, the error will be in Bundle.entry.response, and for transaction, there will be a single OperationOutcome instead of a bundle in the case of an error.
|
signature | Σ | 0..1 | Signature | There are no (further) constraints on this element Element IdBundle.signature Digital Signature DefinitionDigital Signature - base64 encoded. XML-DSig or a JWT. A Signature holds an electronic representation of a signature and its supporting context in a FHIR accessible form. The signature may either be a cryptographic type (XML DigSig or a JWS), which is able to provide non-repudiation proof, or it may be a graphical image that represents a signature or a signature process. This element allows capturing signatures on documents, messages, transactions or even search responses, to support content-authentication, non-repudiation or other business cases. This is primarily relevant where the bundle may travel through multiple hops or via other mechanisms where HTTPS non-repudiation is insufficient. The signature could be created by the "author" of the bundle or by the originating device. Requirements around inclusion of a signature, verification of signatures and treatment of signed/non-signed bundles is implementation-environment specific.
|
type | Σ | 1..* | CodingBinding | There are no (further) constraints on this element Element IdBundle.signature.type Indication of the reason the entity signed the object(s) DefinitionAn indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document. Examples include attesting to: authorship, correct transcription, and witness of specific event. Also known as a "Commitment Type Indication". An indication of the reason that an entity signed the object. SignatureTypeCodes (preferred)Constraints
|
when | Σ | 1..1 | instant | There are no (further) constraints on this element Element IdBundle.signature.when When the signature was created DefinitionWhen the digital signature was signed. This should agree with the information in the signature.
|
who | Σ I | 1..1 | Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) | There are no (further) constraints on this element Element IdBundle.signature.who Who signed DefinitionA reference to an application-usable description of the identity that signed (e.g. the signature used their private key). This should agree with the information in the signature. Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) Constraints
|
reference | Σ I | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.reference Literal reference, Relative, internal or absolute URL DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.
|
type | Σ | 0..1 | uriBinding | There are no (further) constraints on this element Element IdBundle.signature.who.type Type the reference refers to (e.g. "Patient") DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). ResourceType (extensible)Constraints
|
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.signature.who.identifier Logical reference, when literal reference is not known DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
display | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.display Text alternative for the resource DefinitionPlain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
|
onBehalfOf | Σ I | 0..1 | Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf The party represented DefinitionA reference to an application-usable description of the identity that is represented by the signature. used when the signature is on behalf of a non-signer. The party that can't sign. For example a child. Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) Constraints
|
reference | Σ I | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.reference Literal reference, Relative, internal or absolute URL DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.
|
type | Σ | 0..1 | uriBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.type Type the reference refers to (e.g. "Patient") DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). ResourceType (extensible)Constraints
|
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier Logical reference, when literal reference is not known DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
display | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.display Text alternative for the resource DefinitionPlain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
|
targetFormat | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.targetFormat The technical format of the signed resources DefinitionA mime type that indicates the technical format of the target resources signed by the signature. "xml", "json" and "ttl" are allowed, which describe the simple encodings described in the specification (and imply appropriate bundle support). Otherwise, mime types are legal here. The mime type of an attachment. Any valid mime type is allowed. Mime Types (required)Constraints
| |
sigFormat | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.sigFormat The technical format of the signature DefinitionA mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc. Note that FHIR strings SHALL NOT exceed 1MB in size The mime type of an attachment. Any valid mime type is allowed. Mime Types (required)Constraints
| |
data | 0..1 | base64Binary | There are no (further) constraints on this element Element IdBundle.signature.data The actual signature content (XML DigSig. JWS, picture, etc.) DefinitionThe base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty. Where the signature type is an XML DigSig, the signed content is a FHIR Resource(s), the signature is of the XML form of the Resource(s) using XML-Signature (XMLDIG) "Detached Signature" form.
|
Data Item | Implementation Guidance | Necessity | Profile Cardinality | Example Value(s) |
---|---|---|---|---|
Bundle | The Bundle resource is the container for the event message https://simplifier.net/nhsbookingandreferrals/barsbundlemessage | 1..1 | ||
Bundle.id | This id is generated by the originating sender of the message, retained in subsequent messages.. | MUST | 1..1 | 79120f41-a431-4f08-bcc5-1e67006fcae0 |
Bundle.meta | https://www.hl7.org/fhir/resource.html#Meta | MUST | 0..1 | |
Bundle.meta.profile | This MUST be populated with the structure definition for BaRSBundleMessage : 'https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage' - FIXED VALUE | MUST | 0..1 | https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage |
Bundle.meta.lastUpdated | All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. | MUST | 1..1 | 2023-03-08T12:01:08.4677672+00:00 |
Bundle.type | This must be populated with 'message' - FIXED VALUE | MUST | 1..1 | message |
Bundle.timestamp | the date that the content of the message was assembled. This date is not changed by middleware engines unless they add additional data that changes the meaning of the time of the message | MUST | 0..1 | 2023-03-08T12:01:08.4677672+00:00 |
Bundle.entry(s) | Follow BaRS profile guidance for populating this element | MUST | 1..* | |
Bundle.entry.fullUrl | unique identifier for the resource entry. Transient id relative to the bundle | MUST | 0..1 | urn:uuid:1cbdfb97-5859-48a4-8301-d54eab818d68 |
Bundle.entry.resourceType | Resources detailed in the message definition. | MUST | 0..1 | MessageHeader,Patient, Encounter |
A resource that describes the BaRS message being exchanged between two systems. A resource that describes a message that is exchanged between systems The header for a message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) An extension to carry a specific instruction for receivers of the message. extensions, user content An extension to carry a specific instruction for receivers of the message. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MessageHeaderInstruction Code for the event this message represents or link to event definition Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value "http://terminology.hl7.org/CodeSystem/message-events". Alternatively uri to the EventDefinition. Drives the behavior associated with this message. The time of the event will be found in the focus resource. The time of the message will be found in Bundle.timestamp. Message event Message destination application(s) The destination application which the message is intended for. Indicates where message is to be sent for routing purposes. Allows verification of "am I the intended recipient". There SHOULD be at least one destination, but in some circumstances, the source system is unaware of any particular destination system. Name of system Human-readable name for the target system. May be used for routing of response and/or to support audit. Note that FHIR strings SHALL NOT exceed 1MB in size Particular delivery destination within the destination Identifies the target end system in situations where the initial message transmission is to an intermediary system. Supports multi-hop routing. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Actual destination address or id Indicates where the message should be routed to. Identifies where to route the message. The id may be a non-resolvable URI for systems that do not use standard network-based addresses. Intended "real-world" recipient for the data Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient. Allows routing beyond just the application level. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization | UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Real world sender of the message Identifies the sending system to allow the use of a trust relationship. Allows routing beyond just the application level. Use case is for where a (trusted) sending system is responsible for multiple organizations, and therefore cannot differentiate based on source endpoint / authentication alone. Reference(UK Core PractitionerRole | UK Core Organization | UK Core Practitioner) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The source of the data entry The person or device that performed the data entry leading to this message. When there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The source of the decision The logical author of the message - the person or device that decided the described event should happen. When there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Message source application The source application from which this message originated. Allows replies, supports audit. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Optional Extensions Element extensions, user content Optional Extension Element - found in all resources. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.nhs.uk/StructureDefinition/CDSSExtension Name of system Human-readable name for the source system. May be used to support audit. Note that FHIR strings SHALL NOT exceed 1MB in size Name of software running the system May include configuration or other information useful in debugging. Supports audit and possibly interface engine behavior. Note that FHIR strings SHALL NOT exceed 1MB in size Version of software running Can convey versions of multiple systems in situations where a message passes through multiple hands. Supports audit and possibly interface engine behavior. Note that FHIR strings SHALL NOT exceed 1MB in size Human contact for problems An e-mail, phone, website or other contact point to use to resolve issues with message communications. Allows escalation of technical issues. Actual message source address or id Identifies the routing target to send acknowledgements to. Identifies where to send responses, may influence security permissions. The uri of the Requester’s endpoint Final responsibility for event The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Organization | UK Core PractitionerRole | UK Core Practitioner) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Cause of event Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message. Need to be able to track why resources are being changed and report in the audit log/history of the resource. May affect authorization. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. Reason for event occurrence. Code defined by a terminology system A reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true. Identity of the terminology system The identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously. Version of the system - if relevant The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date. Symbol in syntax defined by the system A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size Representation defined by the system A representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size If this coding was chosen directly by the user Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely. Plain text representation of the concept A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings. If this is a reply to prior message Information about the message that this message is a response to. Only present if this message is a response. Id of original message The MessageHeader.id of the message to which this message is a response. Allows receiver to know what message is being responded to. RFC 4122 ok | transient-error | fatal-error Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not. Allows the sender of the acknowledge message to know if the request was successful or if action is needed. This is a generic response to the request message. Specific data for the response will be found in MessageHeader.focus. The kind of response to a message. Specific list of hints/warnings/errors Full details of any issues found in the message. Allows the sender of the message to determine what the specific issues are. This SHALL be contained in the bundle. If any of the issues are errors, the response code SHALL be an error. Reference(UK Core OperationOutcome) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The actual content of the message The actual data of the message - a reference to the root/focus class of the event. Every message event is about actual data, a single resource, that is identified in the definition of the event, and perhaps some or all linked resources. The data is defined where the transaction type is defined. The transaction data is always included in the bundle that is the full message. Only the root resource is specified. The resources it references should be contained in the bundle but are not also listed here. Multiple repetitions are allowed to cater for merges and other situations with multiple focal targets. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Link to the definition for this message Permanent link to the MessageDefinition for this message. Allows sender to define the expected contents of the message.
> Message Header
MessageHeader I MessageHeader MessageHeader
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
extension I 0..* Extension MessageHeader.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
messageHeaderInstruction I 0..* Extension(Coding) MessageHeader.extension:messageHeaderInstruction
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
event[x] Σ 1..1 Binding MessageHeader.event[x]
hasValue() or (children().count() > id.count())
system 1.. MessageHeader.event[x].system
code 1.. MessageHeader.event[x].code
eventCoding Coding eventUri uri destination Σ 1..* BackboneElement MessageHeader.destination
hasValue() or (children().count() > id.count())
name Σ 0..1 string MessageHeader.destination.name
hasValue() or (children().count() > id.count())
target Σ I 0..1 Reference(UK Core Device) MessageHeader.destination.target
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.destination.target.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.destination.target.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.destination.target.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.destination.target.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.destination.target.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.destination.target.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.destination.target.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.destination.target.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.destination.target.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.destination.target.display
hasValue() or (children().count() > id.count())
endpoint Σ 1..1 url MessageHeader.destination.endpoint
hasValue() or (children().count() > id.count())
receiver Σ I 0..1 Reference(UK Core Organization | UK Core Practitioner | UK Core PractitionerRole) MessageHeader.destination.receiver
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.destination.receiver.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.destination.receiver.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.destination.receiver.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.destination.receiver.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.destination.receiver.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.destination.receiver.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.destination.receiver.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.destination.receiver.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.destination.receiver.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.destination.receiver.display
hasValue() or (children().count() > id.count())
sender Σ I 0..1 Reference(UK Core PractitionerRole | UK Core Organization | UK Core Practitioner) MessageHeader.sender
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.sender.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.sender.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.sender.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.sender.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.sender.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.sender.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.sender.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.sender.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.sender.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.sender.identifier.assigner.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.sender.identifier.assigner.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.sender.identifier.assigner.identifier
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.sender.identifier.assigner.display
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.sender.display
hasValue() or (children().count() > id.count())
enterer Σ I 0..1 Reference(UK Core Practitioner | UK Core PractitionerRole) MessageHeader.enterer
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.enterer.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.enterer.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.enterer.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.enterer.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.enterer.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.enterer.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.enterer.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.enterer.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.enterer.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.enterer.display
hasValue() or (children().count() > id.count())
author Σ I 0..1 Reference(UK Core Practitioner | UK Core PractitionerRole) MessageHeader.author
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.author.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.author.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.author.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.author.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.author.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.author.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.author.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.author.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.author.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.author.display
hasValue() or (children().count() > id.count())
source Σ 1..1 BackboneElement MessageHeader.source
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id MessageHeader.source.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
myExtension I 0..* Extension(Complex) Element Id MessageHeader.source.extension:myExtension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
name Σ 0..1 string MessageHeader.source.name
hasValue() or (children().count() > id.count())
software Σ 0..1 string MessageHeader.source.software
hasValue() or (children().count() > id.count())
version Σ 0..1 string MessageHeader.source.version
hasValue() or (children().count() > id.count())
contact Σ I 0..1 ContactPoint MessageHeader.source.contact
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
endpoint Σ 1..1 url Element Id MessageHeader.source.endpoint
hasValue() or (children().count() > id.count())
responsible Σ I 0..1 Reference(UK Core Organization | UK Core PractitionerRole | UK Core Practitioner) MessageHeader.responsible
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.responsible.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.responsible.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.responsible.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.responsible.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.responsible.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.responsible.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.responsible.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.responsible.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.responsible.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.responsible.display
hasValue() or (children().count() > id.count())
reason Σ 1..1 CodeableConcept MessageHeader.reason
hasValue() or (children().count() > id.count())
coding Σ 0..* Coding MessageHeader.reason.coding
hasValue() or (children().count() > id.count())
system Σ 0..1 uriFixed Value Element Id MessageHeader.reason.coding.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/CodeSystem/message-reason-bars
version Σ 0..1 string MessageHeader.reason.coding.version
hasValue() or (children().count() > id.count())
code Σ 0..1 code MessageHeader.reason.coding.code
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.reason.coding.display
hasValue() or (children().count() > id.count())
userSelected Σ 0..1 boolean MessageHeader.reason.coding.userSelected
hasValue() or (children().count() > id.count())
text Σ 0..1 string MessageHeader.reason.text
hasValue() or (children().count() > id.count())
response Σ 0..1 BackboneElement MessageHeader.response
hasValue() or (children().count() > id.count())
identifier Σ 1..1 id MessageHeader.response.identifier
hasValue() or (children().count() > id.count())
code Σ 1..1 codeBinding MessageHeader.response.code
hasValue() or (children().count() > id.count())
details Σ I 0..1 Reference(UK Core OperationOutcome) MessageHeader.response.details
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.response.details.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.response.details.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.response.details.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.response.details.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.response.details.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.response.details.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.response.details.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.response.details.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.response.details.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.response.details.display
hasValue() or (children().count() > id.count())
focus Σ I 0..* Reference(Resource) MessageHeader.focus
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.focus.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.focus.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.focus.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.focus.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.focus.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.focus.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.focus.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.focus.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.focus.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.focus.display
hasValue() or (children().count() > id.count())
definition Σ 0..1 canonical(MessageDefinition) MessageHeader.definition
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
MessageHeader
A resource that describes the BaRS message being exchanged between two systems https://simplifier.net/nhsbookingandreferrals/barsmessageheaderservicerequestrequest
1..1
MessageHeader.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
0..1
MessageHeader.meta.profile
This MUST be populated with the structure definition for BaRSMessageHeader-servicerequest-request.
MUST
0..1
https://fhir.nhs.uk/StructureDefinition/BARSMEssageHeader-servicerequest-request
MessageHeader.meta.lastUpdated
All resources MUST include 'lastUpdated' value, under the meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates to resources, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
0..1
2023-03-08T12:01:08.4677672+00:00
MessageHeader.extension
This MUST be populated with details of the Clinical Decision Support System used
MUST
0..*
MessageHeader.extension.url
This MUST be populated with 'https://fhir.nhs.uk/StructureDefinition/CDSSExtension' - FIXED VALUE
MUST
1..1
https://fhir.nhs.uk/StructureDefinition/CDSSExtension
MessageHeader.extension.extension
MUST
0..*
MessageHeader.extension.extension.url
This MUST be populated with the pre-defined Clinical Decision Support System software URL - FIXED VALUE
MUST
1..1
requesterCDSSSoftware
MessageHeader.extension.extension.valueString
This MUST be populated with the Clinical Decision Support System software name e.g. Pathways
MUST
0..1
Pathways
MessageHeader.extension.extension
MUST
0..*
MessageHeader.extension.extension.url
This MUST be populated with the pre-defined Clinical Decision Support System software Version URL - FIXED VALUE
MUST
1..1
requesterCDSSVersion
MessageHeader.extension.extension.valueString
This MUST be populated with the Clinical Decision Support System software Version name e.g. 30.2.0
MUST
0..1
30.2.0
MessageHeader.eventcoding
MUST
1..1
MessageHeader.eventcoding.system
This MUST be populated with CodeSystem 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE
MUST
0..1
https://fhir.nhs.uk/CodeSystem/message-events-bars
MessageHeader.eventcoding.code
The status MUST be populated with 'servicerequest-request'. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE
MUST
0..1
servicerequest-request
MessageHeader.destination
MUST
0..1
MessageHeader.destination.receiver
MUST
0..1
MessageHeader.destination.receiver.reference
This MUST be populated with the full URL to the Receiving Organisation resource.
MUST
0..1
urn:uuid:10397afd-479c-42ea-9d5d-e4024481e0f8
MessageHeader.destination.endpoint
This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows the intended destination.
MUST
1..1
https://fhir.nhs.uk/id/dos-service-id\|1122334455
MessageHeader.sender
MUST
0..1
MessageHeader.sender.reference
This MUST be populated. Follow BaRS profile guidance for populating this element
MUST
0..1
urn:uuid:07939a0c-2854-46ff-9282-ad906bc93679
MessageHeader.source
MUST
1..1
MessageHeader.source.name
This MUST be populated with the sending system supplier name
MUST
0..1
NHS Trust
MessageHeader.source.software
This SHOULD be populated with the sending software application name
SHOULD
0..1
Supplier Software
MessageHeader.source.version
This SHOULD be populated with the sending software version
SHOULD
0..1
V1.0.0
MessageHeader.source.contact
SHOULD
0..1
MessageHeader.source.contact.system
This SHOULD be populated with the Contact Type - phone | fax | email | pager | url | sms | other
SHOULD
0..1
phone
MessageHeader.source.contact.value
This SHOULD be populated with the Contact Type value
SHOULD
0..1
+44 (0123) 123 4567
MessageHeader.source.endpoint
This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows where any response messages SHOULD be addressed.
MUST
1..1
https://fhir.nhs.uk/id/dos-service-id\|5566778899
MessageHeader.reason
MUST
0..1
MessageHeader.reason.coding
MUST
0..1
MessageHeader.reason.coding.system
This MUST be populated with 'https://fhir.nhs.uk/CodeSystem/message-reason-bars' - FIXED VALUE
MUST
0..1
https://fhir.nhs.uk/CodeSystem/message-reason-bars
MessageHeader.reason.coding.code
This MUST be populated with "delete" for an cancellation. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars'
MUST
0..1
delete
MessageHeader.reason.coding.display
This MUST be populated with 'Delete' when cancelling a Service Request.
SHOULD
0..1
Delete
MessageHeader.focus
MUST
0..*
MessageHeader.focus.reference
This MUST be populated with a reference to the ServiceRequest
MUST
0..1
urn:uuid:236bb75d-90ef-461f-b71e-fde7f899802c
MessageHeader.definition
This MUST be populated with the MessageDefinition the bundle is based on. This will be used for validation. Value - https://fhir.nhs.uk/MessageDefinition/bars-message-servicerequest-request-cancelled
MUST
0..1
https://fhir.nhs.uk/MessageDefinition/bars-message-servicerequest-request-cancelled
A resource to carry a request for a service to be performed, in this case a Validation. This Resource is the focus of the Validation Request interaction. A request for a service to be performed diagnostic request, referral, referral request, transfer of care request A record of a request for service such as diagnostic investigations, treatments, or operations to be performed. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) This represents the source of referral extensions, user content This represents the source of referral. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-SourceOfServiceRequest Identifiers assigned to this order Identifiers assigned to this order instance by the orderer and/or the receiver and/or order fulfiller. The identifier.type element is used to distinguish between the identifiers assigned by the orderer (known as the 'Placer' in HL7 v2) and the producer of the observations in response to the order (known as the 'Filler' in HL7 v2). For further discussion and examples see the resource notes section below. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Instantiates FHIR protocol or definition The URL pointing to a FHIR-defined protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest. Note: This is a business identifier, not a resource identifier (see discussion). It is best practice for the identifier to only appear on a single resource instance, however business practices may occasionally dictate that multiple resource instances with the same identifier can exist - possibly even with different resource types. For example, multiple Patient and a Person resource instance might share the same social insurance number. canonical(ActivityDefinition | PlanDefinition) Instantiates external protocol or definition The URL pointing to an externally maintained protocol, guideline, orderset or other definition that is adhered to in whole or in part by this ServiceRequest. This might be an HTML page, PDF, etc. or could just be a non-resolvable URI identifier. What request fulfills fulfills Plan/proposal/order fulfilled by this request. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core CarePlan | UK Core MedicationRequest | UK Core ServiceRequest) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. What request replaces supersedes, prior, renewed order The request takes the place of the referenced completed or terminated request(s). References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core ServiceRequest) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Composite Request ID grouperId, groupIdentifier A shared identifier common to all service requests that were authorized more or less simultaneously by a single author, representing the composite or group identifier. Some business processes need to know if multiple items were ordered as part of the same "requisition" for billing or other purposes. Requests are linked either by a "basedOn" relationship (i.e. one request is fulfilling another) or by having a common requisition. Requests that are part of the same requisition are generally treated independently from the perspective of changing their state or maintaining them after initial creation. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) draft | active | on-hold | revoked | completed | entered-in-error | unknown The status of the order. The status is generally fully in the control of the requester - they determine whether the order is draft or active and, after it has been activated, competed, cancelled or suspended. States relating to the activities of the performer are reflected on either the corresponding event (see Event Pattern for general discussion) or using the Task resource. The status of a service order. proposal | plan | directive | order | original-order | reflex-order | filler-order | instance-order | option Whether the request is a proposal, plan, an original order or a reflex order. This element is labeled as a modifier because the intent alters when and how the resource is actually applicable. The kind of service request. Classification of service A code that classifies the service for searching, sorting and display purposes (e.g. "Surgical Procedure"). Used for filtering what service request are retrieved and displayed. There may be multiple axis of categorization depending on the context or use case for retrieving or displaying the resource. The level of granularity is defined by the category concepts in the value set. Classification of the requested service. routine | urgent | asap | stat Indicates how quickly the ServiceRequest should be addressed with respect to other requests. Note that FHIR strings SHALL NOT exceed 1MB in size If missing, this task should be performed with normal priority Identifies the level of importance to be assigned to actioning the request. True if service/procedure should not be performed Set this to true if the record is saying that the service/procedure should NOT be performed. Used for do not ambulate, do not elevate head of bed, do not flush NG tube, do not take blood pressure on a certain arm, etc. In general, only the code and timeframe will be present, though occasional additional qualifiers such as body site or even performer could be included to narrow the scope of the prohibition. If the ServiceRequest.code and ServiceRequest.doNotPerform both contain negation, that will reinforce prohibition and should not have a double negative interpretation. If missing, the request is a positive request e.g. "do perform" What is being requested/ordered service requested A code that identifies a particular service (i.e., procedure, diagnostic investigation, or panel of investigations) that have been requested. Many laboratory and radiology procedure codes embed the specimen/organ system in the test order name, for example, serum or serum/plasma glucose, or a chest x-ray. The specimen might not be recorded separately from the test code. A set of codes that define a procedure or a procedure with explicit context. Selected from the SNOMED CT UK coding system. Additional order information detailed instructions Additional details and instructions about the how the services are to be delivered. For example, and order for a urinary catheter may have an order detail for an external or indwelling catheter, or an order for a bandage may require additional instructions specifying how the bandage should be applied. For information from the medical record intended to support the delivery of the requested services, use the Codified order entry details which are based on order context. Service amount An amount of service being requested which can be a quantity ( for example $1,500 home modification), a ratio ( for example, 20 half day visits per month), or a range (2.0 to 1.8 Gy per fraction). When ordering a service the number of service items may need to be specified separately from the the service item. Individual or Entity the service is ordered for On whom or what the service is to be performed. This is usually a human patient, but can also be requested on animals, groups of humans or animals, devices such as dialysis machines, or even locations (typically for environmental scans). References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Encounter in which the request was created context An encounter that provides additional information about the healthcare context in which this request is made. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. When service should occur schedule The date/time at which the requested service should occur. Preconditions for service If a CodeableConcept is present, it indicates the pre-condition for performing the service. For example "pain", "on flare-up", etc. A coded concept identifying the pre-condition that should hold prior to performing a procedure. For example "pain", "on flare-up", etc. Date request signed orderedOn When the request transitioned to being actionable. DateTime the Referral Request was generated Who/what is requesting service author, orderer The individual who initiated the request and has responsibility for its activation. This not the dispatcher, but rather who is the authorizer. This element is not intended to handle delegation which would generally be managed through the Provenance resource. Reference(UK Core Device | UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Performer role specialty Desired type of performer for doing the requested service. This is a role, not a participation type. In other words, does not describe the task but describes the capacity. For example, “compounding pharmacy”, “psychiatrist” or “internal referral”. Indicates specific responsibility of an individual within the care team, such as "Primary physician", "Team coordinator", "Caregiver", etc. Requested performer request recipient The desired performer for doing the requested service. For example, the surgeon, dermatopathologist, endoscopist, etc. Referral To Reference(UK Core CareTeam | UK Core Device | UK Core HealthcareService | UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Requested location The preferred location(s) where the procedure should actually happen in coded or free text form. E.g. at home or nursing day care center. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. A location type where services are delivered. Requested location A reference to the the preferred location(s) where the procedure should actually happen. E.g. at home or nursing day care center. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Explanation/Justification for procedure or service An explanation or justification for why this service is being requested in coded or textual form. This is often for billing purposes. May relate to the resources referred to in This element represents why the referral is being made and may be used to decide how the service will be performed, or even if it will be performed at all. Use A set of codes that define a reason for a service request. Explanation/Justification for service or service Indicates another resource that provides a justification for why this service is being requested. May relate to the resources referred to in This element represents why the referral is being made and may be used to decide how the service will be performed, or even if it will be performed at all. To be as specific as possible, a reference to Observation or Condition should be used if available. Otherwise when referencing DiagnosticReport it should contain a finding in Reference(UK Core Condition | UK Core DiagnosticReport | UK Core DocumentReference | UK Core Observation) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Associated insurance coverage Insurance plans, coverage extensions, pre-authorizations and/or pre-determinations that may be needed for delivering the requested service. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(Coverage | ClaimResponse) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Additional clinical information Ask at order entry question, AOE Additional clinical information about the patient or specimen that may influence the services or their interpretations. This information includes diagnosis, clinical findings and other observations. In laboratory ordering these are typically referred to as "ask at order entry questions (AOEs)". This includes observations explicitly requested by the producer (filler) to provide context or supporting information needed to complete the order. For example, reporting the amount of inspired oxygen for blood gas measurements. To represent information about how the services are to be delivered use the Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Procedure Samples One or more specimens that the laboratory procedure will use. Many diagnostic procedures need a specimen, but the request itself is not actually about the specimen. This element is for when the diagnostic is requested on already existing specimens and the request points to the specimen it applies to. Conversely, if the request is entered first with an unknown specimen, then the Specimen resource points to the ServiceRequest. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Location on Body location Anatomic location where the procedure should be performed. This is the target site. Knowing where the procedure is performed is important for tracking if multiple sites are possible. Only used if not implicit in the code found in ServiceRequest.code. If the use case requires BodySite to be handled as a separate resource instead of an inline coded element (e.g. to identify and track separately) then use the standard extension procedure-targetBodyStructure. A set of codes that define an anatomical or acquired body structure site. Selected from the SNOMED CT UK coding system. Comments Any other notes and comments made about the service request. For example, internal billing notes. For systems that do not have structured annotations, they can simply communicate a single annotation with no author or time. This element may need to be included in narrative because of the potential for modifying information. Annotations SHOULD NOT be used to communicate "modifying" information that could be computable. (This is a SHOULD because enforcing user behavior is nearly impossible). Patient or consumer-oriented instructions Instructions in terms that are understood by the patient or consumer. Note that FHIR strings SHALL NOT exceed 1MB in size Request provenance Key events in the history of the request. This might not include provenances for all versions of the request – only those deemed “relevant” or important.
This SHALL NOT include the Provenance associated with this current version of the resource. (If that provenance is deemed to be a “relevant” change, it will need to be added as part of a later update. Until then, it can be queried directly as the Provenance that points to this version using _revinclude
All Provenances should have some historical version of this Request as their subject. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
> Service Request
ServiceRequest I ServiceRequest ServiceRequest
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
orderDetail.empty() or code.exists()
extension I 0..* Extension ServiceRequest.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
sourceOfServiceRequest I 0..1 Extension(CodeableConcept) ServiceRequest.extension:sourceOfServiceRequest
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
identifier Σ 0..* Identifier ServiceRequest.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
instantiatesCanonical Σ 0..* canonical(ActivityDefinition | PlanDefinition) ServiceRequest.instantiatesCanonical
hasValue() or (children().count() > id.count())
instantiatesUri Σ 0..* uri ServiceRequest.instantiatesUri
hasValue() or (children().count() > id.count())
basedOn Σ I 0..* Reference(UK Core CarePlan | UK Core MedicationRequest | UK Core ServiceRequest) ServiceRequest.basedOn
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.basedOn.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.basedOn.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.basedOn.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.basedOn.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.basedOn.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.basedOn.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.basedOn.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.basedOn.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.basedOn.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.basedOn.display
hasValue() or (children().count() > id.count())
replaces Σ I 0..* Reference(UK Core ServiceRequest) ServiceRequest.replaces
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.replaces.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.replaces.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.replaces.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.replaces.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.replaces.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.replaces.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.replaces.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.replaces.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.replaces.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.replaces.display
hasValue() or (children().count() > id.count())
requisition Σ 0..1 Identifier ServiceRequest.requisition
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.requisition.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.requisition.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.requisition.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.requisition.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.requisition.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.requisition.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
status Σ ?! 1..1 codeBinding ServiceRequest.status
hasValue() or (children().count() > id.count())
intent Σ ?! 1..1 codeBindingFixed Value Element Id ServiceRequest.intent
hasValue() or (children().count() > id.count())
plan
category Σ 1..1 CodeableConcept ServiceRequest.category
hasValue() or (children().count() > id.count())
priority Σ 0..1 codeBinding ServiceRequest.priority
hasValue() or (children().count() > id.count())
doNotPerform Σ ?! 0..1 boolean ServiceRequest.doNotPerform
hasValue() or (children().count() > id.count())
code Σ 0..1 CodeableConceptBinding ServiceRequest.code
hasValue() or (children().count() > id.count())
orderDetail Σ I 0..* CodeableConcept ServiceRequest.orderDetail
supportingInformation
element.hasValue() or (children().count() > id.count())
quantity[x] Σ 0..1 ServiceRequest.quantity[x]
hasValue() or (children().count() > id.count())
quantityQuantity Quantity quantityRatio Ratio quantityRange Range subject Σ I 1..1 Reference(UK Core Patient) Element Id ServiceRequest.subject
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.subject.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.subject.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.subject.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.subject.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.subject.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.subject.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.subject.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.subject.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.subject.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.subject.display
hasValue() or (children().count() > id.count())
encounter Σ I 0..1 Reference(UK Core Encounter) ServiceRequest.encounter
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.encounter.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.encounter.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.encounter.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.encounter.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.encounter.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.encounter.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.encounter.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.encounter.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.encounter.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.encounter.display
hasValue() or (children().count() > id.count())
occurrence[x] Σ 0..1 ServiceRequest.occurrence[x]
hasValue() or (children().count() > id.count())
occurrencePeriod Period Data Type asNeeded[x] Σ 0..1 ServiceRequest.asNeeded[x]
hasValue() or (children().count() > id.count())
asNeededBoolean boolean asNeededCodeableConcept CodeableConcept authoredOn Σ 1..1 dateTime Element Id ServiceRequest.authoredOn
hasValue() or (children().count() > id.count())
requester Σ I 0..1 Reference(UK Core Device | UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson) ServiceRequest.requester
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.requester.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.requester.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.requester.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.requester.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.requester.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.requester.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.requester.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.requester.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.requester.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.requester.display
hasValue() or (children().count() > id.count())
performerType Σ 0..1 CodeableConcept ServiceRequest.performerType
hasValue() or (children().count() > id.count())
performer Σ I 0..* Reference(UK Core CareTeam | UK Core Device | UK Core HealthcareService | UK Core Organization | UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson) Element Id ServiceRequest.performer
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.performer.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.performer.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.performer.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.performer.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.performer.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.performer.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.performer.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.performer.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.performer.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.performer.display
hasValue() or (children().count() > id.count())
locationCode Σ 0..* CodeableConcept ServiceRequest.locationCode
hasValue() or (children().count() > id.count())
locationReference Σ I 0..* Reference(UK Core Location) ServiceRequest.locationReference
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.locationReference.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.locationReference.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.locationReference.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.locationReference.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.locationReference.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.locationReference.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.locationReference.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.locationReference.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.locationReference.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.locationReference.display
hasValue() or (children().count() > id.count())
reasonCode Σ 0..* CodeableConceptBinding ServiceRequest.reasonCode
supportingInfo
.CodeableConcept.text
element if the data is free (uncoded) text as shown in the CT Scan example.hasValue() or (children().count() > id.count())
reasonReference Σ I 0..* Reference(UK Core Condition | UK Core DiagnosticReport | UK Core DocumentReference | UK Core Observation) ServiceRequest.reasonReference
supportingInfo
.DiagnosticReport.conclusion
and/or DiagnosticReport.conclusionCode
. When using a reference to DocumentReference, the target document should contain clear findings language providing the relevant reason for this service request. Use the CodeableConcept text element in ServiceRequest.reasonCode
if the data is free (uncoded) text as shown in the CT Scan example.hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.reasonReference.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.reasonReference.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.reasonReference.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.reasonReference.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.reasonReference.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.reasonReference.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.reasonReference.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.reasonReference.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.reasonReference.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.reasonReference.display
hasValue() or (children().count() > id.count())
insurance I 0..* Reference(Coverage | ClaimResponse) ServiceRequest.insurance
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.insurance.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.insurance.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.insurance.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.insurance.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.insurance.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.insurance.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.insurance.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.insurance.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.insurance.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.insurance.display
hasValue() or (children().count() > id.count())
supportingInfo I 0..* Reference(Resource) ServiceRequest.supportingInfo
instructions
element.hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.supportingInfo.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.supportingInfo.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.supportingInfo.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.supportingInfo.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.supportingInfo.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.supportingInfo.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.supportingInfo.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.supportingInfo.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.supportingInfo.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.supportingInfo.display
hasValue() or (children().count() > id.count())
specimen Σ I 0..* Reference(UK Core Specimen) ServiceRequest.specimen
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.specimen.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.specimen.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.specimen.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.specimen.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.specimen.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.specimen.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.specimen.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.specimen.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.specimen.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.specimen.display
hasValue() or (children().count() > id.count())
bodySite Σ 0..* CodeableConceptBinding ServiceRequest.bodySite
hasValue() or (children().count() > id.count())
note 0..* Annotation ServiceRequest.note
hasValue() or (children().count() > id.count())
patientInstruction Σ 0..1 string ServiceRequest.patientInstruction
hasValue() or (children().count() > id.count())
relevantHistory I 0..* Reference(UK Core Provenance) ServiceRequest.relevantHistory
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string ServiceRequest.relevantHistory.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding ServiceRequest.relevantHistory.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier ServiceRequest.relevantHistory.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding ServiceRequest.relevantHistory.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding ServiceRequest.relevantHistory.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri ServiceRequest.relevantHistory.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string ServiceRequest.relevantHistory.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period ServiceRequest.relevantHistory.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) ServiceRequest.relevantHistory.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string ServiceRequest.relevantHistory.display
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
ServiceRequest
A resource to carry a request for a service to be performed, in this case a Validation. This Resource is the focus of the Validation Request interaction https://simplifier.net/nhsbookingandreferrals/barsservicerequest-request-validation
1..1
ServiceRequest.id
MUST only be generated by the Receiver as the id for the resource in the synchronous HTTP response.
MUST
0..1
236bb75d-90ef-461f-b71e-fde7f899802c
ServiceRequest.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
0..1
ServiceRequest.meta.profile
https://fhir.nhs.uk/StructureDefinition/BARSServiceRequest-request-validation
MUST
0..1
https://fhir.nhs.uk/StructureDefinition/BARSServiceRequest-request-validation
ServiceRequest.meta.lastUpdated
All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
0..1
2023-03-08T12:01:08.4677672+00:00
ServiceRequest.basedOn
MUST
0..*
ServiceRequest.basedOnreference
This MUST be populated with a reference to the CarePlan resource
MUST
0..1
urn:uuid:236bb75d-90ef-461f-b71e-fde7f899802c
ServiceRequest.status
Only use the following 2 values, as appropriate: revoked is used when a SR is legitimately cancelled, entered-in-error is used when sent to the by mistake and needs to be removed.
MUST
1..1
entered-in-error
ServiceRequest.intent
This MUST be populated with 'plan' - Fixed Value
MUST
1..1
plan
ServiceRequest.category
MUST
0..1
ServiceRequest.category.coding
MUST
0..*
ServiceRequest.category.coding.system
This MUST be populated with CodeSystem 'https://fhir.nhs.uk/CodeSystem/message-category-servicerequest' - FIXED VALUE
MUST
0..1
https://fhir.nhs.uk/CodeSystem/message-category-servicerequest
ServiceRequest.category.coding.code
This MUST be populated with code value appropriate for the Application employed.
MUST
0..1
validation
ServiceRequest.category.coding.display
This MUST be populated with display value appropriate for the Application employed.
MUST
0..1
For Validation
ServiceRequest.subject
Follow BaRS profile guidance for populating this element
MUST
1..1
ServiceRequest.subjectreference
This MUST be populated with a Reference to the Patient resource
MUST
0..1
urn:uuid:9589fb37-87a2-48d8-968f-b371429208a8
ServiceRequest.encounter
MUST
0..1
ServiceRequest.encounter.reference
This MUST be populated with a Reference to the Encounter
MUST
0..1
urn:uuid:8c63d621-4d86-4f57-8699-e8e22d49935d
ServiceRequest.occurrencePeriod
Validation Breach time
MUST
0..1
ServiceRequest.occurrencePeriod.start
The start of the period must be ‘now’.
MUST
0..1
2023-03-08T12:01:08.4677672+00:00
ServiceRequest.occurrencePeriod.end
The time by which the validation must be complete (validation breach time)
MUST
0..1
2023-03-08T12:01:08.4677672+00:00
ServiceRequest.reasonCode
This will ONLY be populated in a cancellation message with the reason for cancellation
SHOULD
0..*
ServiceRequest.reasonCode.text
This SHOULD be populated. This will ONLY be populated in a cancellation message with the reason for cancellation and SHOULD only be used in conjunction with a corresponding status - revoked or entered-in-error
SHOULD
0..1
Revoked as patient has been dealt with.
This resource is used to communicate details about the patient who is the subject of the referral. Information about an individual or animal receiving health care services SubjectOfCare Client Resident Demographics and other administrative information about an individual or animal receiving care or other health-related services. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) The registered place of birth of the patient. extensions, user content The registered place of birth of the patient. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-birthPlace identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The registered place of birth of the patient. Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). The patient's phenotypic sex at birth. extensions, user content The patient's phenotypic sex at birth. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex Post-mortem donor status. extensions, user content Flag indicating whether the patient authorized the donation of body parts after death. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Post-mortem donor status. Flag indicating whether the patient authorized the donation of body parts after death. The preferred method of contact, contact times and written communication format given by a Patient or Related Person. extensions, user content The preferred method of contact, contact times and written communication format given by a Patient or Related Person. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference The patient's death notification status. extensions, user content The patient's death notification status. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus The ethnicity of the subject extensions, user content The ethnicity of the subject. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory The residential status of the patient. extensions, user content The residential status of the patient. For example if this patient is a UK resident. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus The patient's professed religious affiliations extensions, user content The patient's professed religious affiliations. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-religion identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The religious affiliation of the patient The religious affiliation of the patient. v3.ReligiousAffiliation (extensible) Whether the patient needs an interpreter extensions, user content This Patient requires an interpreter to communicate healthcare information to the practitioner. The Patient does not speak the default language of the organization, and hence requires an interpreter. If the patient has other languages in the Communications list, then that would be the type of interpreter required. http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Indicator showing whether the patient needs an interpreter Indicator showing if this Patient requires an interpreter to communicate healthcare information to the practitioner. An identifier for this patient An identifier for this patient. Patients are almost always assigned specific numerical identifiers. Unordered, Open, by system(Value) Constraints The patient's NHS number An identifier for this patient. Patients are almost always assigned specific numerical identifiers. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) NHS number verification status extensions, user content The verification/tracing status of the NHS number. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Whether this patient's record is in active use Whether this patient record is in active use.
Many systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules. It is often used to filter patient lists to exclude inactive patients Deceased patients may also be marked as inactive for the same reasons, but may be active for some time after death. Need to be able to mark a patient record as not to be used because it was created in error. If a record is inactive, and linked to an active record, then future patient/record updates should occur on the other patient. This resource is generally assumed to be active if no value is provided for the active element A name associated with the patient A name associated with the individual. Need to be able to track the patient by multiple names. Examples are your official name and a partner name. A patient may have multiple names with different uses or applicable periods. For animals, the name is a "HumanName" in the sense that is assigned and used by humans and has the same patterns. A contact detail for the individual A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. People have (primary) ways to contact them in some way such as phone, email. A Patient may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and also to help with identification. The address might not go directly to the individual, but may reach another party that is able to proxy for the patient (i.e. home phone, or pet owner's phone). phone | fax | email | pager | url | sms | other Telecommunications form for contact point - what communications system is required to make use of the contact. Note that FHIR strings SHALL NOT exceed 1MB in size Telecommunications form for contact point. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Other contact system extensions, user content Other contact system value which extends the system element in the ContactPoint datatype. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem The actual contact point details The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). Need to support legacy numbers that are not in a tightly controlled format. Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value. home | work | temp | old | mobile - purpose of this contact point Identifies the purpose for the contact point. Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose. Applications can assume that a contact is current unless it explicitly says that it is temporary or old. Use of contact point. Specify preferred order of use (1 = highest) Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values. Note that rank does not necessarily follow the order in which the contacts are represented in the instance. Time period when the contact point was/is in use Time period when the contact point was/is in use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. male | female | other | unknown Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. Needed for identification of the individual, in combination with (at least) name and birth date. The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female. Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.) However, because these observations are infrequently recorded, defaulting to the administrative gender is common practice. Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects. For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a "hard" error. See the Patient Gender and Sex section for additional information about communicating patient gender and sex. The gender of a person used for administrative purposes. The date of birth for the individual The date of birth for the individual. Age of the individual drives many clinical processes. At least an estimated year should be provided as a guess if the real DOB is unknown There is a standard extension "patient-birthTime" available that should be used where Time is required (such as in maternity/infant care systems). Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Time of day of birth. extensions, user content The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-birthTime identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Time of day of birth. The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively. Indicates if the individual is deceased or not Indicates if the individual is deceased or not. The fact that a patient is deceased influences the clinical process. Also, in human communication and relation management it is necessary to know whether the person is alive. If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. Most systems will interpret the absence of a value as a sign of the person being alive. An address for the individual An address for the individual May need to keep track of patient addresses for contacting, billing or reporting requirements and also to help with identification. Patient may have multiple addresses with different uses or applicable periods. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) A patient's address key and type extensions, user content A patient's address key and type. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey home | work | temp | old | billing - purpose of this address The purpose of this address. Allows an appropriate address to be chosen from a list of many. Applications can assume that an address is current unless it explicitly says that it is temporary or old. The use of an address. postal | physical | both Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both. The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource). The type of an address (physical / postal). Text representation of the address Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts. A renderable, unencoded form. Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part. Street name, number, direction & P.O. Box etc. This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information. Note that FHIR strings SHALL NOT exceed 1MB in size Name of city, town etc. Municpality The name of the city, town, suburb, village or other community or delivery center. Note that FHIR strings SHALL NOT exceed 1MB in size District name (aka county) County The name of the administrative area (county). District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead. Sub-unit of country (abbreviations ok) Province, Territory Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes). Note that FHIR strings SHALL NOT exceed 1MB in size Postal code for area Zip A postal code designating a region defined by the postal service. Note that FHIR strings SHALL NOT exceed 1MB in size Country (e.g. can be ISO 3166 2 or 3 letter code) Country - a nation as commonly understood or generally accepted. ISO 3166 3 letter codes can be used in place of a human readable country name. Time period when address was/is in use Time period when address was/is in use. Allows addresses to be placed in historical context. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Marital (civil) status of a patient This field contains a patient's most recent marital (civil) status. Most, if not all systems capture it. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. An indicator to identify the legal marital status of a person Whether patient is part of a multiple birth Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer). For disambiguation of multiple-birth children, especially relevant where the care provider doesn't meet the patient, such as labs. Where the valueInteger is provided, the number is the birth number in the sequence. E.g. The middle birth in triplets would be valueInteger=2 and the third born would have valueInteger=3 If a boolean value was provided for this triplets example, then all 3 patient records would have valueBoolean=true (the ordering is not indicated). Image of the patient Image of the patient. Many EHR systems have the capability to capture an image of the patient. Fits with newer social media usage too. Guidelines: A contact party (e.g. guardian, partner, friend) for the patient A contact party (e.g. guardian, partner, friend) for the patient. Need to track people you can contact about the patient. Contact covers all kinds of contact parties: family members, business contacts, guardians, caregivers. Not applicable to register pedigree and family ties beyond use of having contact. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Preferred ranking or order of contact applied to a contact on a patient's contact list extensions, user content The preferred ranking or order of contact applied to a contact on a patient's contact list. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank Indicator showing that a patient's contact or related person must be copied in to patient correspondence extensions, user content Extension carrying a boolean indicator showing that a patient's contact or related person must be copied in to patient correspondence. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator The kind of relationship The nature of the relationship between the patient and the contact person. Used to determine which contact person is the most relevant to approach, depending on circumstances. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The nature of the relationship between a patient and a contact person for that patient. A name associated with the contact person A name associated with the contact person. Contact persons need to be identified by name, but it is uncommon to need details about multiple other names for that contact person. Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely. A contact detail for the person A contact detail for the person, e.g. a telephone number or an email address. People have (primary) ways to contact them in some way such as phone, email. Contact may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification. phone | fax | email | pager | url | sms | other Telecommunications form for contact point - what communications system is required to make use of the contact. Note that FHIR strings SHALL NOT exceed 1MB in size Telecommunications form for contact point. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Other contact system extensions, user content Other contact system value which extends the system element in the ContactPoint datatype. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem The actual contact point details The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). Need to support legacy numbers that are not in a tightly controlled format. Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value. home | work | temp | old | mobile - purpose of this contact point Identifies the purpose for the contact point. Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose. Applications can assume that a contact is current unless it explicitly says that it is temporary or old. Use of contact point. Specify preferred order of use (1 = highest) Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values. Note that rank does not necessarily follow the order in which the contacts are represented in the instance. Time period when the contact point was/is in use Time period when the contact point was/is in use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Address for the contact person Address for the contact person. Need to keep track where the contact person can be contacted per postal mail or visited. Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource). male | female | other | unknown Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes. Needed to address the person correctly. Note that FHIR strings SHALL NOT exceed 1MB in size The gender of a person used for administrative purposes. Organization that is associated with the contact Organization on behalf of which the contact is acting or for which the contact is working. For guardians or business related contacts, the organization is relevant. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The period during which this contact person or organization is valid to be contacted relating to this patient The period during which this contact person or organization is valid to be contacted relating to this patient. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. A language which may be used to communicate with the patient about his or her health A language which may be used to communicate with the patient about his or her health. If a patient does not speak the local language, interpreters may be required, so languages spoken and proficiency are important things to keep track of both for patient and other persons of interest. If no language is specified, this implies that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple Patient.Communication associations. For animals, language is not a relevant field, and should be absent from the instance. If the Patient does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Proficiency level of the communication extensions, user content Proficiency level of the communication. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) http://hl7.org/fhir/StructureDefinition/patient-proficiency Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) The proficiency level of the communication extensions, user content How well the patient can communicate this communication (good, poor, etc.). There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. The proficiency level for the communication The proficiency level for the communication. The proficiency level for the communication. The proficiency type of the communication extensions, user content What type of communication for the proficiency (spoken, written, etc.). There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. The proficiency type for the communication The proficiency type for the communication. The proficiency type for the communication. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Value of extension Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). A ValueSet that identifies the language used by a person. A ValueSet that identifies the language used by a person. Most systems in multilingual countries will want to convey language. Not all systems actually need the regional dialect. The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems actually code this but instead have it as free text. Hence CodeableConcept instead of code as the data type. A ValueSet that identifies the language used by a person. Language preference indicator Indicates whether or not the patient prefers this language (over other languages he masters up a certain level). People that master multiple languages up to certain level may prefer one or more, i.e. feel more confident in communicating in a particular language making other languages sort of a fall back method. This language is specifically identified for communicating healthcare information. Patient's nominated primary care provider careProvider Patient's nominated care provider. This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources.
Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues. Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type. Reference(UK Core Practitioner | UK Core Organization | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Organization that is the custodian of the patient record Organization that is the custodian of the patient record. Need to know who recognizes this patient record, manages and updates it. There is only one managing organization for a specific patient record. Other organizations will have their own Patient record, and may use the Link property to join the records together (or a Person resource which can include confidence ratings for the association). Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Link to another patient resource that concerns the same actual person Link to another patient resource that concerns the same actual patient. There are multiple use cases: There is no assumption that linked patient records have mutual links. The other patient or related person resource that the link refers to The other patient resource that the link refers to. Referencing a RelatedPerson here removes the need to use a Person record to associate a Patient and RelatedPerson as the same individual. Reference(UK Core Patient | UK Core RelatedPerson) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. replaced-by | replaces | refer | seealso The type of link between this patient resource and another patient resource. Note that FHIR strings SHALL NOT exceed 1MB in size The type of link between this patient resource and another patient resource.
> Patient
It also includes contact information for third parties when required.Patient I Patient Patient
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
extension I 0..* Extension Element Id Patient.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
birthPlace I 0..1 Extension(Address) Element Id Patient.extension:birthPlace
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:birthPlace.url
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
value[x] 1..1 Element Id Patient.extension:birthPlace.value[x]
hasValue() or (children().count() > id.count())
valueAddress Address birthSex I 0..1 Extension(code) Element Id Patient.extension:birthSex
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
cadavericDonor I 0..1 Extension(boolean) Element Id Patient.extension:cadavericDonor
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:cadavericDonor.url
http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor
value[x] 1..1 Element Id Patient.extension:cadavericDonor.value[x]
hasValue() or (children().count() > id.count())
valueBoolean boolean contactPreference I 0..1 Extension(Complex) Element Id Patient.extension:contactPreference
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
deathNotificationStatus I 0..1 Extension(Complex) Element Id Patient.extension:deathNotificationStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
ethnicCategory I 0..1 Extension(CodeableConcept) Element Id Patient.extension:ethnicCategory
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
residentialStatus I 0..1 Extension(CodeableConcept) Element Id Patient.extension:residentialStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
patientReligion I 0..1 Extension(CodeableConcept) Element Id Patient.extension:patientReligion
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:patientReligion.url
http://hl7.org/fhir/StructureDefinition/patient-religion
value[x] 1..1 Binding Element Id Patient.extension:patientReligion.value[x]
hasValue() or (children().count() > id.count())
valueCodeableConcept CodeableConcept patientInterpreterRequired I 0..1 Extension(boolean) Element Id Patient.extension:patientInterpreterRequired
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:patientInterpreterRequired.url
http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired
value[x] 1..1 Element Id Patient.extension:patientInterpreterRequired.value[x]
hasValue() or (children().count() > id.count())
valueBoolean boolean identifier Σ 0..* Identifier Element Id Patient.identifier
hasValue() or (children().count() > id.count())
nhsNumber Σ 0..1 Identifier Element Id Patient.identifier:nhsNumber
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.identifier:nhsNumber.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
nhsNumberVerificationStatus I 0..1 Extension(CodeableConcept) Element Id Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
use Σ ?! 0..1 codeBinding Patient.identifier:nhsNumber.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.identifier:nhsNumber.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Patient.identifier:nhsNumber.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/nhs-number
value Σ 1..1 string Patient.identifier:nhsNumber.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.identifier:nhsNumber.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.identifier:nhsNumber.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
active Σ ?! 0..1 boolean Patient.active
hasValue() or (children().count() > id.count())
name Σ 0..* HumanName Patient.name
hasValue() or (children().count() > id.count())
telecom Σ I 0..* ContactPoint Patient.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
system Σ I 0..1 codeBinding Patient.telecom.system
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.telecom.system.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
otherContactSystem I 0..1 Extension(Coding) Element Id Patient.telecom.system.extension:otherContactSystem
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
value Σ 0..1 string Patient.telecom.value
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.telecom.use
hasValue() or (children().count() > id.count())
rank Σ 0..1 positiveInt Patient.telecom.rank
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.telecom.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
gender Σ 0..1 codeBinding Patient.gender
hasValue() or (children().count() > id.count())
birthDate Σ 0..1 date Patient.birthDate
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.birthDate.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
birthTime I 0..1 Extension(dateTime) Element Id Patient.birthDate.extension:birthTime
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.birthDate.extension:birthTime.url
http://hl7.org/fhir/StructureDefinition/patient-birthTime
value[x] 1..1 Element Id Patient.birthDate.extension:birthTime.value[x]
hasValue() or (children().count() > id.count())
valueDateTime dateTime deceased[x] Σ ?! 0..1 Patient.deceased[x]
hasValue() or (children().count() > id.count())
deceasedBoolean boolean deceasedDateTime dateTime address Σ 0..* Address Element Id Patient.address
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.address.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
addressKey I 0..* Extension(Complex) Element Id Patient.address.extension:addressKey
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
use Σ ?! 0..1 codeBinding Patient.address.use
hasValue() or (children().count() > id.count())
home
Mappingstype Σ 0..1 codeBinding Patient.address.type
hasValue() or (children().count() > id.count())
both
Mappingstext Σ 0..1 string Patient.address.text
hasValue() or (children().count() > id.count())
137 Nowhere Street, Erewhon 9132
Mappingsline Σ 0..* string Patient.address.line
hasValue() or (children().count() > id.count())
137 Nowhere Street
Mappingscity Σ 0..1 string Patient.address.city
hasValue() or (children().count() > id.count())
Erewhon
Mappingsdistrict Σ 0..1 string Patient.address.district
hasValue() or (children().count() > id.count())
Madison
Mappingsstate Σ 0..1 string Patient.address.state
hasValue() or (children().count() > id.count())
postalCode Σ 0..1 string Patient.address.postalCode
hasValue() or (children().count() > id.count())
9132
Mappingscountry Σ 0..1 string Patient.address.country
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.address.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
{
"start": "2010-03-23",
"end": "2010-07-01"
}
MappingsmaritalStatus 0..1 CodeableConceptBinding Element Id Patient.maritalStatus
hasValue() or (children().count() > id.count())
multipleBirth[x] 0..1 Patient.multipleBirth[x]
hasValue() or (children().count() > id.count())
multipleBirthBoolean boolean multipleBirthInteger integer photo I 0..* Attachment Patient.photo
hasValue() or (children().count() > id.count())
data.empty() or contentType.exists()
contact I 0..* BackboneElement Patient.contact
hasValue() or (children().count() > id.count())
name.exists() or telecom.exists() or address.exists() or organization.exists()
extension I 0..* Extension Element Id Patient.contact.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
contactRank I 0..1 Extension(positiveInt) Element Id Patient.contact.extension:contactRank
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
copyCorrespondenceIndicator I 0..1 Extension(boolean) Element Id Patient.contact.extension:copyCorrespondenceIndicator
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
relationship 0..* CodeableConceptBinding Element Id Patient.contact.relationship
hasValue() or (children().count() > id.count())
name 0..1 HumanName Patient.contact.name
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Patient.contact.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
system Σ I 0..1 codeBinding Patient.contact.telecom.system
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.contact.telecom.system.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
otherContactSystem I 0..1 Extension(Coding) Element Id Patient.contact.telecom.system.extension:otherContactSystem
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
value Σ 0..1 string Patient.contact.telecom.value
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.contact.telecom.use
hasValue() or (children().count() > id.count())
rank Σ 0..1 positiveInt Patient.contact.telecom.rank
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.contact.telecom.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
address 0..1 Address Patient.contact.address
hasValue() or (children().count() > id.count())
gender 0..1 codeBinding Patient.contact.gender
hasValue() or (children().count() > id.count())
organization I 0..1 Reference(UK Core Organization) Element Id Patient.contact.organization
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.contact.organization.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.contact.organization.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.contact.organization.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.contact.organization.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.contact.organization.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.contact.organization.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.contact.organization.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.contact.organization.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.contact.organization.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.contact.organization.display
hasValue() or (children().count() > id.count())
period I 0..1 Period Patient.contact.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
communication 0..* BackboneElement Patient.communication
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.communication.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
proficiency I 0..1 Extension(Complex) Element Id Patient.communication.extension:proficiency
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
extension I 0..* Extension Element Id Patient.communication.extension:proficiency.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
level I 0..1 Extension Patient.communication.extension:proficiency.extension:level
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 uriFixed Value Patient.communication.extension:proficiency.extension:level.url
level
value[x] 1..1 Binding Element Id Patient.communication.extension:proficiency.extension:level.value[x]
hasValue() or (children().count() > id.count())
valueCoding Coding type I 0..* Extension Patient.communication.extension:proficiency.extension:type
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 uriFixed Value Patient.communication.extension:proficiency.extension:type.url
type
value[x] 1..1 Binding Element Id Patient.communication.extension:proficiency.extension:type.value[x]
hasValue() or (children().count() > id.count())
valueCoding Coding url 1..1 System.StringFixed Value Patient.communication.extension:proficiency.url
http://hl7.org/fhir/StructureDefinition/patient-proficiency
value[x] 0..0 Patient.communication.extension:proficiency.value[x]
hasValue() or (children().count() > id.count())
language 1..1 CodeableConceptBinding Element Id Patient.communication.language
hasValue() or (children().count() > id.count())
preferred 0..1 boolean Patient.communication.preferred
hasValue() or (children().count() > id.count())
generalPractitioner I 0..* Reference(UK Core Practitioner | UK Core Organization | UK Core PractitionerRole) Element Id Patient.generalPractitioner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.generalPractitioner.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.generalPractitioner.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.generalPractitioner.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.generalPractitioner.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.generalPractitioner.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.generalPractitioner.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.generalPractitioner.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.generalPractitioner.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.generalPractitioner.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.generalPractitioner.display
hasValue() or (children().count() > id.count())
managingOrganization Σ I 0..1 Reference(UK Core Organization) Element Id Patient.managingOrganization
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.managingOrganization.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.managingOrganization.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.managingOrganization.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.managingOrganization.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.managingOrganization.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.managingOrganization.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.managingOrganization.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.managingOrganization.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.managingOrganization.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.managingOrganization.display
hasValue() or (children().count() > id.count())
link Σ ?! 0..* BackboneElement Patient.link
hasValue() or (children().count() > id.count())
other Σ I 1..1 Reference(UK Core Patient | UK Core RelatedPerson) Element Id Patient.link.other
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.link.other.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.link.other.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.link.other.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.link.other.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.link.other.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.link.other.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.link.other.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.link.other.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.link.other.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.link.other.display
hasValue() or (children().count() > id.count())
type Σ 1..1 codeBinding Patient.link.type
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
Patient
This resource is used to communicate details about the patient who is the subject of the referral.
It also includes contact information for third parties when required.
https://simplifier.net/hl7fhirukcorer4/ukcore-patient
1..1
Patient.id
It also includes contact information for third parties when required.
MUST
0..1
9589fb37-87a2-48d8-968f-b371429208a8
Patient.meta
https://simplifier.net/hl7fhirukcorer4/ukcore-patient
MUST
1..1
Patient.meta.profile
This MUST be populated. Follow UK Core guidance for populating this element
MUST
1..1
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient
Patient.meta.LastUpdate
All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
1..1
2023-03-08T12:01:08.4677672+00:00
Patient.identifier
This is a human readable patient identifier. This MUST be populated with the NHS number when available. Additionally a Local Patient Identifier Should be populated where available. If no NHS number is available this Should be populated with the Local patient identifier.
SHOULD
0..*
Patient.identifier.system
https://simplifier.net/hl7fhirukcorer4/ukcore-nhsnumberverificationstatus-duplicate-2
SHOULD
1..1
https://fhir.nhs.uk/Id/nhs-number
Patient.identifier.value
This SHOULD be populated with a human readable patient identifier. When used this MUST be populated with the NHS number when available.If no NHS number is available this SHOULD be populated with the Local patient identifier.
SHOULD
1..1
3478526985
Patient.identifier.extension
This extension is used to record the NHS number Verification status
SHOULD
0..*
Patient.identifier.extension.url
This SHOULD be populated. Where used this MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus' - FIXED VALUE
SHOULD
1..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept
SHOULD
0..1
Patient.identifier.extension.valueCodeableConcept.coding
SHOULD
0..1
Patient.identifier.extension.valueCodeableConcept.coding.system
https://simplifier.net/hl7fhirukcorer4/extensionukcorenhsnumberverificationstatus
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept.coding.code
Follow UK Core guidance for populating this element
SHOULD
0..1
number-present-and-verified
Patient.identifier.extension.valueCodeableConcept.coding.display
Follow UK Core guidance for populating this element
SHOULD
0..1
Number present and verified
Patient.name
SHOULD
0..*
Patient.name.use
Follow UK Core guidance for populating this element
SHOULD
0..1
official
Patient.name.text
Follow UK Core guidance for populating this element
SHOULD
0..1
Mrs Julie Jones
Patient.name.family
Follow UK Core guidance for populating this element
SHOULD
0..1
Jones
Patient.name.given
Follow UK Core guidance for populating this element
SHOULD
0..1
Julie
Patient.name.prefix
Follow UK Core guidance for populating this element
SHOULD
0..1
Mrs
Patient.gender
Follow UK Core guidance for populating this element
SHOULD
0..1
female
Patient.birthDate
Follow UK Core guidance for populating this element
SHOULD
0..1
1959-05-04
Patient.address
Follow UK Core guidance for populating this element
SHOULD
0..*
Patient.address.use
Follow UK Core guidance for populating this element
SHOULD
0..1
home
Patient.address.type
Follow UK Core guidance for populating this element
SHOULD
0..1
both
Patient.address.text
Follow UK Core guidance for populating this element
SHOULD
0..1
22 Brightside Crescent, Overtown, West Yorkshire, LS10 4YU
Patient.address.line
Follow UK Core guidance for populating this element
SHOULD
0..*
22 Brightside Crescent
Patient.address.city
Follow UK Core guidance for populating this element
SHOULD
0..1
Overtown
Patient.address.district
Follow UK Core guidance for populating this element
SHOULD
0..1
West Yorkshire
Patient.address.postalCode
Follow UK Core guidance for populating this element
SHOULD
0..1
LS10 4YU
Patient.contact
This should be used to record telecom information for the patient and/or the patient's representative for the encounter
MUST
0..*
Patient.contact.extension
MUST
0..*
Patient.contact.extension.url
This MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank' - FIXED VALUE
MUST
0..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference
Patient.contact.extension.urlvaluePositiveInt
This MUST be populated with the rank of the whole contact and MUST be populated with the value '1' for the primary person to contact for referral. There MUST be at least one contact for the referral.
MUST
0..1
1
Patient.contact.relationship
MUST
0..*
Patient.contact.relationship.coding
MUST
0..*
Patient.contact.relationship.coding.system
This MUST be populated with the CodeSystem from the ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
Where the contact details relate to the patient this relationship MUST be populated with the value 'self'.
Where the contact details relate to a patient's representative this SHOULD be populated with their relationship to the patient.
If the relationship is not known this SHOULD be populated with the value 'Unknown'MUST
0..1
https://simplifier.net/hl7fhirukcorer4/ukcore-personrelationshiptype-110
Patient.contact.relationship.coding.code
This MUST be populated with Code of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
MUST
0..1
EP
Patient.contact.relationship.coding.display
This MUST be populated with Display of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
MUST
0..1
EP
Patient.contact.name
SHOULD
0..1
Patient.contact.name.family
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Grayson
Patient.contact.name.given
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Jack
Patient.contact.telecom
MUST
0..*
Patient.contact.telecom.system
This MUST be populated for the rank 1 contact. There MUST be at least one contact phone number for the referral
MUST
0..1
phone
Patient.contact.telecom.value
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
0789 1234567
Patient.contact.gender
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
male
Patient.Communication
SHOULD
0..*
Patient.Communication.Language
MUST
1..1
Patient.Communication.Language.coding
MUST
1..1
Patient.Communication.Language.coding.code
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
en
Patient.Communication.Language.coding.system
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-HumanLanguage
Patient.Communication.Language.coding.display
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
English
Patient.Communication.Language.preferred
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
TRUE
Patient.extension
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..*
Patient.extension.url
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory
Patient.extension.url.valueCodeableConcept
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Patient.extension.url.valueCodeableConcept.coding
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Patient.extension.url.valueCodeableConcept.coding.system
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategory
Patient.extension.url.valueCodeableConcept.coding.code
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
A
Patient.extension.url.valueCodeableConcept.coding.display
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
British, Mixed British
Patient.generalPractitioner
This SHOULD be populated with a reference to the GP Surgery ONLY rather than a specific practitioner
SHOULD
0..*
Patient.generalPractitioner.reference
This SHOULD be populated. Where populated this MUST reference to an Organisation resource
SHOULD
0..1
urn:uuid:b83d13e2-8c2e-422c-88ac-63b8e86a4411
This resource is used to communicate details about the sender and receiver organisations. A grouping of people or organizations with a common purpose A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Main location extensions, user content The main location of the organisation. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(UK Core Location)) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MainLocation The date range that this organization should be considered available. extensions, user content The date range that this organization should be considered available. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/organization-period identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The date range that this organization should be considered available. The date range that this organization should be considered available. Identifies this organization across multiple systems Identifier for the organization that is used to identify the organization across multiple disparate systems. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. Unordered, Open, by system(Value) Constraints Organisation Data Service code Identifier code supplier by the Organisation Data Service. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) ODS Site code to identify the organisation at site level ODS Site code to identify the organisation at site level. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Whether the organization's record is still in active use Whether the organization's record is still in active use. Need a flag to indicate a record is no longer to be used and should generally be hidden for the user in the UI. This active flag is not intended to be used to mark an organization as temporarily closed or under construction. Instead the Location(s) within the Organization should have the suspended status. If further details of the reason for the suspension are required, then an extension on this element should be used. This element is labeled as a modifier because it may be used to mark that the resource was created in error. This resource is generally assumed to be active if no value is provided for the active element Kind of organization The kind(s) of organization that this is. Need to be able to track the kind of organization that this is - different organization types have different uses. Organizations can be corporations, wards, sections, clinical teams, government departments, etc. Note that code is generally a classifier of the type of organization; in many applications, codes are used to identity a particular organization (say, ward) as opposed to another of the same type - these are identifiers, not codes When considering if multiple types are appropriate, you should evaluate if child organizations would be a more appropriate use of the concept, as different types likely are in different sub-areas of the organization. This is most likely to be used where type values have orthogonal values, such as a religious, academic and medical center. We expect that some jurisdictions will profile this optionality to be a single cardinality. Used to categorize the organization. Name used for the organization A name associated with the organization. Need to use the name as the label of the organization. If the name of an organization changes, consider putting the old name in the alias column so that it can still be located through searches. A list of alternate names that the organization is known as, or was known as in the past A list of alternate names that the organization is known as, or was known as in the past. Over time locations and organizations go through many changes and can be known by different names. For searching knowing previous names that the organization was known by can be very useful. There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the organization. A contact detail for the organization A contact detail for the organization. Human contact for the organization. The use code 'home' is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself. An address for the organization An address for the organization. May need to keep track of the organization's addresses for contacting, billing or reporting requirements. Organization may have multiple addresses with different uses or applicable periods. The use code 'home' is not to be used. The organization of which this organization forms a part The organization of which this organization forms a part. Need to be able to track the hierarchy of organizations within an organization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Contact for the organization for a certain purpose Contact for the organization for a certain purpose. Need to keep track of assigned contact points within bigger organization. Where multiple contacts for the same purpose are provided there is a standard extension that can be used to determine which one is the preferred contact to use. The type of contact Indicates a purpose for which the contact can be reached. Need to distinguish between multiple contact persons. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The purpose for which you would contact a contact party. A name associated with the contact A name associated with the contact. Need to be able to track the person by name. Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely. Contact details (telephone, email, etc.) for a contact A contact detail (e.g. a telephone number or an email address) by which the party may be contacted. People have (primary) ways to contact them in some way such as phone, email. Visiting or postal addresses for the contact Visiting or postal addresses for the contact. May need to keep track of a contact party's address for contacting, billing or reporting requirements. Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource). Technical endpoints providing access to services operated for the organization Technical endpoints providing access to services operated for the organization. Organizations have multiple systems that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
> Organization
Organization I Organization Organization
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
(identifier.count() + name.count()) > 0
extension I 0..* Extension Element Id Organization.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
mainLocation I 0..* Extension(Reference(UK Core Location)) Element Id Organization.extension:mainLocation
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
organizationPeriod I 0..1 Extension(Period) Element Id Organization.extension:organizationPeriod
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Organization.extension:organizationPeriod.url
http://hl7.org/fhir/StructureDefinition/organization-period
value[x] 1..1 Element Id Organization.extension:organizationPeriod.value[x]
hasValue() or (children().count() > id.count())
valuePeriod Period identifier Σ I 0..* Identifier Element Id Organization.identifier
hasValue() or (children().count() > id.count())
odsOrganisationCode Σ I 0..1 Identifier Element Id Organization.identifier:odsOrganisationCode
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.identifier:odsOrganisationCode.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.identifier:odsOrganisationCode.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Organization.identifier:odsOrganisationCode.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/ods-organization-code
value Σ 1..1 string Organization.identifier:odsOrganisationCode.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.identifier:odsOrganisationCode.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.identifier:odsOrganisationCode.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
odsSiteCode Σ I 0..1 Identifier Element Id Organization.identifier:odsSiteCode
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.identifier:odsSiteCode.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.identifier:odsSiteCode.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Organization.identifier:odsSiteCode.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/ods-site-code
value Σ 1..1 string Organization.identifier:odsSiteCode.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.identifier:odsSiteCode.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.identifier:odsSiteCode.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
active Σ ?! 0..1 boolean Organization.active
hasValue() or (children().count() > id.count())
type Σ 0..* CodeableConcept Organization.type
hasValue() or (children().count() > id.count())
name Σ I 0..1 string Organization.name
hasValue() or (children().count() > id.count())
alias 0..* string Organization.alias
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Organization.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
where(use = 'home').empty()
address I 0..* Address Organization.address
hasValue() or (children().count() > id.count())
where(use = 'home').empty()
partOf Σ I 0..1 Reference(UK Core Organization) Element Id Organization.partOf
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Organization.partOf.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Organization.partOf.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Organization.partOf.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.partOf.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.partOf.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Organization.partOf.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Organization.partOf.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.partOf.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.partOf.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Organization.partOf.display
hasValue() or (children().count() > id.count())
contact 0..* BackboneElement Organization.contact
hasValue() or (children().count() > id.count())
purpose 0..1 CodeableConceptBinding Organization.contact.purpose
hasValue() or (children().count() > id.count())
name 0..1 HumanName Organization.contact.name
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Organization.contact.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
address 0..1 Address Organization.contact.address
hasValue() or (children().count() > id.count())
endpoint I 0..* Reference(Endpoint) Organization.endpoint
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Organization.endpoint.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Organization.endpoint.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Organization.endpoint.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.endpoint.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.endpoint.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Organization.endpoint.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Organization.endpoint.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.endpoint.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.endpoint.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Organization.endpoint.display
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
Organization
This resource is used to communicate details about the sender organisations.
https://simplifier.net/hl7fhirukcorer4/ukcore-organization
2..*
Organization.id
This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response.
MUST
0..1
5d897313-c62d-4e7e-92b7-b2199804fed3
Organization.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
1..1
Organization.meta.profile
This MUST be populated. Follow UK Core guidance for populating this element
MUST
1..1
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization
Organization.meta.lastUpdated
This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
1..1
2023-03-08T12:01:08.4677672+00:00
Organization.identifier
This MUST be populated with an organisation identifier e.g. ODS code
MUST
0..*
Organization.identifier.system
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
https://fhir.nhs.uk/id/ods-organization-code
Organization.identifier.value
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
ABD01
Organization.name
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
Organisation name
Entity Relationship Diagram - Cancellation Referral Request
The below diagram details the Cancellation Referral Request
Cancellation Booking Request Payload
MessageHeader Resource
Standard Patterns for BaRS Operations explains in detail how the MessageHeader resource must be used.
When cancelling a booking, in conjunction with the guidance provided under the Standard Patterns, the three important elements which drive workflow must be used as follows:
- eventCoding - this must be the same code as used in the request.
- reasonCode - a cancellation follows an initial request, therefore, this must always be 'update' for cancellation.
- definition - cancellation has a unique MessageDefinition the request must adhere to.
- focus - must point to the Appointment resource.
Appointment Resource
The 'focus' resource in a cancellation booking request is the Appointment resource. When the payload is created by the Sender and processed by the Receiver, this is the starting point from which it (the bundle) is understood and provides either the detail or references to all key FHIR resources, for example, the Patient. The guidance for this resource below provides more granular, element level, detail.
When a Receiver processes the cancellation booking request, the two key elements used are the Appointment.id and Appointment.status. The .id must already exist as a 'booked' (status) booking on the Receiver system (this must have been confirmed by a prior read (GET) by the Sender) and the .status, in the request, must be 'cancelled'. No other status is valid in the cancellation booking request.
Patient Resource
Key patient demographics should be cross-referenced between the current 'booked' (status) booking and incoming cancellation booking request to ensure validity.
Payload for Booking Cancellation Request
This payload is used to transmit all the necessary information that is required to transmit the cancellation of a Booking.
> Bundle
The Bundle resource is the container for the event message.
Bundle | I | Bundle | There are no (further) constraints on this element Element IdBundle Contains a collection of resources DefinitionA container for a collection of resources.
| |
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.identifier Persistent identifier for the bundle DefinitionA persistent identifier for the bundle that won't change as a bundle is copied from server to server. Persistent identity generally only matters for batches of type Document, Message, and Collection. It would not normally be populated for search and history results and servers ignore Bundle.identifier when processing batches and transactions. For Documents the .identifier SHALL be populated such that the .identifier is globally unique.
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
type | Σ | 1..1 | codeBindingFixed Value | Element IdBundle.type document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection DefinitionIndicates the purpose of this bundle - how it is intended to be used. It's possible to use a bundle for other purposes (e.g. a document can be accepted as a transaction). This is primarily defined so that there can be specific rules for some of the bundle types. Indicates the purpose of a bundle - how it is intended to be used. BundleType (required)Constraints
message
|
timestamp | Σ | 1..1 | instant | There are no (further) constraints on this element Element IdBundle.timestamp When the bundle was assembled DefinitionThe date/time that the bundle was assembled - i.e. when the resources were placed in the bundle. For many bundles, the timestamp is equal to .meta.lastUpdated, because they are not stored (e.g. search results). When a bundle is placed in a persistent store, .meta.lastUpdated will be usually be changed by the server. When the bundle is a message, a middleware agent altering the message (even if not stored) SHOULD update .meta.lastUpdated. .timestamp is used to track the original time of the Bundle, and SHOULD be populated. Usage:
The timestamp value should be greater than the lastUpdated and other timestamps in the resources in the bundle, and it should be equal or earlier than the .meta.lastUpdated on the Bundle itself.
|
total | Σ I | 0..1 | unsignedInt | There are no (further) constraints on this element Element IdBundle.total If search, the total number of matches DefinitionIf a set of search matches, this is the total number of entries of type 'match' across all pages in the search. It does not include search.mode = 'include' or 'outcome' entries and it does not provide a count of the number of entries in the Bundle. Only used if the bundle is a search result set. The total does not include resources such as OperationOutcome and included resources, only the total number of matching resources.
|
link | Σ | 0..* | BackboneElement | There are no (further) constraints on this element Element IdBundle.link Links related to this Bundle DefinitionA series of links that provide context to this bundle. Both Bundle.link and Bundle.entry.link are defined to support providing additional context when Bundles are used (e.g. HATEOAS). Bundle.entry.link corresponds to links found in the HTTP header if the resource in the entry was read directly. This specification defines some specific uses of Bundle.link for searching and paging, but no specific uses for Bundle.entry.link, and no defined function in a transaction - the meaning is implementation specific.
|
relation | Σ | 1..1 | string | There are no (further) constraints on this element Element IdBundle.link.relation See http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1 DefinitionA name which details the functional use for this link - see http://www.iana.org/assignments/link-relations/link-relations.xhtml#link-relations-1. Note that FHIR strings SHALL NOT exceed 1MB in size
|
url | Σ | 1..1 | uri | There are no (further) constraints on this element Element IdBundle.link.url Reference details for the link DefinitionThe reference details for the link. see http://en.wikipedia.org/wiki/Uniform_resource_identifier
|
entry | Σ I | 0..* | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry Entry in the bundle - will have a resource or information DefinitionAn entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).
|
link | Σ | 0..* | see (link) | There are no (further) constraints on this element Element IdBundle.entry.link Links related to this entry DefinitionA series of links that provide context to this entry. |
fullUrl | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.fullUrl URI for resource (Absolute URL server address or URI for UUID/OID) DefinitionThe Absolute URL for the resource. The fullUrl SHALL NOT disagree with the id in the resource - i.e. if the fullUrl is not a urn:uuid, the URL shall be version-independent URL consistent with the Resource.id. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that:
fullUrl might not be unique in the context of a resource. Note that since FHIR resources do not need to be served through the FHIR API, the fullURL might be a URN or an absolute URL that does not end with the logical id of the resource (Resource.id). However, but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then the 'id' portion of the fullUrl SHALL end with the Resource.id. Note that the fullUrl is not the same as the canonical URL - it's an absolute url for an endpoint serving the resource (these will happen to have the same value on the canonical server for the resource with the canonical URL).
|
resource | Σ | 0..1 | Resource | There are no (further) constraints on this element Element IdBundle.entry.resource A resource in the bundle DefinitionThe Resource for the entry. The purpose/meaning of the resource is determined by the Bundle.type.
|
search | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.search Search related information DefinitionInformation about the search process that lead to the creation of this entry.
|
mode | Σ | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.entry.search.mode match | include | outcome - why this is in the result set DefinitionWhy this entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process. There is only one mode. In some corner cases, a resource may be included because it is both a match and an include. In these circumstances, 'match' takes precedence. Why an entry is in the result set - whether it's included as a match or because of an _include requirement, or to convey information or warning information about the search process. SearchEntryMode (required)Constraints
|
score | Σ | 0..1 | decimal | There are no (further) constraints on this element Element IdBundle.entry.search.score Search ranking (between 0 and 1) DefinitionWhen searching, the server's search ranking score for the entry. Servers are not required to return a ranking score. 1 is most relevant, and 0 is least relevant. Often, search results are sorted by score, but the client may specify a different sort order. See Patient Match for the EMPI search which relates to this element.
|
request | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.request Additional execution information (transaction/batch/history) DefinitionAdditional information about how this entry should be processed as part of a transaction or batch. For history, it shows how the entry was processed to create the version contained in the entry.
|
method | Σ | 1..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.entry.request.method GET | HEAD | POST | PUT | DELETE | PATCH DefinitionIn a transaction or batch, this is the HTTP action to be executed for this entry. In a history bundle, this indicates the HTTP action that occurred. Note that FHIR strings SHALL NOT exceed 1MB in size HTTP verbs (in the HTTP command line). See [HTTP rfc](https://tools.ietf.org/html/rfc7231) for details. HTTPVerb (required)Constraints
|
url | Σ | 1..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.request.url URL for HTTP equivalent of this entry DefinitionThe URL for this entry, relative to the root (the address to which the request is posted). E.g. for a Patient Create, the method would be "POST" and the URL would be "Patient". For a Patient Update, the method would be PUT and the URL would be "Patient/[id]".
|
ifNoneMatch | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifNoneMatch For managing cache currency DefinitionIf the ETag values match, return a 304 Not Modified status. See the API documentation for "Conditional Read". Note that FHIR strings SHALL NOT exceed 1MB in size
|
ifModifiedSince | Σ | 0..1 | instant | There are no (further) constraints on this element Element IdBundle.entry.request.ifModifiedSince For managing cache currency DefinitionOnly perform the operation if the last updated date matches. See the API documentation for "Conditional Read". Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required
|
ifMatch | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifMatch For managing update contention DefinitionOnly perform the operation if the Etag value matches. For more information, see the API section "Managing Resource Contention". Note that FHIR strings SHALL NOT exceed 1MB in size
|
ifNoneExist | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.request.ifNoneExist For conditional creates DefinitionInstruct the server not to perform the create if a specified resource already exists. For further information, see the API documentation for "Conditional Create". This is just the query portion of the URL - what follows the "?" (not including the "?"). Note that FHIR strings SHALL NOT exceed 1MB in size
|
response | Σ I | 0..1 | BackboneElement | There are no (further) constraints on this element Element IdBundle.entry.response Results of execution (transaction/batch/history) DefinitionIndicates the results of processing the corresponding 'request' entry in the batch or transaction being responded to or what the results of an operation where when returning history.
|
status | Σ | 1..1 | string | There are no (further) constraints on this element Element IdBundle.entry.response.status Status response code (text optional) DefinitionThe status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code. Note that FHIR strings SHALL NOT exceed 1MB in size
|
location | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.entry.response.location The location (if the operation returns a location) DefinitionThe location header created by processing this operation, populated if the operation returns a location. see http://en.wikipedia.org/wiki/Uniform_resource_identifier
|
etag | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.entry.response.etag The Etag for the resource (if relevant) DefinitionThe Etag for the resource, if the operation for the entry produced a versioned resource (see Resource Metadata and Versioning and Managing Resource Contention). Etags match the Resource.meta.versionId. The ETag has to match the version id in the header if a resource is included.
|
lastModified | Σ | 0..1 | instant | There are no (further) constraints on this element Element IdBundle.entry.response.lastModified Server's date time modified DefinitionThe date/time that the resource was modified on the server. This has to match the same time in the meta header (meta.lastUpdated) if a resource is included.
|
outcome | Σ | 0..1 | Resource | There are no (further) constraints on this element Element IdBundle.entry.response.outcome OperationOutcome with hints and warnings (for batch/transaction) DefinitionAn OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction. For a POST/PUT operation, this is the equivalent outcome that would be returned for prefer = operationoutcome - except that the resource is always returned whether or not the outcome is returned. This outcome is not used for error responses in batch/transaction, only for hints and warnings. In a batch operation, the error will be in Bundle.entry.response, and for transaction, there will be a single OperationOutcome instead of a bundle in the case of an error.
|
signature | Σ | 0..1 | Signature | There are no (further) constraints on this element Element IdBundle.signature Digital Signature DefinitionDigital Signature - base64 encoded. XML-DSig or a JWT. A Signature holds an electronic representation of a signature and its supporting context in a FHIR accessible form. The signature may either be a cryptographic type (XML DigSig or a JWS), which is able to provide non-repudiation proof, or it may be a graphical image that represents a signature or a signature process. This element allows capturing signatures on documents, messages, transactions or even search responses, to support content-authentication, non-repudiation or other business cases. This is primarily relevant where the bundle may travel through multiple hops or via other mechanisms where HTTPS non-repudiation is insufficient. The signature could be created by the "author" of the bundle or by the originating device. Requirements around inclusion of a signature, verification of signatures and treatment of signed/non-signed bundles is implementation-environment specific.
|
type | Σ | 1..* | CodingBinding | There are no (further) constraints on this element Element IdBundle.signature.type Indication of the reason the entity signed the object(s) DefinitionAn indication of the reason that the entity signed this document. This may be explicitly included as part of the signature information and can be used when determining accountability for various actions concerning the document. Examples include attesting to: authorship, correct transcription, and witness of specific event. Also known as a "Commitment Type Indication". An indication of the reason that an entity signed the object. SignatureTypeCodes (preferred)Constraints
|
when | Σ | 1..1 | instant | There are no (further) constraints on this element Element IdBundle.signature.when When the signature was created DefinitionWhen the digital signature was signed. This should agree with the information in the signature.
|
who | Σ I | 1..1 | Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) | There are no (further) constraints on this element Element IdBundle.signature.who Who signed DefinitionA reference to an application-usable description of the identity that signed (e.g. the signature used their private key). This should agree with the information in the signature. Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) Constraints
|
reference | Σ I | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.reference Literal reference, Relative, internal or absolute URL DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.
|
type | Σ | 0..1 | uriBinding | There are no (further) constraints on this element Element IdBundle.signature.who.type Type the reference refers to (e.g. "Patient") DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). ResourceType (extensible)Constraints
|
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.signature.who.identifier Logical reference, when literal reference is not known DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.signature.who.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
display | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.who.display Text alternative for the resource DefinitionPlain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
|
onBehalfOf | Σ I | 0..1 | Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf The party represented DefinitionA reference to an application-usable description of the identity that is represented by the signature. used when the signature is on behalf of a non-signer. The party that can't sign. For example a child. Reference(Device | UK Core PractitionerRole | UK Core Organization | UK Core Practitioner | UK Core RelatedPerson | UK Core Patient) Constraints
|
reference | Σ I | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.reference Literal reference, Relative, internal or absolute URL DefinitionA reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server.
|
type | Σ | 0..1 | uriBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.type Type the reference refers to (e.g. "Patient") DefinitionThe expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). ResourceType (extensible)Constraints
|
identifier | Σ | 0..1 | Identifier | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier Logical reference, when literal reference is not known DefinitionAn identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any).
|
use | Σ ?! | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.use usual | official | temp | secondary | old (If known) DefinitionThe purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . IdentifierUse (required)Constraints
|
type | Σ | 0..1 | CodeableConceptBinding | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.type Description of identifier DefinitionA coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. Identifier Type Codes (extensible)Constraints
|
system | Σ | 0..1 | uri | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.system The namespace for the identifier value DefinitionEstablishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive.
General http://www.acme.com/identifiers/patient Mappings
|
value | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.value The value that is unique DefinitionThe portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe.
General 123456 Mappings
|
period | Σ I | 0..1 | Period | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.period Time period when id is/was valid for use DefinitionTime period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration.
|
assigner | Σ I | 0..1 | Reference(UK Core Organization) | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.identifier.assigner Organization that issued id (may be just text) DefinitionOrganization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Constraints
|
display | Σ | 0..1 | string | There are no (further) constraints on this element Element IdBundle.signature.onBehalfOf.display Text alternative for the resource DefinitionPlain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
|
targetFormat | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.targetFormat The technical format of the signed resources DefinitionA mime type that indicates the technical format of the target resources signed by the signature. "xml", "json" and "ttl" are allowed, which describe the simple encodings described in the specification (and imply appropriate bundle support). Otherwise, mime types are legal here. The mime type of an attachment. Any valid mime type is allowed. Mime Types (required)Constraints
| |
sigFormat | 0..1 | codeBinding | There are no (further) constraints on this element Element IdBundle.signature.sigFormat The technical format of the signature DefinitionA mime type that indicates the technical format of the signature. Important mime types are application/signature+xml for X ML DigSig, application/jose for JWS, and image/* for a graphical image of a signature, etc. Note that FHIR strings SHALL NOT exceed 1MB in size The mime type of an attachment. Any valid mime type is allowed. Mime Types (required)Constraints
| |
data | 0..1 | base64Binary | There are no (further) constraints on this element Element IdBundle.signature.data The actual signature content (XML DigSig. JWS, picture, etc.) DefinitionThe base64 encoding of the Signature content. When signature is not recorded electronically this element would be empty. Where the signature type is an XML DigSig, the signed content is a FHIR Resource(s), the signature is of the XML form of the Resource(s) using XML-Signature (XMLDIG) "Detached Signature" form.
|
Data Item | Implementation Guidance | Necessity | Profile Cardinality | Example Value(s) |
---|---|---|---|---|
Bundle | The Bundle resource is the container for the event message https://simplifier.net/nhsbookingandreferrals/barsbundlemessage | 1..1 | ||
Bundle.id | This id is generated by the originating sender of the message, retained in subsequent messages.. | MUST | 1..1 | 79120f41-a431-4f08-bcc5-1e67006fcae0 |
Bundle.meta | https://www.hl7.org/fhir/resource.html#Meta | MUST | 0..1 | |
Bundle.meta.profile | This MUST be populated with the structure definition for BaRSBundleMessage : 'https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage' - FIXED VALUE | MUST | 0..1 | https://fhir.nhs.uk/StructureDefinition/BARSBundleMessage |
Bundle.meta.lastUpdated | All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent. | MUST | 1..1 | 2023-03-08T12:01:08.4677672+00:00 |
Bundle.type | This must be populated with 'message' - FIXED VALUE | MUST | 1..1 | message |
Bundle.timestamp | the date that the content of the message was assembled. This date is not changed by middleware engines unless they add additional data that changes the meaning of the time of the message | MUST | 0..1 | 2023-03-08T12:01:08.4677672+00:00 |
Bundle.entry(s) | Follow BaRS profile guidance for populating this element | MUST | 1..* | |
Bundle.entry.fullUrl | unique identifier for the resource entry. Transient id relative to the bundle | MUST | 0..1 | urn:uuid:1cbdfb97-5859-48a4-8301-d54eab818d68 |
Bundle.entry.resourceType | Resources detailed in the message definition. | MUST | 0..1 | MessageHeader,Patient, Encounter |
A resource that describes the BaRS message being exchanged between two systems. A resource that describes a message that is exchanged between systems The header for a message exchange that is either requesting or responding to an action. The reference(s) that are the subject of the action as well as other information related to the action are typically transmitted in a bundle in which the MessageHeader resource instance is the first resource in the bundle. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) An extension to carry a specific instruction for receivers of the message. extensions, user content An extension to carry a specific instruction for receivers of the message. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MessageHeaderInstruction Code for the event this message represents or link to event definition Code that identifies the event this message represents and connects it with its definition. Events defined as part of the FHIR specification have the system value "http://terminology.hl7.org/CodeSystem/message-events". Alternatively uri to the EventDefinition. Drives the behavior associated with this message. The time of the event will be found in the focus resource. The time of the message will be found in Bundle.timestamp. Message event Message destination application(s) The destination application which the message is intended for. Indicates where message is to be sent for routing purposes. Allows verification of "am I the intended recipient". There SHOULD be at least one destination, but in some circumstances, the source system is unaware of any particular destination system. Name of system Human-readable name for the target system. May be used for routing of response and/or to support audit. Note that FHIR strings SHALL NOT exceed 1MB in size Particular delivery destination within the destination Identifies the target end system in situations where the initial message transmission is to an intermediary system. Supports multi-hop routing. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Actual destination address or id Indicates where the message should be routed to. Identifies where to route the message. The id may be a non-resolvable URI for systems that do not use standard network-based addresses. Intended "real-world" recipient for the data Allows data conveyed by a message to be addressed to a particular person or department when routing to a specific application isn't sufficient. Allows routing beyond just the application level. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization | UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Real world sender of the message Identifies the sending system to allow the use of a trust relationship. Allows routing beyond just the application level. Use case is for where a (trusted) sending system is responsible for multiple organizations, and therefore cannot differentiate based on source endpoint / authentication alone. Reference(UK Core PractitionerRole | UK Core Organization | UK Core Practitioner) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The source of the data entry The person or device that performed the data entry leading to this message. When there is more than one candidate, pick the most proximal to the message. Can provide other enterers in extensions. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The source of the decision The logical author of the message - the person or device that decided the described event should happen. When there is more than one candidate, pick the most proximal to the MessageHeader. Can provide other authors in extensions. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Practitioner | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Message source application The source application from which this message originated. Allows replies, supports audit. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Optional Extensions Element extensions, user content Optional Extension Element - found in all resources. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.nhs.uk/StructureDefinition/CDSSExtension Name of system Human-readable name for the source system. May be used to support audit. Note that FHIR strings SHALL NOT exceed 1MB in size Name of software running the system May include configuration or other information useful in debugging. Supports audit and possibly interface engine behavior. Note that FHIR strings SHALL NOT exceed 1MB in size Version of software running Can convey versions of multiple systems in situations where a message passes through multiple hands. Supports audit and possibly interface engine behavior. Note that FHIR strings SHALL NOT exceed 1MB in size Human contact for problems An e-mail, phone, website or other contact point to use to resolve issues with message communications. Allows escalation of technical issues. Actual message source address or id Identifies the routing target to send acknowledgements to. Identifies where to send responses, may influence security permissions. The uri of the Requester’s endpoint Final responsibility for event The person or organization that accepts overall responsibility for the contents of the message. The implication is that the message event happened under the policies of the responsible party. Need to know for audit/traceback requirements and possibly for authorization. Usually only for the request but can be used in a response. Reference(UK Core Organization | UK Core PractitionerRole | UK Core Practitioner) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Cause of event Coded indication of the cause for the event - indicates a reason for the occurrence of the event that is a focus of this message. Need to be able to track why resources are being changed and report in the audit log/history of the resource. May affect authorization. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. Reason for event occurrence. Code defined by a terminology system A reference to a code defined by a terminology system. Allows for alternative encodings within a code system, and translations to other code systems. Codes may be defined very casually in enumerations, or code lists, up to very formal definitions such as SNOMED CT - see the HL7 v3 Core Principles for more information. Ordering of codings is undefined and SHALL NOT be used to infer meaning. Generally, at most only one of the coding values will be labeled as UserSelected = true. Identity of the terminology system The identification of the code system that defines the meaning of the symbol in the code. Need to be unambiguous about the source of the definition of the symbol. The URI may be an OID (urn:oid:...) or a UUID (urn:uuid:...). OIDs and UUIDs SHALL be references to the HL7 OID registry. Otherwise, the URI should come from HL7's list of FHIR defined special URIs or it should reference to some definition that establishes the system clearly and unambiguously. Version of the system - if relevant The version of the code system which was used when choosing this code. Note that a well-maintained code system does not need the version reported, because the meaning of codes is consistent across versions. However this cannot consistently be assured, and when the meaning is not guaranteed to be consistent, the version SHOULD be exchanged. Where the terminology does not clearly define what string should be used to identify code system versions, the recommendation is to use the date (expressed in FHIR date format) on which that version was officially published as the version date. Symbol in syntax defined by the system A symbol in syntax defined by the system. The symbol may be a predefined code or an expression in a syntax defined by the coding system (e.g. post-coordination). Need to refer to a particular code in the system. Note that FHIR strings SHALL NOT exceed 1MB in size Representation defined by the system A representation of the meaning of the code in the system, following the rules of the system. Need to be able to carry a human-readable meaning of the code for readers that do not know the system. Note that FHIR strings SHALL NOT exceed 1MB in size If this coding was chosen directly by the user Indicates that this coding was chosen by a user directly - e.g. off a pick list of available items (codes or displays). This has been identified as a clinical safety criterium - that this exact system/code pair was chosen explicitly, rather than inferred by the system based on some rules or language processing. Amongst a set of alternatives, a directly chosen code is the most appropriate starting point for new translations. There is some ambiguity about what exactly 'directly chosen' implies, and trading partner agreement may be needed to clarify the use of this element and its consequences more completely. Plain text representation of the concept A human language representation of the concept as seen/selected/uttered by the user who entered the data and/or which represents the intended meaning of the user. The codes from the terminologies do not always capture the correct meaning with all the nuances of the human using them, or sometimes there is no appropriate code at all. In these cases, the text is used to capture the full meaning of the source. Very often the text is the same as a displayName of one of the codings. If this is a reply to prior message Information about the message that this message is a response to. Only present if this message is a response. Id of original message The MessageHeader.id of the message to which this message is a response. Allows receiver to know what message is being responded to. RFC 4122 ok | transient-error | fatal-error Code that identifies the type of response to the message - whether it was successful or not, and whether it should be resent or not. Allows the sender of the acknowledge message to know if the request was successful or if action is needed. This is a generic response to the request message. Specific data for the response will be found in MessageHeader.focus. The kind of response to a message. Specific list of hints/warnings/errors Full details of any issues found in the message. Allows the sender of the message to determine what the specific issues are. This SHALL be contained in the bundle. If any of the issues are errors, the response code SHALL be an error. Reference(UK Core OperationOutcome) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The actual content of the message The actual data of the message - a reference to the root/focus class of the event. Every message event is about actual data, a single resource, that is identified in the definition of the event, and perhaps some or all linked resources. The data is defined where the transaction type is defined. The transaction data is always included in the bundle that is the full message. Only the root resource is specified. The resources it references should be contained in the bundle but are not also listed here. Multiple repetitions are allowed to cater for merges and other situations with multiple focal targets. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Link to the definition for this message Permanent link to the MessageDefinition for this message. Allows sender to define the expected contents of the message.
> Message Header
MessageHeader I MessageHeader MessageHeader
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
extension I 0..* Extension MessageHeader.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
messageHeaderInstruction I 0..* Extension(Coding) MessageHeader.extension:messageHeaderInstruction
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
event[x] Σ 1..1 Binding MessageHeader.event[x]
hasValue() or (children().count() > id.count())
system 1.. MessageHeader.event[x].system
code 1.. MessageHeader.event[x].code
eventCoding Coding eventUri uri destination Σ 1..* BackboneElement MessageHeader.destination
hasValue() or (children().count() > id.count())
name Σ 0..1 string MessageHeader.destination.name
hasValue() or (children().count() > id.count())
target Σ I 0..1 Reference(UK Core Device) MessageHeader.destination.target
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.destination.target.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.destination.target.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.destination.target.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.destination.target.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.destination.target.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.destination.target.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.destination.target.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.destination.target.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.destination.target.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.destination.target.display
hasValue() or (children().count() > id.count())
endpoint Σ 1..1 url MessageHeader.destination.endpoint
hasValue() or (children().count() > id.count())
receiver Σ I 0..1 Reference(UK Core Organization | UK Core Practitioner | UK Core PractitionerRole) MessageHeader.destination.receiver
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.destination.receiver.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.destination.receiver.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.destination.receiver.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.destination.receiver.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.destination.receiver.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.destination.receiver.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.destination.receiver.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.destination.receiver.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.destination.receiver.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.destination.receiver.display
hasValue() or (children().count() > id.count())
sender Σ I 0..1 Reference(UK Core PractitionerRole | UK Core Organization | UK Core Practitioner) MessageHeader.sender
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.sender.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.sender.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.sender.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.sender.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.sender.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.sender.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.sender.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.sender.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.sender.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.sender.identifier.assigner.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.sender.identifier.assigner.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.sender.identifier.assigner.identifier
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.sender.identifier.assigner.display
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.sender.display
hasValue() or (children().count() > id.count())
enterer Σ I 0..1 Reference(UK Core Practitioner | UK Core PractitionerRole) MessageHeader.enterer
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.enterer.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.enterer.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.enterer.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.enterer.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.enterer.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.enterer.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.enterer.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.enterer.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.enterer.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.enterer.display
hasValue() or (children().count() > id.count())
author Σ I 0..1 Reference(UK Core Practitioner | UK Core PractitionerRole) MessageHeader.author
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.author.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.author.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.author.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.author.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.author.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.author.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.author.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.author.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.author.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.author.display
hasValue() or (children().count() > id.count())
source Σ 1..1 BackboneElement MessageHeader.source
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id MessageHeader.source.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
myExtension I 0..* Extension(Complex) Element Id MessageHeader.source.extension:myExtension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
name Σ 0..1 string MessageHeader.source.name
hasValue() or (children().count() > id.count())
software Σ 0..1 string MessageHeader.source.software
hasValue() or (children().count() > id.count())
version Σ 0..1 string MessageHeader.source.version
hasValue() or (children().count() > id.count())
contact Σ I 0..1 ContactPoint MessageHeader.source.contact
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
endpoint Σ 1..1 url Element Id MessageHeader.source.endpoint
hasValue() or (children().count() > id.count())
responsible Σ I 0..1 Reference(UK Core Organization | UK Core PractitionerRole | UK Core Practitioner) MessageHeader.responsible
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.responsible.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.responsible.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.responsible.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.responsible.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.responsible.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.responsible.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.responsible.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.responsible.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.responsible.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.responsible.display
hasValue() or (children().count() > id.count())
reason Σ 1..1 CodeableConcept MessageHeader.reason
hasValue() or (children().count() > id.count())
coding Σ 0..* Coding MessageHeader.reason.coding
hasValue() or (children().count() > id.count())
system Σ 0..1 uriFixed Value Element Id MessageHeader.reason.coding.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/CodeSystem/message-reason-bars
version Σ 0..1 string MessageHeader.reason.coding.version
hasValue() or (children().count() > id.count())
code Σ 0..1 code MessageHeader.reason.coding.code
hasValue() or (children().count() > id.count())
display Σ 0..1 string MessageHeader.reason.coding.display
hasValue() or (children().count() > id.count())
userSelected Σ 0..1 boolean MessageHeader.reason.coding.userSelected
hasValue() or (children().count() > id.count())
text Σ 0..1 string MessageHeader.reason.text
hasValue() or (children().count() > id.count())
response Σ 0..1 BackboneElement MessageHeader.response
hasValue() or (children().count() > id.count())
identifier Σ 1..1 id MessageHeader.response.identifier
hasValue() or (children().count() > id.count())
code Σ 1..1 codeBinding MessageHeader.response.code
hasValue() or (children().count() > id.count())
details Σ I 0..1 Reference(UK Core OperationOutcome) MessageHeader.response.details
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string MessageHeader.response.details.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.response.details.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.response.details.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.response.details.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.response.details.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.response.details.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.response.details.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.response.details.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.response.details.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.response.details.display
hasValue() or (children().count() > id.count())
focus Σ I 0..* Reference(Resource) MessageHeader.focus
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 1..1 string MessageHeader.focus.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding MessageHeader.focus.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier MessageHeader.focus.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding MessageHeader.focus.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding MessageHeader.focus.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri MessageHeader.focus.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string MessageHeader.focus.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period MessageHeader.focus.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) MessageHeader.focus.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string MessageHeader.focus.display
hasValue() or (children().count() > id.count())
definition Σ 0..1 canonical(MessageDefinition) MessageHeader.definition
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
MessageHeader
A resource that describes the BaRS message being exchanged between two systems https://simplifier.net/nhsbookingandreferrals/barsmessageheaderservicerequestrequest
1..1
MessageHeader.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
0..1
MessageHeader.meta.profile
This MUST be populated with the structure definition for BARSMessageHeader-booking-request
MUST
0..1
https://fhir.nhs.uk/StructureDefinition/BARSMessageHeader-booking-request
MessageHeader.meta.lastUpdated
All resources MUST include 'lastUpdated' value, under the meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates to resources, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
0..1
2023-03-08T12:01:08.4677672+00:00
MessageHeader.eventcoding
MUST
1..1
MessageHeader.eventcoding.system
This MUST be populated with CodeSystem 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE
MUST
0..1
https://fhir.nhs.uk/CodeSystem/message-events-bars
MessageHeader.eventcoding.code
The status MUST be populated with 'booking-request'. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars' - FIXED VALUE
MUST
0..1
booking-request
MessageHeader.destination
MUST
0..1
MessageHeader.destination.receiver
MUST
0..1
MessageHeader.destination.receiver.reference
This MUST be populated with the full URL to the Receiving Organisation resource.
MUST
0..1
urn:uuid:10397afd-479c-42ea-9d5d-e4024481e0f8
MessageHeader.destination.endpoint
This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows the intended destination.
MUST
1..1
https://fhir.nhs.uk/id/dos-service-id\|1122334455
MessageHeader.sender
MUST
0..1
MessageHeader.sender.reference
This MUST be populated. Follow BaRS profile guidance for populating this element
MUST
0..1
urn:uuid:07939a0c-2854-46ff-9282-ad906bc93679
MessageHeader.source
MUST
1..1
MessageHeader.source.name
This MUST be populated with the sending system supplier name
MUST
0..1
NHS Trust
MessageHeader.source.software
This SHOULD be populated with the sending software application name
SHOULD
0..1
Supplier Software
MessageHeader.source.version
This SHOULD be populated with the sending software version
SHOULD
0..1
V1.0.0
MessageHeader.source.contact
SHOULD
0..1
MessageHeader.source.contact.system
This SHOULD be populated with the Contact Type - phone | fax | email | pager | url | sms | other
SHOULD
0..1
phone
MessageHeader.source.contact.value
This SHOULD be populated with the Contact Type value
SHOULD
0..1
+44 (0123) 123 4567
MessageHeader.source.endpoint
This MUST be populated with the system and Service ID separated by a pipe. for example https://fhir.nhs.uk/id/dos-service-id\|11111111, this is to ensure the receiver knows where any response messages SHOULD be addressed.
MUST
1..1
https://fhir.nhs.uk/id/dos-service-id\|5566778899
MessageHeader.reason
MUST
0..1
MessageHeader.reason.coding
MUST
0..1
MessageHeader.reason.coding.system
This MUST be populated with 'https://fhir.nhs.uk/CodeSystem/message-reason-bars' - FIXED VALUE
MUST
0..1
https://fhir.nhs.uk/CodeSystem/message-reason-bars
MessageHeader.reason.coding.code
This MUST be populated with "delete" for an cancellation. See CodeSystem: 'https://fhir.nhs.uk/CodeSystem/message-events-bars'
MUST
0..1
delete
MessageHeader.reason.coding.display
This MUST be populated with 'Delete' when cancelling a Booking.
SHOULD
0..1
Delete
MessageHeader.focus
MUST
0..*
MessageHeader.focus.reference
This MUST be populated with a reference to the ServiceRequest
MUST
0..1
urn:uuid:236bb75d-90ef-461f-b71e-fde7f899802c
MessageHeader.definition
This MUST be populated with the MessageDefinition the bundle is based on. This will be used for validation. Value - hhttps://fhir.nhs.uk/MessageDefinition/bars-message-booking-request-cancelled
MUST
0..1
https://fhir.nhs.uk/MessageDefinition/bars-message-booking-request-cancelled
This resource will be used to communicate information about an Appointment and is the focus of the Booking interation. A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s) A booking of a healthcare event among patient(s), practitioner(s), related person(s) and/or device(s) for a specific date/time. This may result in one or more Encounter(s). Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) An extension to record the organisation booking the appointment extensions, user content An extension to record the organisation booking the appointment. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(UK Core Organization)) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BookingOrganization An extension to record the delivery channel of a scheduled Appointment extensions, user content An extension to record the delivery channel of a scheduled Appointment. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeliveryChannel External Ids for this item This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) proposed | pending | booked | arrived | fulfilled | cancelled | noshow | entered-in-error | checked-in | waitlist The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status. If the Appointment's status is "cancelled" then all participants are expected to have their calendars released for the appointment period, and as such any Slots that were marked as BUSY can be re-set to FREE. This element is labeled as a modifier because the status contains the code entered-in-error that mark the Appointment as not currently valid. The free/busy status of an appointment. The coded reason for the appointment being cancelled The coded reason for the appointment being cancelled. This is often used in reporting/billing/futher processing to determine if further actions are required, or specific fees apply. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. AppointmentCancellationReason (example) A broad categorization of the service that is to be performed during this appointment A broad categorization of the service that is to be performed during this appointment. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The specific service that is to be performed during this appointment The specific service that is to be performed during this appointment. For a provider to provider appointment the code "FOLLOWUP" may be appropriate, as this is expected to be discussing some patient that was seen in the past. The specialty of a practitioner that would be required to perform the service requested in this appointment The specialty of a practitioner that would be required to perform the service requested in this appointment. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. PracticeSettingCodeValueSet (preferred) The style of appointment or patient that has been booked in the slot (not service type) The style of appointment or patient that has been booked in the slot (not service type). Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. A set of codes that define an appointment reason. Coded reason this appointment is scheduled The coded reason that this appointment is being scheduled. This is more clinical than administrative. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The Reason for the appointment to take place. Reason the appointment is to take place (resource) Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Condition | UK Core Observation | UK Core Procedure | ImmunizationRecommendation) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Used to make informed decisions if needing to re-prioritize The priority of the appointment. Can be used to make informed decisions if needing to re-prioritize appointments. (The iCal Standard specifies 0 as undefined, 1 as highest, 9 as lowest priority). Seeking implementer feedback on this property and how interoperable it is. Using an extension to record a CodeableConcept for named values may be tested at a future connectathon. Shown on a subject line in a meeting request, or appointment list The brief description of the appointment as would be shown on a subject line in a meeting request, or appointment list. Detailed or expanded information should be put in the comment field. Note that FHIR strings SHALL NOT exceed 1MB in size Additional information to support the appointment Additional information to support the appointment provided when making the appointment. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. When appointment is to take place Date/Time that the appointment is to take place. Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required When appointment is to conclude Date/Time that the appointment is to conclude. Note: This is intended for where precisely observed times are required, typically system logs etc., and not human-reported times - for them, see date and dateTime (which can be as precise as instant, but is not required to be) below. Time zone is always required Can be less than start/end (e.g. estimate) Number of minutes that the appointment is to take. This can be less than the duration between the start and end times. For example, where the actual time of appointment is only an estimate or if a 30 minute appointment is being requested, but any time would work. Also, if there is, for example, a planned 15 minute break in the middle of a long appointment, the duration may be 15 minutes less than the difference between the start and end. 32 bit number; for values larger than this, use decimal The slots that this appointment is filling The slots from the participants' schedules that will be filled by the appointment. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The date that this appointment was initially created The date that this appointment was initially created. This could be different to the meta.lastModified value on the initial entry, as this could have been before the resource was created on the FHIR server, and should remain unchanged over the lifespan of the appointment. This property is required for many use cases where the age of an appointment is considered in processing workflows for scheduling and billing of appointments. Additional comments Additional comments about the appointment. Additional text to aid in facilitating the appointment. For instance, a comment might be, "patient should proceed immediately to infusion room upon arrival" Where this is a planned appointment and the start/end dates are not set then this field can be used to provide additional guidance on the details of the appointment request, including any restrictions on when to book it. Detailed information and instructions for the patient While Appointment.comment contains information for internal use, Appointment.patientInstructions is used to capture patient facing information about the Appointment (e.g. please bring your referral or fast from 8pm night before). Note that FHIR strings SHALL NOT exceed 1MB in size The service request this appointment is allocated to assess incomingReferral The service request this appointment is allocated to assess (e.g. incoming referral or procedure request). References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core ServiceRequest) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Participants involved in appointment List of participants involved in the appointment. Role of participant in the appointment Role of participant in the appointment. The role of the participant can be used to declare what the actor will be doing in the scope of this appointment. If the actor is not specified, then it is expected that the actor will be filled in at a later stage of planning. This value SHALL be the same when creating an AppointmentResponse so that they can be matched, and subsequently update the Appointment. Role of participant in encounter. Person, Location/HealthcareService or Device A Person, Location/HealthcareService or Device that is participating in the appointment. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson | UK Core Device | UK Core HealthcareService | UK Core Location) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. required | optional | information-only Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present. Note that FHIR strings SHALL NOT exceed 1MB in size Is the Participant required to attend the appointment. accepted | declined | tentative | needs-action Participation status of the actor. Note that FHIR strings SHALL NOT exceed 1MB in size The Participation status of an appointment. Participation period of the actor Participation period of the actor. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Potential date/time interval(s) requested to allocate the appointment within A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within. The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system. This does not introduce a capacity for recurring appointments.
> Appointment
Appointment I Appointment Appointment
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
Appointment.cancelationReason.exists() implies (Appointment.status='no-show' or Appointment.status='cancelled')
(start.exists() and end.exists()) or (status in ('proposed' | 'cancelled' | 'waitlist'))
start.exists() = end.exists()
extension I 0..* Extension Element Id Appointment.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
bookingOrganization I 0..1 Extension(Reference(UK Core Organization)) Element Id Appointment.extension:bookingOrganization
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
deliveryChannel I 0..1 Extension(code) Element Id Appointment.extension:deliveryChannel
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
identifier Σ 0..* Identifier Appointment.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
status Σ ?! 1..1 codeBinding Appointment.status
hasValue() or (children().count() > id.count())
cancelationReason Σ 0..1 CodeableConcept Appointment.cancelationReason
hasValue() or (children().count() > id.count())
serviceCategory Σ 0..* CodeableConcept Appointment.serviceCategory
hasValue() or (children().count() > id.count())
serviceType Σ 0..* CodeableConcept Appointment.serviceType
hasValue() or (children().count() > id.count())
specialty Σ 0..* CodeableConceptBinding Appointment.specialty
hasValue() or (children().count() > id.count())
appointmentType Σ 0..1 CodeableConceptBinding Element Id Appointment.appointmentType
hasValue() or (children().count() > id.count())
reasonCode Σ 0..* CodeableConceptBinding Appointment.reasonCode
hasValue() or (children().count() > id.count())
reasonReference I 0..* Reference(UK Core Condition | UK Core Observation | UK Core Procedure | ImmunizationRecommendation) Element Id Appointment.reasonReference
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Appointment.reasonReference.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Appointment.reasonReference.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Appointment.reasonReference.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.reasonReference.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.reasonReference.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.reasonReference.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.reasonReference.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.reasonReference.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.reasonReference.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Appointment.reasonReference.display
hasValue() or (children().count() > id.count())
priority 0..1 unsignedInt Appointment.priority
hasValue() or (children().count() > id.count())
description 0..1 string Appointment.description
hasValue() or (children().count() > id.count())
supportingInformation I 0..* Reference(Resource) Appointment.supportingInformation
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Appointment.supportingInformation.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Appointment.supportingInformation.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Appointment.supportingInformation.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.supportingInformation.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.supportingInformation.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.supportingInformation.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.supportingInformation.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.supportingInformation.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.supportingInformation.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Appointment.supportingInformation.display
hasValue() or (children().count() > id.count())
start Σ 0..1 instant Appointment.start
hasValue() or (children().count() > id.count())
end Σ 0..1 instant Appointment.end
hasValue() or (children().count() > id.count())
minutesDuration 0..1 positiveInt Appointment.minutesDuration
hasValue() or (children().count() > id.count())
slot I 0..* Reference(UK Core Slot) Element Id Appointment.slot
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Appointment.slot.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Appointment.slot.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Appointment.slot.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.slot.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.slot.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.slot.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.slot.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.slot.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.slot.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Appointment.slot.display
hasValue() or (children().count() > id.count())
created 0..1 dateTime Appointment.created
hasValue() or (children().count() > id.count())
comment 0..1 string Appointment.comment
hasValue() or (children().count() > id.count())
patientInstruction 0..1 string Appointment.patientInstruction
hasValue() or (children().count() > id.count())
basedOn I 0..* Reference(UK Core ServiceRequest) Element Id Appointment.basedOn
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Appointment.basedOn.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Appointment.basedOn.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Appointment.basedOn.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.basedOn.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.basedOn.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.basedOn.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.basedOn.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.basedOn.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.basedOn.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Appointment.basedOn.display
hasValue() or (children().count() > id.count())
participant I 1..* BackboneElement Appointment.participant
hasValue() or (children().count() > id.count())
type.exists() or actor.exists()
type Σ 0..* CodeableConceptBinding Appointment.participant.type
hasValue() or (children().count() > id.count())
actor Σ I 0..1 Reference(UK Core Patient | UK Core Practitioner | UK Core PractitionerRole | UK Core RelatedPerson | UK Core Device | UK Core HealthcareService | UK Core Location) Element Id Appointment.participant.actor
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Appointment.participant.actor.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Appointment.participant.actor.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Appointment.participant.actor.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Appointment.participant.actor.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Appointment.participant.actor.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Appointment.participant.actor.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Appointment.participant.actor.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Appointment.participant.actor.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Appointment.participant.actor.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Appointment.participant.actor.display
hasValue() or (children().count() > id.count())
required Σ 0..1 codeBinding Appointment.participant.required
hasValue() or (children().count() > id.count())
status Σ 1..1 codeBinding Appointment.participant.status
hasValue() or (children().count() > id.count())
period I 0..1 Period Appointment.participant.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
requestedPeriod I 0..* Period Appointment.requestedPeriod
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
Appointment
https://simplifier.net/hl7fhirukcorer4/ukcoreappointment
This resource will be used to communicate information about an appointment.
1..1
Appointment.id
This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response.
MUST
0..1
3713c8fc-dbcf-4f90-bacf-89d99e434e9b
Appointment.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
1..1
Appointment.meta.profile
This MUST be populated. Follow UK Core guidance for populating this element
MUST
1..1
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Appointment
Appointment.meta.lastupdated
This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
1..1
2023-03-08T12:01:08.4677672+00:00
Appointment.status
This MUST be populated with 'booked'
MUST
1..1
cencelled
Appointment.description
This SHOULD be populated. It is the human readable description of the booking
SHOULD
0..1
Reason for calling
Appointment.start
This MUST be populated with the Start time of the booking
MUST
0..1
2021-10-12T12:30:00+00:00
Appointment.end
This MUST be populated with the End time of the booking
MUST
0..1
2021-10-12T12:30:00+00:00
Appointment.slot
MUST
0..*
Appointment.slot.reference
This MUST be populated with the local logical bundle reference to the Slot resource
MUST
0..1
urn:uuid:c3f6145e-1a26-4345-b3f2-dccbcba62049
Appointment.created
This MUST only be populated with the date/time the booking was generated by the Receiver in the synchronous HTTP response.
MUST
0..1
2021-10-11T15:01:30+00:00"
Appointment.basedOn
This MAY be populated. When the Service Request is made before the booking in the workflow this MUST be populated.
MAY
0..*
Appointment.basedOn.reference
This MAY be populated. This is MUST be the relative reference to the Service Request when referral is made before booking in the workflow
MAY
0..1
ServiceRequest/236bb75d-90ef-461f-b71e-fde7f899802c
Appointment.participant
MUST
1..1
Appointment.participant.actor
This MUST be populated with reference to the patient
MUST
0..1
Appointment.participant.actor.reference
This MUST be populated with the local logical bundle reference to the Patient resource
MUST
0..1
urn:uuid:3a62607b-df65-4932-940c-14262787f62d
Appointment.participant.actor.status
This MUST be populated with 'accepted' - FIXED VALUE
MUST
1..1
accepted
This resource is used to communicate details about the patient who is the subject of the referral. Information about an individual or animal receiving health care services SubjectOfCare Client Resident Demographics and other administrative information about an individual or animal receiving care or other health-related services. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) The registered place of birth of the patient. extensions, user content The registered place of birth of the patient. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-birthPlace identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The registered place of birth of the patient. Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). The patient's phenotypic sex at birth. extensions, user content The patient's phenotypic sex at birth. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-BirthSex Post-mortem donor status. extensions, user content Flag indicating whether the patient authorized the donation of body parts after death. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Post-mortem donor status. Flag indicating whether the patient authorized the donation of body parts after death. The preferred method of contact, contact times and written communication format given by a Patient or Related Person. extensions, user content The preferred method of contact, contact times and written communication format given by a Patient or Related Person. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference The patient's death notification status. extensions, user content The patient's death notification status. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-DeathNotificationStatus The ethnicity of the subject extensions, user content The ethnicity of the subject. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory The residential status of the patient. extensions, user content The residential status of the patient. For example if this patient is a UK resident. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ResidentialStatus The patient's professed religious affiliations extensions, user content The patient's professed religious affiliations. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-religion identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The religious affiliation of the patient The religious affiliation of the patient. v3.ReligiousAffiliation (extensible) Whether the patient needs an interpreter extensions, user content This Patient requires an interpreter to communicate healthcare information to the practitioner. The Patient does not speak the default language of the organization, and hence requires an interpreter. If the patient has other languages in the Communications list, then that would be the type of interpreter required. http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Indicator showing whether the patient needs an interpreter Indicator showing if this Patient requires an interpreter to communicate healthcare information to the practitioner. An identifier for this patient An identifier for this patient. Patients are almost always assigned specific numerical identifiers. Unordered, Open, by system(Value) Constraints The patient's NHS number An identifier for this patient. Patients are almost always assigned specific numerical identifiers. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) NHS number verification status extensions, user content The verification/tracing status of the NHS number. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Whether this patient's record is in active use Whether this patient record is in active use.
Many systems use this property to mark as non-current patients, such as those that have not been seen for a period of time based on an organization's business rules. It is often used to filter patient lists to exclude inactive patients Deceased patients may also be marked as inactive for the same reasons, but may be active for some time after death. Need to be able to mark a patient record as not to be used because it was created in error. If a record is inactive, and linked to an active record, then future patient/record updates should occur on the other patient. This resource is generally assumed to be active if no value is provided for the active element A name associated with the patient A name associated with the individual. Need to be able to track the patient by multiple names. Examples are your official name and a partner name. A patient may have multiple names with different uses or applicable periods. For animals, the name is a "HumanName" in the sense that is assigned and used by humans and has the same patterns. A contact detail for the individual A contact detail (e.g. a telephone number or an email address) by which the individual may be contacted. People have (primary) ways to contact them in some way such as phone, email. A Patient may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently and also to help with identification. The address might not go directly to the individual, but may reach another party that is able to proxy for the patient (i.e. home phone, or pet owner's phone). phone | fax | email | pager | url | sms | other Telecommunications form for contact point - what communications system is required to make use of the contact. Note that FHIR strings SHALL NOT exceed 1MB in size Telecommunications form for contact point. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Other contact system extensions, user content Other contact system value which extends the system element in the ContactPoint datatype. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem The actual contact point details The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). Need to support legacy numbers that are not in a tightly controlled format. Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value. home | work | temp | old | mobile - purpose of this contact point Identifies the purpose for the contact point. Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose. Applications can assume that a contact is current unless it explicitly says that it is temporary or old. Use of contact point. Specify preferred order of use (1 = highest) Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values. Note that rank does not necessarily follow the order in which the contacts are represented in the instance. Time period when the contact point was/is in use Time period when the contact point was/is in use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. male | female | other | unknown Administrative Gender - the gender that the patient is considered to have for administration and record keeping purposes. Needed for identification of the individual, in combination with (at least) name and birth date. The gender might not match the biological sex as determined by genetics or the individual's preferred identification. Note that for both humans and particularly animals, there are other legitimate possibilities than male and female, though the vast majority of systems and contexts only support male and female. Systems providing decision support or enforcing business rules should ideally do this on the basis of Observations dealing with the specific sex or gender aspect of interest (anatomical, chromosomal, social, etc.) However, because these observations are infrequently recorded, defaulting to the administrative gender is common practice. Where such defaulting occurs, rule enforcement should allow for the variation between administrative and biological, chromosomal and other gender aspects. For example, an alert about a hysterectomy on a male should be handled as a warning or overridable error, not a "hard" error. See the Patient Gender and Sex section for additional information about communicating patient gender and sex. The gender of a person used for administrative purposes. The date of birth for the individual The date of birth for the individual. Age of the individual drives many clinical processes. At least an estimated year should be provided as a guess if the real DOB is unknown There is a standard extension "patient-birthTime" available that should be used where Time is required (such as in maternity/infant care systems). Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Time of day of birth. extensions, user content The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/patient-birthTime identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Time of day of birth. The time of day that the patient was born. This includes the date to ensure that the timezone information can be communicated effectively. Indicates if the individual is deceased or not Indicates if the individual is deceased or not. The fact that a patient is deceased influences the clinical process. Also, in human communication and relation management it is necessary to know whether the person is alive. If there's no value in the instance, it means there is no statement on whether or not the individual is deceased. Most systems will interpret the absence of a value as a sign of the person being alive. An address for the individual An address for the individual May need to keep track of patient addresses for contacting, billing or reporting requirements and also to help with identification. Patient may have multiple addresses with different uses or applicable periods. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) A patient's address key and type extensions, user content A patient's address key and type. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-AddressKey home | work | temp | old | billing - purpose of this address The purpose of this address. Allows an appropriate address to be chosen from a list of many. Applications can assume that an address is current unless it explicitly says that it is temporary or old. The use of an address. postal | physical | both Distinguishes between physical addresses (those you can visit) and mailing addresses (e.g. PO Boxes and care-of addresses). Most addresses are both. The definition of Address states that "address is intended to describe postal addresses, not physical locations". However, many applications track whether an address has a dual purpose of being a location that can be visited as well as being a valid delivery destination, and Postal addresses are often used as proxies for physical locations (also see the Location resource). The type of an address (physical / postal). Text representation of the address Specifies the entire address as it should be displayed e.g. on a postal label. This may be provided instead of or as well as the specific parts. A renderable, unencoded form. Can provide both a text representation and parts. Applications updating an address SHALL ensure that when both text and parts are present, no content is included in the text that isn't found in a part. Street name, number, direction & P.O. Box etc. This component contains the house number, apartment number, street name, street direction, P.O. Box number, delivery hints, and similar address information. Note that FHIR strings SHALL NOT exceed 1MB in size Name of city, town etc. Municpality The name of the city, town, suburb, village or other community or delivery center. Note that FHIR strings SHALL NOT exceed 1MB in size District name (aka county) County The name of the administrative area (county). District is sometimes known as county, but in some regions 'county' is used in place of city (municipality), so county name should be conveyed in city instead. Sub-unit of country (abbreviations ok) Province, Territory Sub-unit of a country with limited sovereignty in a federally organized country. A code may be used if codes are in common use (e.g. US 2 letter state codes). Note that FHIR strings SHALL NOT exceed 1MB in size Postal code for area Zip A postal code designating a region defined by the postal service. Note that FHIR strings SHALL NOT exceed 1MB in size Country (e.g. can be ISO 3166 2 or 3 letter code) Country - a nation as commonly understood or generally accepted. ISO 3166 3 letter codes can be used in place of a human readable country name. Time period when address was/is in use Time period when address was/is in use. Allows addresses to be placed in historical context. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Marital (civil) status of a patient This field contains a patient's most recent marital (civil) status. Most, if not all systems capture it. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. An indicator to identify the legal marital status of a person Whether patient is part of a multiple birth Indicates whether the patient is part of a multiple (boolean) or indicates the actual birth order (integer). For disambiguation of multiple-birth children, especially relevant where the care provider doesn't meet the patient, such as labs. Where the valueInteger is provided, the number is the birth number in the sequence. E.g. The middle birth in triplets would be valueInteger=2 and the third born would have valueInteger=3 If a boolean value was provided for this triplets example, then all 3 patient records would have valueBoolean=true (the ordering is not indicated). Image of the patient Image of the patient. Many EHR systems have the capability to capture an image of the patient. Fits with newer social media usage too. Guidelines: A contact party (e.g. guardian, partner, friend) for the patient A contact party (e.g. guardian, partner, friend) for the patient. Need to track people you can contact about the patient. Contact covers all kinds of contact parties: family members, business contacts, guardians, caregivers. Not applicable to register pedigree and family ties beyond use of having contact. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Preferred ranking or order of contact applied to a contact on a patient's contact list extensions, user content The preferred ranking or order of contact applied to a contact on a patient's contact list. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank Indicator showing that a patient's contact or related person must be copied in to patient correspondence extensions, user content Extension carrying a boolean indicator showing that a patient's contact or related person must be copied in to patient correspondence. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-CopyCorrespondenceIndicator The kind of relationship The nature of the relationship between the patient and the contact person. Used to determine which contact person is the most relevant to approach, depending on circumstances. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The nature of the relationship between a patient and a contact person for that patient. A name associated with the contact person A name associated with the contact person. Contact persons need to be identified by name, but it is uncommon to need details about multiple other names for that contact person. Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely. A contact detail for the person A contact detail for the person, e.g. a telephone number or an email address. People have (primary) ways to contact them in some way such as phone, email. Contact may have multiple ways to be contacted with different uses or applicable periods. May need to have options for contacting the person urgently, and also to help with identification. phone | fax | email | pager | url | sms | other Telecommunications form for contact point - what communications system is required to make use of the contact. Note that FHIR strings SHALL NOT exceed 1MB in size Telecommunications form for contact point. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Other contact system extensions, user content Other contact system value which extends the system element in the ContactPoint datatype. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-OtherContactSystem The actual contact point details The actual contact point details, in a form that is meaningful to the designated communication system (i.e. phone number or email address). Need to support legacy numbers that are not in a tightly controlled format. Additional text data such as phone extension numbers, or notes about use of the contact are sometimes included in the value. home | work | temp | old | mobile - purpose of this contact point Identifies the purpose for the contact point. Need to track the way a person uses this contact, so a user can choose which is appropriate for their purpose. Applications can assume that a contact is current unless it explicitly says that it is temporary or old. Use of contact point. Specify preferred order of use (1 = highest) Specifies a preferred order in which to use a set of contacts. ContactPoints with lower rank values are more preferred than those with higher rank values. Note that rank does not necessarily follow the order in which the contacts are represented in the instance. Time period when the contact point was/is in use Time period when the contact point was/is in use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Address for the contact person Address for the contact person. Need to keep track where the contact person can be contacted per postal mail or visited. Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource). male | female | other | unknown Administrative Gender - the gender that the contact person is considered to have for administration and record keeping purposes. Needed to address the person correctly. Note that FHIR strings SHALL NOT exceed 1MB in size The gender of a person used for administrative purposes. Organization that is associated with the contact Organization on behalf of which the contact is acting or for which the contact is working. For guardians or business related contacts, the organization is relevant. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. The period during which this contact person or organization is valid to be contacted relating to this patient The period during which this contact person or organization is valid to be contacted relating to this patient. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. A language which may be used to communicate with the patient about his or her health A language which may be used to communicate with the patient about his or her health. If a patient does not speak the local language, interpreters may be required, so languages spoken and proficiency are important things to keep track of both for patient and other persons of interest. If no language is specified, this implies that the default local language is spoken. If you need to convey proficiency for multiple modes, then you need multiple Patient.Communication associations. For animals, language is not a relevant field, and should be absent from the instance. If the Patient does not speak the default local language, then the Interpreter Required Standard can be used to explicitly declare that an interpreter is required. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Proficiency level of the communication extensions, user content Proficiency level of the communication. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Complex) http://hl7.org/fhir/StructureDefinition/patient-proficiency Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) The proficiency level of the communication extensions, user content How well the patient can communicate this communication (good, poor, etc.). There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. The proficiency level for the communication The proficiency level for the communication. The proficiency level for the communication. The proficiency type of the communication extensions, user content What type of communication for the proficiency (spoken, written, etc.). There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. The proficiency type for the communication The proficiency type for the communication. The proficiency type for the communication. identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String Value of extension Value of extension - must be one of a constrained set of the data types (see Extensibility for a list). A ValueSet that identifies the language used by a person. A ValueSet that identifies the language used by a person. Most systems in multilingual countries will want to convey language. Not all systems actually need the regional dialect. The structure aa-BB with this exact casing is one the most widely used notations for locale. However not all systems actually code this but instead have it as free text. Hence CodeableConcept instead of code as the data type. A ValueSet that identifies the language used by a person. Language preference indicator Indicates whether or not the patient prefers this language (over other languages he masters up a certain level). People that master multiple languages up to certain level may prefer one or more, i.e. feel more confident in communicating in a particular language making other languages sort of a fall back method. This language is specifically identified for communicating healthcare information. Patient's nominated primary care provider careProvider Patient's nominated care provider. This may be the primary care provider (in a GP context), or it may be a patient nominated care manager in a community/disability setting, or even organization that will provide people to perform the care provider roles. It is not to be used to record Care Teams, these should be in a CareTeam resource that may be linked to the CarePlan or EpisodeOfCare resources.
Multiple GPs may be recorded against the patient for various reasons, such as a student that has his home GP listed along with the GP at university during the school semesters, or a "fly-in/fly-out" worker that has the onsite GP also included with his home GP to remain aware of medical issues. Jurisdictions may decide that they can profile this down to 1 if desired, or 1 per type. Reference(UK Core Practitioner | UK Core Organization | UK Core PractitionerRole) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Organization that is the custodian of the patient record Organization that is the custodian of the patient record. Need to know who recognizes this patient record, manages and updates it. There is only one managing organization for a specific patient record. Other organizations will have their own Patient record, and may use the Link property to join the records together (or a Person resource which can include confidence ratings for the association). Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Link to another patient resource that concerns the same actual person Link to another patient resource that concerns the same actual patient. There are multiple use cases: There is no assumption that linked patient records have mutual links. The other patient or related person resource that the link refers to The other patient resource that the link refers to. Referencing a RelatedPerson here removes the need to use a Person record to associate a Patient and RelatedPerson as the same individual. Reference(UK Core Patient | UK Core RelatedPerson) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. replaced-by | replaces | refer | seealso The type of link between this patient resource and another patient resource. Note that FHIR strings SHALL NOT exceed 1MB in size The type of link between this patient resource and another patient resource.
> Patient
It also includes contact information for third parties when required.Patient I Patient Patient
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
extension I 0..* Extension Element Id Patient.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
birthPlace I 0..1 Extension(Address) Element Id Patient.extension:birthPlace
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:birthPlace.url
http://hl7.org/fhir/StructureDefinition/patient-birthPlace
value[x] 1..1 Element Id Patient.extension:birthPlace.value[x]
hasValue() or (children().count() > id.count())
valueAddress Address birthSex I 0..1 Extension(code) Element Id Patient.extension:birthSex
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
cadavericDonor I 0..1 Extension(boolean) Element Id Patient.extension:cadavericDonor
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:cadavericDonor.url
http://hl7.org/fhir/StructureDefinition/patient-cadavericDonor
value[x] 1..1 Element Id Patient.extension:cadavericDonor.value[x]
hasValue() or (children().count() > id.count())
valueBoolean boolean contactPreference I 0..1 Extension(Complex) Element Id Patient.extension:contactPreference
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
deathNotificationStatus I 0..1 Extension(Complex) Element Id Patient.extension:deathNotificationStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
ethnicCategory I 0..1 Extension(CodeableConcept) Element Id Patient.extension:ethnicCategory
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
residentialStatus I 0..1 Extension(CodeableConcept) Element Id Patient.extension:residentialStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
patientReligion I 0..1 Extension(CodeableConcept) Element Id Patient.extension:patientReligion
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:patientReligion.url
http://hl7.org/fhir/StructureDefinition/patient-religion
value[x] 1..1 Binding Element Id Patient.extension:patientReligion.value[x]
hasValue() or (children().count() > id.count())
valueCodeableConcept CodeableConcept patientInterpreterRequired I 0..1 Extension(boolean) Element Id Patient.extension:patientInterpreterRequired
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.extension:patientInterpreterRequired.url
http://hl7.org/fhir/StructureDefinition/patient-interpreterRequired
value[x] 1..1 Element Id Patient.extension:patientInterpreterRequired.value[x]
hasValue() or (children().count() > id.count())
valueBoolean boolean identifier Σ 0..* Identifier Element Id Patient.identifier
hasValue() or (children().count() > id.count())
nhsNumber Σ 0..1 Identifier Element Id Patient.identifier:nhsNumber
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.identifier:nhsNumber.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
nhsNumberVerificationStatus I 0..1 Extension(CodeableConcept) Element Id Patient.identifier:nhsNumber.extension:nhsNumberVerificationStatus
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
use Σ ?! 0..1 codeBinding Patient.identifier:nhsNumber.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.identifier:nhsNumber.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Patient.identifier:nhsNumber.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/nhs-number
value Σ 1..1 string Patient.identifier:nhsNumber.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.identifier:nhsNumber.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.identifier:nhsNumber.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
active Σ ?! 0..1 boolean Patient.active
hasValue() or (children().count() > id.count())
name Σ 0..* HumanName Patient.name
hasValue() or (children().count() > id.count())
telecom Σ I 0..* ContactPoint Patient.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
system Σ I 0..1 codeBinding Patient.telecom.system
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.telecom.system.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
otherContactSystem I 0..1 Extension(Coding) Element Id Patient.telecom.system.extension:otherContactSystem
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
value Σ 0..1 string Patient.telecom.value
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.telecom.use
hasValue() or (children().count() > id.count())
rank Σ 0..1 positiveInt Patient.telecom.rank
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.telecom.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
gender Σ 0..1 codeBinding Patient.gender
hasValue() or (children().count() > id.count())
birthDate Σ 0..1 date Patient.birthDate
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.birthDate.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
birthTime I 0..1 Extension(dateTime) Element Id Patient.birthDate.extension:birthTime
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Patient.birthDate.extension:birthTime.url
http://hl7.org/fhir/StructureDefinition/patient-birthTime
value[x] 1..1 Element Id Patient.birthDate.extension:birthTime.value[x]
hasValue() or (children().count() > id.count())
valueDateTime dateTime deceased[x] Σ ?! 0..1 Patient.deceased[x]
hasValue() or (children().count() > id.count())
deceasedBoolean boolean deceasedDateTime dateTime address Σ 0..* Address Element Id Patient.address
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.address.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
addressKey I 0..* Extension(Complex) Element Id Patient.address.extension:addressKey
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
use Σ ?! 0..1 codeBinding Patient.address.use
hasValue() or (children().count() > id.count())
home
Mappingstype Σ 0..1 codeBinding Patient.address.type
hasValue() or (children().count() > id.count())
both
Mappingstext Σ 0..1 string Patient.address.text
hasValue() or (children().count() > id.count())
137 Nowhere Street, Erewhon 9132
Mappingsline Σ 0..* string Patient.address.line
hasValue() or (children().count() > id.count())
137 Nowhere Street
Mappingscity Σ 0..1 string Patient.address.city
hasValue() or (children().count() > id.count())
Erewhon
Mappingsdistrict Σ 0..1 string Patient.address.district
hasValue() or (children().count() > id.count())
Madison
Mappingsstate Σ 0..1 string Patient.address.state
hasValue() or (children().count() > id.count())
postalCode Σ 0..1 string Patient.address.postalCode
hasValue() or (children().count() > id.count())
9132
Mappingscountry Σ 0..1 string Patient.address.country
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.address.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
{
"start": "2010-03-23",
"end": "2010-07-01"
}
MappingsmaritalStatus 0..1 CodeableConceptBinding Element Id Patient.maritalStatus
hasValue() or (children().count() > id.count())
multipleBirth[x] 0..1 Patient.multipleBirth[x]
hasValue() or (children().count() > id.count())
multipleBirthBoolean boolean multipleBirthInteger integer photo I 0..* Attachment Patient.photo
hasValue() or (children().count() > id.count())
data.empty() or contentType.exists()
contact I 0..* BackboneElement Patient.contact
hasValue() or (children().count() > id.count())
name.exists() or telecom.exists() or address.exists() or organization.exists()
extension I 0..* Extension Element Id Patient.contact.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
contactRank I 0..1 Extension(positiveInt) Element Id Patient.contact.extension:contactRank
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
copyCorrespondenceIndicator I 0..1 Extension(boolean) Element Id Patient.contact.extension:copyCorrespondenceIndicator
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
relationship 0..* CodeableConceptBinding Element Id Patient.contact.relationship
hasValue() or (children().count() > id.count())
name 0..1 HumanName Patient.contact.name
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Patient.contact.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
system Σ I 0..1 codeBinding Patient.contact.telecom.system
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.contact.telecom.system.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
otherContactSystem I 0..1 Extension(Coding) Element Id Patient.contact.telecom.system.extension:otherContactSystem
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
value Σ 0..1 string Patient.contact.telecom.value
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.contact.telecom.use
hasValue() or (children().count() > id.count())
rank Σ 0..1 positiveInt Patient.contact.telecom.rank
hasValue() or (children().count() > id.count())
period Σ I 0..1 Period Patient.contact.telecom.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
address 0..1 Address Patient.contact.address
hasValue() or (children().count() > id.count())
gender 0..1 codeBinding Patient.contact.gender
hasValue() or (children().count() > id.count())
organization I 0..1 Reference(UK Core Organization) Element Id Patient.contact.organization
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.contact.organization.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.contact.organization.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.contact.organization.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.contact.organization.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.contact.organization.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.contact.organization.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.contact.organization.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.contact.organization.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.contact.organization.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.contact.organization.display
hasValue() or (children().count() > id.count())
period I 0..1 Period Patient.contact.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
communication 0..* BackboneElement Patient.communication
hasValue() or (children().count() > id.count())
extension I 0..* Extension Element Id Patient.communication.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
proficiency I 0..1 Extension(Complex) Element Id Patient.communication.extension:proficiency
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
extension I 0..* Extension Element Id Patient.communication.extension:proficiency.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
level I 0..1 Extension Patient.communication.extension:proficiency.extension:level
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 uriFixed Value Patient.communication.extension:proficiency.extension:level.url
level
value[x] 1..1 Binding Element Id Patient.communication.extension:proficiency.extension:level.value[x]
hasValue() or (children().count() > id.count())
valueCoding Coding type I 0..* Extension Patient.communication.extension:proficiency.extension:type
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 uriFixed Value Patient.communication.extension:proficiency.extension:type.url
type
value[x] 1..1 Binding Element Id Patient.communication.extension:proficiency.extension:type.value[x]
hasValue() or (children().count() > id.count())
valueCoding Coding url 1..1 System.StringFixed Value Patient.communication.extension:proficiency.url
http://hl7.org/fhir/StructureDefinition/patient-proficiency
value[x] 0..0 Patient.communication.extension:proficiency.value[x]
hasValue() or (children().count() > id.count())
language 1..1 CodeableConceptBinding Element Id Patient.communication.language
hasValue() or (children().count() > id.count())
preferred 0..1 boolean Patient.communication.preferred
hasValue() or (children().count() > id.count())
generalPractitioner I 0..* Reference(UK Core Practitioner | UK Core Organization | UK Core PractitionerRole) Element Id Patient.generalPractitioner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.generalPractitioner.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.generalPractitioner.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.generalPractitioner.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.generalPractitioner.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.generalPractitioner.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.generalPractitioner.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.generalPractitioner.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.generalPractitioner.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.generalPractitioner.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.generalPractitioner.display
hasValue() or (children().count() > id.count())
managingOrganization Σ I 0..1 Reference(UK Core Organization) Element Id Patient.managingOrganization
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.managingOrganization.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.managingOrganization.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.managingOrganization.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.managingOrganization.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.managingOrganization.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.managingOrganization.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.managingOrganization.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.managingOrganization.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.managingOrganization.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.managingOrganization.display
hasValue() or (children().count() > id.count())
link Σ ?! 0..* BackboneElement Patient.link
hasValue() or (children().count() > id.count())
other Σ I 1..1 Reference(UK Core Patient | UK Core RelatedPerson) Element Id Patient.link.other
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Patient.link.other.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Patient.link.other.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Patient.link.other.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Patient.link.other.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Patient.link.other.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Patient.link.other.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Patient.link.other.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Patient.link.other.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Patient.link.other.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Patient.link.other.display
hasValue() or (children().count() > id.count())
type Σ 1..1 codeBinding Patient.link.type
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
Patient
This resource is used to communicate details about the patient who is the subject of the referral.
It also includes contact information for third parties when required.
https://simplifier.net/hl7fhirukcorer4/ukcore-patient
1..1
Patient.id
It also includes contact information for third parties when required.
MUST
0..1
9589fb37-87a2-48d8-968f-b371429208a8
Patient.meta
https://simplifier.net/hl7fhirukcorer4/ukcore-patient
MUST
1..1
Patient.meta.profile
This MUST be populated. Follow UK Core guidance for populating this element
MUST
1..1
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Patient
Patient.meta.LastUpdate
All resources MUST include 'lastUpdated' value, under meta section which must be the same timestamp for each resource when created from new, but must be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
1..1
2023-03-08T12:01:08.4677672+00:00
Patient.identifier
This is a human readable patient identifier. This MUST be populated with the NHS number when available. Additionally a Local Patient Identifier Should be populated where available. If no NHS number is available this Should be populated with the Local patient identifier.
SHOULD
0..*
Patient.identifier.system
https://simplifier.net/hl7fhirukcorer4/ukcore-nhsnumberverificationstatus-duplicate-2
SHOULD
1..1
https://fhir.nhs.uk/Id/nhs-number
Patient.identifier.value
This SHOULD be populated with a human readable patient identifier. When used this MUST be populated with the NHS number when available.If no NHS number is available this SHOULD be populated with the Local patient identifier.
SHOULD
1..1
3478526985
Patient.identifier.extension
This extension is used to record the NHS number Verification status
SHOULD
0..*
Patient.identifier.extension.url
This SHOULD be populated. Where used this MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus' - FIXED VALUE
SHOULD
1..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept
SHOULD
0..1
Patient.identifier.extension.valueCodeableConcept.coding
SHOULD
0..1
Patient.identifier.extension.valueCodeableConcept.coding.system
https://simplifier.net/hl7fhirukcorer4/extensionukcorenhsnumberverificationstatus
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-NHSNumberVerificationStatus
Patient.identifier.extension.valueCodeableConcept.coding.code
Follow UK Core guidance for populating this element
SHOULD
0..1
number-present-and-verified
Patient.identifier.extension.valueCodeableConcept.coding.display
Follow UK Core guidance for populating this element
SHOULD
0..1
Number present and verified
Patient.name
SHOULD
0..*
Patient.name.use
Follow UK Core guidance for populating this element
SHOULD
0..1
official
Patient.name.text
Follow UK Core guidance for populating this element
SHOULD
0..1
Mrs Julie Jones
Patient.name.family
Follow UK Core guidance for populating this element
SHOULD
0..1
Jones
Patient.name.given
Follow UK Core guidance for populating this element
SHOULD
0..1
Julie
Patient.name.prefix
Follow UK Core guidance for populating this element
SHOULD
0..1
Mrs
Patient.gender
Follow UK Core guidance for populating this element
SHOULD
0..1
female
Patient.birthDate
Follow UK Core guidance for populating this element
SHOULD
0..1
1959-05-04
Patient.address
Follow UK Core guidance for populating this element
SHOULD
0..*
Patient.address.use
Follow UK Core guidance for populating this element
SHOULD
0..1
home
Patient.address.type
Follow UK Core guidance for populating this element
SHOULD
0..1
both
Patient.address.text
Follow UK Core guidance for populating this element
SHOULD
0..1
22 Brightside Crescent, Overtown, West Yorkshire, LS10 4YU
Patient.address.line
Follow UK Core guidance for populating this element
SHOULD
0..*
22 Brightside Crescent
Patient.address.city
Follow UK Core guidance for populating this element
SHOULD
0..1
Overtown
Patient.address.district
Follow UK Core guidance for populating this element
SHOULD
0..1
West Yorkshire
Patient.address.postalCode
Follow UK Core guidance for populating this element
SHOULD
0..1
LS10 4YU
Patient.contact
This should be used to record telecom information for the patient and/or the patient's representative for the encounter
MUST
0..*
Patient.contact.extension
MUST
0..*
Patient.contact.extension.url
This MUST be populated with Structure Definition 'https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactRank' - FIXED VALUE
MUST
0..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-ContactPreference
Patient.contact.extension.urlvaluePositiveInt
This MUST be populated with the rank of the whole contact and MUST be populated with the value '1' for the primary person to contact for referral. There MUST be at least one contact for the referral.
MUST
0..1
1
Patient.contact.relationship
MUST
0..*
Patient.contact.relationship.coding
MUST
0..*
Patient.contact.relationship.coding.system
This MUST be populated with the CodeSystem from the ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
Where the contact details relate to the patient this relationship MUST be populated with the value 'self'.
Where the contact details relate to a patient's representative this SHOULD be populated with their relationship to the patient.
If the relationship is not known this SHOULD be populated with the value 'Unknown'MUST
0..1
https://simplifier.net/hl7fhirukcorer4/ukcore-personrelationshiptype-110
Patient.contact.relationship.coding.code
This MUST be populated with Code of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
MUST
0..1
EP
Patient.contact.relationship.coding.display
This MUST be populated with Display of CodeSystem value. See ValueSet 'https://fhir.hl7.org.uk/ValueSet/UKCore-PersonRelationshipType'.
MUST
0..1
EP
Patient.contact.name
SHOULD
0..1
Patient.contact.name.family
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Grayson
Patient.contact.name.given
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Jack
Patient.contact.telecom
MUST
0..*
Patient.contact.telecom.system
This MUST be populated for the rank 1 contact. There MUST be at least one contact phone number for the referral
MUST
0..1
phone
Patient.contact.telecom.value
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
0789 1234567
Patient.contact.gender
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
male
Patient.Communication
SHOULD
0..*
Patient.Communication.Language
MUST
1..1
Patient.Communication.Language.coding
MUST
1..1
Patient.Communication.Language.coding.code
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
en
Patient.Communication.Language.coding.system
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-HumanLanguage
Patient.Communication.Language.coding.display
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
English
Patient.Communication.Language.preferred
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
TRUE
Patient.extension
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..*
Patient.extension.url
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-EthnicCategory
Patient.extension.url.valueCodeableConcept
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Patient.extension.url.valueCodeableConcept.coding
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
Patient.extension.url.valueCodeableConcept.coding.system
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
https://fhir.hl7.org.uk/CodeSystem/UKCore-EthnicCategory
Patient.extension.url.valueCodeableConcept.coding.code
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
A
Patient.extension.url.valueCodeableConcept.coding.display
This SHOULD be populated. Follow UK Core guidance for populating this element
SHOULD
0..1
British, Mixed British
Patient.generalPractitioner
This SHOULD be populated with a reference to the GP Surgery ONLY rather than a specific practitioner
SHOULD
0..*
Patient.generalPractitioner.reference
This SHOULD be populated. Where populated this MUST reference to an Organisation resource
SHOULD
0..1
urn:uuid:b83d13e2-8c2e-422c-88ac-63b8e86a4411
This resource is used to communicate details about the sender and receiver organisations. A grouping of people or organizations with a common purpose A formally or informally recognized grouping of people or organizations formed for the purpose of achieving some form of collective action. Includes companies, institutions, corporations, departments, community groups, healthcare practice groups, payer/insurer, etc. Additional content defined by implementations extensions, user content May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Unordered, Open, by url(Value) Main location extensions, user content The main location of the organisation. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. Extension(Reference(UK Core Location)) https://fhir.hl7.org.uk/StructureDefinition/Extension-UKCore-MainLocation The date range that this organization should be considered available. extensions, user content The date range that this organization should be considered available. There can be no stigma associated with the use of extensions by any application, project, or standard - regardless of the institution or jurisdiction that uses or defines the extensions. The use of extensions is what allows the FHIR specification to retain a core level of simplicity for everyone. http://hl7.org/fhir/StructureDefinition/organization-period identifies the meaning of the extension Source of the definition for the extension code - a logical name or a URL. The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension. System.String The date range that this organization should be considered available. The date range that this organization should be considered available. Identifies this organization across multiple systems Identifier for the organization that is used to identify the organization across multiple disparate systems. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. Unordered, Open, by system(Value) Constraints Organisation Data Service code Identifier code supplier by the Organisation Data Service. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) ODS Site code to identify the organisation at site level ODS Site code to identify the organisation at site level. Organizations are known by a variety of ids. Some institutions maintain several, and most collect identifiers for exchange with other organizations concerning the organization. usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Whether the organization's record is still in active use Whether the organization's record is still in active use. Need a flag to indicate a record is no longer to be used and should generally be hidden for the user in the UI. This active flag is not intended to be used to mark an organization as temporarily closed or under construction. Instead the Location(s) within the Organization should have the suspended status. If further details of the reason for the suspension are required, then an extension on this element should be used. This element is labeled as a modifier because it may be used to mark that the resource was created in error. This resource is generally assumed to be active if no value is provided for the active element Kind of organization The kind(s) of organization that this is. Need to be able to track the kind of organization that this is - different organization types have different uses. Organizations can be corporations, wards, sections, clinical teams, government departments, etc. Note that code is generally a classifier of the type of organization; in many applications, codes are used to identity a particular organization (say, ward) as opposed to another of the same type - these are identifiers, not codes When considering if multiple types are appropriate, you should evaluate if child organizations would be a more appropriate use of the concept, as different types likely are in different sub-areas of the organization. This is most likely to be used where type values have orthogonal values, such as a religious, academic and medical center. We expect that some jurisdictions will profile this optionality to be a single cardinality. Used to categorize the organization. Name used for the organization A name associated with the organization. Need to use the name as the label of the organization. If the name of an organization changes, consider putting the old name in the alias column so that it can still be located through searches. A list of alternate names that the organization is known as, or was known as in the past A list of alternate names that the organization is known as, or was known as in the past. Over time locations and organizations go through many changes and can be known by different names. For searching knowing previous names that the organization was known by can be very useful. There are no dates associated with the alias/historic names, as this is not intended to track when names were used, but to assist in searching so that older names can still result in identifying the organization. A contact detail for the organization A contact detail for the organization. Human contact for the organization. The use code 'home' is not to be used. Note that these contacts are not the contact details of people who are employed by or represent the organization, but official contacts for the organization itself. An address for the organization An address for the organization. May need to keep track of the organization's addresses for contacting, billing or reporting requirements. Organization may have multiple addresses with different uses or applicable periods. The use code 'home' is not to be used. The organization of which this organization forms a part The organization of which this organization forms a part. Need to be able to track the hierarchy of organizations within an organization. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Reference(UK Core Organization) Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it. Contact for the organization for a certain purpose Contact for the organization for a certain purpose. Need to keep track of assigned contact points within bigger organization. Where multiple contacts for the same purpose are provided there is a standard extension that can be used to determine which one is the preferred contact to use. The type of contact Indicates a purpose for which the contact can be reached. Need to distinguish between multiple contact persons. Not all terminology uses fit this general pattern. In some cases, models should not use CodeableConcept and use Coding directly and provide their own structure for managing text, codings, translations and the relationship between elements and pre- and post-coordination. The purpose for which you would contact a contact party. A name associated with the contact A name associated with the contact. Need to be able to track the person by name. Names may be changed, or repudiated, or people may have different names in different contexts. Names may be divided into parts of different type that have variable significance depending on context, though the division into parts does not always matter. With personal names, the different parts might or might not be imbued with some implicit meaning; various cultures associate different importance with the name parts and the degree to which systems must care about name parts around the world varies widely. Contact details (telephone, email, etc.) for a contact A contact detail (e.g. a telephone number or an email address) by which the party may be contacted. People have (primary) ways to contact them in some way such as phone, email. Visiting or postal addresses for the contact Visiting or postal addresses for the contact. May need to keep track of a contact party's address for contacting, billing or reporting requirements. Note: address is intended to describe postal addresses for administrative purposes, not to describe absolute geographical coordinates. Postal addresses are often used as proxies for physical locations (also see the Location resource). Technical endpoints providing access to services operated for the organization Technical endpoints providing access to services operated for the organization. Organizations have multiple systems that provide various services and need to be able to define the technical connection details for how to connect to them, and for what purpose. References SHALL be a reference to an actual FHIR resource, and SHALL be resolveable (allowing for access control, temporary unavailability, etc.). Resolution can be either by retrieval from the URL, or, where applicable by resource type, by treating an absolute reference as a canonical URL and looking it up in a local registry/repository. Literal reference, Relative, internal or absolute URL A reference to a location at which the other resource is found. The reference may be a relative reference, in which case it is relative to the service base URL, or an absolute URL that resolves to the location where the resource is found. The reference may be version specific or not. If the reference is not to a FHIR RESTful server, then it should be assumed to be version specific. Internal fragment references (start with '#') refer to contained resources. Using absolute URLs provides a stable scalable approach suitable for a cloud/web context, while using relative/logical references provides a flexible approach suitable for use when trading across closed eco-system boundaries. Absolute URLs do not need to point to a FHIR RESTful server, though this is the preferred approach. If the URL conforms to the structure "/[type]/[id]" then it should be assumed that the reference is to a FHIR RESTful server. Type the reference refers to (e.g. "Patient") The expected type of the target of the reference. If both Reference.type and Reference.reference are populated and Reference.reference is a FHIR URL, both SHALL be consistent. The type is the Canonical URL of Resource Definition that is the type this reference refers to. References are URLs that are relative to http://hl7.org/fhir/StructureDefinition/ e.g. "Patient" is a reference to http://hl7.org/fhir/StructureDefinition/Patient. Absolute URLs are only allowed for logical models (and can only be used in references in logical models, not resources). This element is used to indicate the type of the target of the reference. This may be used which ever of the other elements are populated (or not). In some cases, the type of the target may be determined by inspection of the reference (e.g. a RESTful URL) or by resolving the target of the reference; if both the type and a reference is provided, the reference SHALL resolve to a resource of the same type as that specified. Aa resource (or, for logical models, the URI of the logical model). Logical reference, when literal reference is not known An identifier for the target resource. This is used when there is no way to reference the other resource directly, either because the entity it represents is not available through a FHIR server, or because there is no way for the author of the resource to convert a known identifier to an actual location. There is no requirement that a Reference.identifier point to something that is actually exposed as a FHIR instance, but it SHALL point to a business concept that would be expected to be exposed as a FHIR instance, and that instance would need to be of a FHIR resource type allowed by the reference. When an identifier is provided in place of a reference, any system processing the reference will only be able to resolve the identifier to a reference if it understands the business context in which the identifier is used. Sometimes this is global (e.g. a national identifier) but often it is not. For this reason, none of the useful mechanisms described for working with references (e.g. chaining, includes) are possible, nor should servers be expected to be able resolve the reference. Servers may accept an identifier based reference untouched, resolve it, and/or reject it - see CapabilityStatement.rest.resource.referencePolicy. When both an identifier and a literal reference are provided, the literal reference is preferred. Applications processing the resource are allowed - but not required - to check that the identifier matches the literal reference Applications converting a logical reference to a literal reference may choose to leave the logical reference present, or remove it. Reference is intended to point to a structure that can potentially be expressed as a FHIR resource, though there is no need for it to exist as an actual FHIR resource instance - except in as much as an application wishes to actual find the target of the reference. The content referred to be the identifier must meet the logical constraints implied by any limitations on what resource types are permitted for the reference. For example, it would not be legitimate to send the identifier for a drug prescription if the type were Reference(Observation|DiagnosticReport). One of the use-cases for Reference.identifier is the situation where no FHIR representation exists (where the type is Reference (Any). usual | official | temp | secondary | old (If known) The purpose of this identifier. Allows the appropriate identifier for a particular context of use to be selected from among a set of identifiers. Applications can assume that an identifier is permanent unless it explicitly says that it is temporary. Identifies the purpose for this identifier, if known . Description of identifier A coded type for the identifier that can be used to determine which identifier to use for a specific purpose. Allows users to make use of identifiers when the identifier system is not known. This element deals only with general categories of identifiers. It SHOULD not be used for codes that correspond 1..1 with the Identifier.system. Some identifiers may fall into multiple categories due to common usage. Where the system is known, a type is unnecessary because the type is always part of the system definition. However systems often need to handle identifiers where the system is not known. There is not a 1:1 relationship between type and system, since many different systems have the same type. A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. The namespace for the identifier value Establishes the namespace for the value - that is, a URL that describes a set values that are unique. There are many sets of identifiers. To perform matching of two identifiers, we need to know what set we're dealing with. The system identifies a particular set of unique identifiers. Identifier.system is always case sensitive. The value that is unique The portion of the identifier typically relevant to the user and which is unique within the context of the system. If the value is a full URI, then the system SHALL be urn:ietf:rfc:3986. The value's primary purpose is computational mapping. As a result, it may be normalized for comparison purposes (e.g. removing non-significant whitespace, dashes, etc.) A value formatted for human display can be conveyed using the Rendered Value extension. Identifier.value is to be treated as case sensitive unless knowledge of the Identifier.system allows the processer to be confident that non-case-sensitive processing is safe. Time period when id is/was valid for use Time period during which identifier is/was valid for use. A Period specifies a range of time; the context of use will specify whether the entire range applies (e.g. "the patient was an inpatient of the hospital for this time range") or one value from the range applies (e.g. "give to the patient between these two times"). Period is not used for a duration (a measure of elapsed time). See Duration. Organization that issued id (may be just text) Organization that issued/manages the identifier. The Identifier.assigner may omit the .reference element and only contain a .display element reflecting the name or other textual information about the assigning organization. Reference(UK Core Organization) Text alternative for the resource Plain text narrative that identifies the resource in addition to the resource reference. This is generally not the same as the Resource.text of the referenced resource. The purpose is to identify what's being referenced, not to fully describe it.
> Organization
Organization I Organization Organization
contained.contained.empty()
contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
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()
text.`div`.exists()
contained.meta.security.empty()
(identifier.count() + name.count()) > 0
extension I 0..* Extension Element Id Organization.extension
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
mainLocation I 0..* Extension(Reference(UK Core Location)) Element Id Organization.extension:mainLocation
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
organizationPeriod I 0..1 Extension(Period) Element Id Organization.extension:organizationPeriod
hasValue() or (children().count() > id.count())
extension.exists() != value.exists()
url 1..1 System.StringFixed Value Organization.extension:organizationPeriod.url
http://hl7.org/fhir/StructureDefinition/organization-period
value[x] 1..1 Element Id Organization.extension:organizationPeriod.value[x]
hasValue() or (children().count() > id.count())
valuePeriod Period identifier Σ I 0..* Identifier Element Id Organization.identifier
hasValue() or (children().count() > id.count())
odsOrganisationCode Σ I 0..1 Identifier Element Id Organization.identifier:odsOrganisationCode
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.identifier:odsOrganisationCode.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.identifier:odsOrganisationCode.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Organization.identifier:odsOrganisationCode.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/ods-organization-code
value Σ 1..1 string Organization.identifier:odsOrganisationCode.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.identifier:odsOrganisationCode.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.identifier:odsOrganisationCode.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
odsSiteCode Σ I 0..1 Identifier Element Id Organization.identifier:odsSiteCode
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.identifier:odsSiteCode.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.identifier:odsSiteCode.type
hasValue() or (children().count() > id.count())
system Σ 1..1 uriFixed Value Element Id Organization.identifier:odsSiteCode.system
hasValue() or (children().count() > id.count())
https://fhir.nhs.uk/Id/ods-site-code
value Σ 1..1 string Organization.identifier:odsSiteCode.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.identifier:odsSiteCode.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.identifier:odsSiteCode.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
active Σ ?! 0..1 boolean Organization.active
hasValue() or (children().count() > id.count())
type Σ 0..* CodeableConcept Organization.type
hasValue() or (children().count() > id.count())
name Σ I 0..1 string Organization.name
hasValue() or (children().count() > id.count())
alias 0..* string Organization.alias
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Organization.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
where(use = 'home').empty()
address I 0..* Address Organization.address
hasValue() or (children().count() > id.count())
where(use = 'home').empty()
partOf Σ I 0..1 Reference(UK Core Organization) Element Id Organization.partOf
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Organization.partOf.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Organization.partOf.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Organization.partOf.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.partOf.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.partOf.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Organization.partOf.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Organization.partOf.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.partOf.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.partOf.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Organization.partOf.display
hasValue() or (children().count() > id.count())
contact 0..* BackboneElement Organization.contact
hasValue() or (children().count() > id.count())
purpose 0..1 CodeableConceptBinding Organization.contact.purpose
hasValue() or (children().count() > id.count())
name 0..1 HumanName Organization.contact.name
hasValue() or (children().count() > id.count())
telecom I 0..* ContactPoint Organization.contact.telecom
hasValue() or (children().count() > id.count())
value.empty() or system.exists()
address 0..1 Address Organization.contact.address
hasValue() or (children().count() > id.count())
endpoint I 0..* Reference(Endpoint) Organization.endpoint
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
reference Σ I 0..1 string Organization.endpoint.reference
hasValue() or (children().count() > id.count())
type Σ 0..1 uriBinding Organization.endpoint.type
hasValue() or (children().count() > id.count())
identifier Σ 0..1 Identifier Organization.endpoint.identifier
hasValue() or (children().count() > id.count())
use Σ ?! 0..1 codeBinding Organization.endpoint.identifier.use
hasValue() or (children().count() > id.count())
type Σ 0..1 CodeableConceptBinding Organization.endpoint.identifier.type
hasValue() or (children().count() > id.count())
system Σ 0..1 uri Organization.endpoint.identifier.system
hasValue() or (children().count() > id.count())
http://www.acme.com/identifiers/patient
Mappingsvalue Σ 0..1 string Organization.endpoint.identifier.value
hasValue() or (children().count() > id.count())
123456
Mappingsperiod Σ I 0..1 Period Organization.endpoint.identifier.period
hasValue() or (children().count() > id.count())
start.hasValue().not() or end.hasValue().not() or (start <= end)
assigner Σ I 0..1 Reference(UK Core Organization) Element Id Organization.endpoint.identifier.assigner
hasValue() or (children().count() > id.count())
reference.startsWith('#').not() or (reference.substring(1).trace('url') in %rootResource.contained.id.trace('ids'))
display Σ 0..1 string Organization.endpoint.display
hasValue() or (children().count() > id.count())
Data Item
Implementation Guidance
Necessity
Profile Cardinality
Example Value(s)
Organization
This resource is used to communicate details about the sender organisations.
https://simplifier.net/hl7fhirukcorer4/ukcore-organization
2..*
Organization.id
This MUST only be populated with an id generated by the Receiver in the synchronous HTTP response.
MUST
0..1
5d897313-c62d-4e7e-92b7-b2199804fed3
Organization.meta
https://www.hl7.org/fhir/resource.html#Meta
MUST
1..1
Organization.meta.profile
This MUST be populated. Follow UK Core guidance for populating this element
MUST
1..1
https://fhir.hl7.org.uk/StructureDefinition/UKCore-Organization
Organization.meta.lastUpdated
This MUST be populated. All resources MUST include 'lastUpdated' value, under meta section which MUST be the same timestamp for each resource when created from new, but MUST be a later timestamp on updates, if the content of a particular resource contains updated info for subsequent updates. Otherwise, maintain the timestamp originally sent.
MUST
1..1
2023-03-08T12:01:08.4677672+00:00
Organization.identifier
This MUST be populated with an organisation identifier e.g. ODS code
MUST
0..*
Organization.identifier.system
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
https://fhir.nhs.uk/id/ods-organization-code
Organization.identifier.value
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
ABD01
Organization.name
This MUST be populated. Follow UK Core guidance for populating this element
MUST
0..1
Organisation name
Entity Relationship Diagram - Cancellation Booking Request
The below diagram details the Cancellation Booking Request
Use Case Categories
One important factor, when making a request of another service, is ensuring the type (or category) of referral being requested is discrete, and sufficiently granular enough, to avoid overlap with other services. For example, a Pharmacy, may support numerous services such as Blood Pressure, New Medicine Service, Oral Contraception, etc.. The Receiver, during the processing of the referral request, will depend upon referral type (among other key information in the request payload) to direct to an appropriate clinical professional or queue etc., dictating the next workflow steps.
The 'type' of referral is categorised at the service level, rather than organisation or system. This service provider level is where BaRS works to define the use-case, to digitise workflow. For example, within the AST (Ambulance Service Trust) referring to AST Service (CAD to CAD), Application6, there are three use-cases defined; Out of Area, Mutual Aid and Call Assist. All of these referral request 'types' will end up within the same AST system but the workflows for them differ. These differences could include whether a request is accepted automatically or not, the timeframes an action must be dealt within and the skillset required to undertake the request. A use-case will only ever fit into one BaRS Application, but a BaRS Application may encompass several use-cases, as is the case with Application6. A list of use-case categories have been defined in a specific BaRS CodeSystem which indicate the supported use-cases, and all BaRS compliant solutions must adopt.
The use-case category is referenced in the initial negotation phase, when a Sender makes a request for MessageDefinitions, and in the subsequent referral request made to the Receiver. The MessageDefinition(s) returned by the Receiver will contain a use-case category code (from the 'use-case-categories' CodeSystem above) under MessageDefintion.useContext.code. The Sender must read this field to verify the Receiver supports the use-case workflow they intend to engage with. For example, in Application6, certain AST may not support Mutual Aid or Call Assist, therefore, it would be inappropriate to send a referral request to them for either of these use-cases. The Receiver will be able to make this distinction because the Sender's request will include the use-case category code value, under ServiceRequest.category and, if it is something they do not support, they will respond with an error (Operation Outcome).
The sequence of events occurs as follows:
- the Sender requests the MessageDefintions (which indicate the use-case categories supported)
- the Sender reads and only engages in the use-case workflows supported
- the Sender's request includes the use-case category code (the same code they read from the MessageDefinition), under ServiceRequest.category
- the Receiver processes accordingly