3.55 StructureDefinition: Interaction Bundle - Practitioner Query
The official URL for this profile is:
http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner
Provider and Location Registry - Introduction
The Provider Registry provides searchable access to practitioners (prescribers) and organizations (clinics and pharmacies). Health Exchange maintains a cache of the Registry data that supports both read and search capabilities.
Organization and Practitioner reads and queries are executed based upon the context. For a given practitioner or organization record, there will be two endpoints and the vendor must select and use the appropriate endpoint depending on the type of query or message. In the messages, references will be the full URL.
A summary of their function is found in the table below:
Provider and Location Registry function | HTTP action (**will change per environment, see SDF documentation) | HTTP Payload Profile | Example |
---|---|---|---|
Practitioner | |||
Read Practitioner request |
GET https://EnvironmentSpecificHost/EnvironmentAndContextSpecificPathRegistry/Practitioner/[Practitioner id]
|
N/A | N/A |
Read Practitioner response | HTTP 200 GET Response w/ FHIR Practitioner payload | Practitioner response | Practitioner read |
Search Practitioner request |
GET https://EnvironmentSpecificHost/EnvironmentAndContextSpecificPathRegistry/Practitioner?[Practitioner search parameters] (see below) |
N/A | N/A |
Search Practitioner response | HTTP 200 GET Response w/ FHIR Bundle searchset payload | Practitioner response | Practitioner Search response |
3.55.1 Search Parameters
When performing a search, the requester must specify one or more search criteria to filter the set of organizations that can be returned. The table below summarizes the search parameters that can be used and which resources they can be used for. (Note that parameters sent in the URL must be appropriately escaped.)
There are 3 types of searches supported: 1) Identifier Search (GET), 2) Discrete Fields Search, and 3) Elastic Search
On a Search response, we return a searchset bundle. If the "_revinclude=Practitioner:organization" parameter is specified then the service should return full Practitioner resources for each of the organizations.
Group No 1 (Identifier Search)
For the GET response, you only get one and only one resource. The resource is returned directly not wrapped in a bundle. Details on the response can be found here.
Parameter | Used for | Required/ Optional | Description | Example |
---|---|---|---|---|
identifier |
Organization/practitioner |
Required |
Matches on either the provider registry identifier (CPR) for practitioner or organization. Minimum 3 characters. |
identifier=2263396629|http%3A%2F%sharedhealth.exchange%2Ffhir%2FNamingSystem%2Fregistry-id-practitioner |
Matches on license number for the practitioner |
identifier=134IDY41W988|urn%3Aoid%3A2.16.840.1.113883.2.4.6.3 |
|||
_revinclude |
Organization |
Optional |
This causes the query to return all practitioners associated with the Organization that met the search criteria. The practitioners are returned directly following the organization within the response. Organization A, Practitioner X, Practitioner Y. Organization B, Practitioner Y, Practitioner Z. Note: This pattern allows for the same profiles to appear in the response multiple times. |
_revinclude=Practitioner:organization |
_include |
Practitioner |
Optional |
This causes the query to return all organizations pointed to the Practitioner that met the search criteria. The Organizations are returned directly following the Practitioner, within the response. Practioner A, Organization X, Organization Y. Practioner B, Organization Y, Organization Z. Note: This pattern allows for the same profiles to appear in the response multiple times. |
_include=Practitioner:organization (Value must equal Practitioner:organization) |
Examples: $URL/Organization?identifier=200020258|http%3A%2F% sharedhealth.exchange%2Ffhir%2FNamingSystem%2Fregistry-id-practitioner&_revinclude=Practitioner:organization$URL/Practitioner?identifier=200020258|http%3A%2F% $URL/Practitioner?identifier=200020258|http%3A%2F% sharedhealth.exchange%2Ffhir%2FNamingSystem%2Fregistry-id-practitioner $URL/Practitioner?identifier=134IDY41W988|urn%3Aoid%3A2.16.840.1.113883.2.4.6.3&_include=Practitioner:organization $URL/Practitioner?identifier=134IDY41W988|urn%3Aoid%3A2.16.840.1.113883.2.4.6.3 |
Group No 4 Practitioner Search By Discrete Fields
For a Discrete field search, you can receive multiple resources, returned in a searchset bundle. Details on the response can be found here.
Parameter | Used for | Required / Optional | Description | Example |
---|---|---|---|---|
organization.address-state:exact | Practitioner | Required | This match on the province or territory of one of the practitioner's service location's addresses. Exact match. | organization.address-state:exact=ON |
organization.address-city:exact | Practitioner | Optional | This searches for an exact match on the municipality of one of the service location's addresses. Minimum 3 characters. | organization.address-city:exact=Hamilton organization.address-city =Hamilt (you can't use both parameters together, you only allowed to one of them) |
organization.address-city | This searches for start with match on the municipality of one of the service location's addresses. Minimum 3 characters. | |||
organization.address-line:exact | Practitioner | Optional | This searches for an exact match on the street address line of the service location's address. | organization.address-line:exact=123%20North%20102n organization.address-line:contains=North (you can't use both parameters together, you only allowed to one of them) |
organization.address-line:contains | This searches for contains match on the street address line of the service location's address. | |||
organization.address-postalcode | Practitioner | Optional | This searches for start with match on the municipality of one of the service location's postal code. Minimum 3 characters. | organization.address-postalcode=H3H |
name-family:contains | Practitioner | Optional | Partial match search on the family name of the practitioner. | name-family:contains=impl |
name-family | Practitioner | Optional | This searches for family name (start with) | name-family=elso |
name-given | Practitioner | Optional | This searches for given name (start with). Minimum 3 characters. | name-given=basse |
telecom-phone:exact | Practitioner | Optional | This searches for a an exact match on one of the 10-digit phone numbers of the practitioner | telecom-phone:exact=5555551212 |
_include | Practitioner | Optional | This causes the query to return all organizations pointed to by Practitioner that meet the search criteria. | _include=Practitioner:organization (Value must equal Practitioner:organization) |
Role | Practitioner | Optional | This searches for role (contains). Minimum 3 characters. | role=Doc |
Specialty | Practitioner | Optional | This searches for specialty (contains). Minimum 3 characters. | specialty=Fam |
License (cps id) | Practitioner | Optional | This searches for exact match for cps-id | cps-id=2.16.840.1.113883.4.756 |
Examples $URL/Practitioner?organization.address-state:exact=ON& organization.address-city:exact=Hamilton&name:contains=Test&organization.address-line:contains=Cotu $URL/Practitioner?organization.address-state:exact=ON&organization.address-city=Hamil&name:contains=Test&organization.address-line:contains=Cotu /tpr-fhir/fhir/Practitioner?organization.address-state:exact=BC&cps-id=2.16.840.1.113883.4.756 /tpr-fhir/fhir/Practitioner?organization.address-state:exact=BC&specialty |
Startwith Rules*: A "startwith" search will search across each word within the name (e.g. Organization or Practitioner name) rather than the start of the name as a whole. For example: If searching for a query string = "pharm", the result set would include both "Pharmacy ABC" and "Sue's Pharmacy" because the search tokenizes the names and therefore searches across the words "Pharmacy" and "ABC" in the first instance and "Sue's" and "Pharmacy" in the second instance.
For an elastic search, you can receive multiple resources, returned in a searchset bundle. Details on the response can be found here.
Parameter | Used for | Required/ Optional | Description | Example |
---|---|---|---|---|
organization.address-state:exact |
Practitioner |
Required |
This searches for an exact match on the province or territory of one of the practitioner's service location's addresses. |
organization.address-state:exact=ON |
elastic-search-string |
Practitioner |
Required |
Multiple search terms separated by spaces (URL escaped) (startswith). Minimum 3 characters. |
elastic-search-string=smith+john+phys+hamil |
elastic-search-attribute-set |
Practitioner |
Required |
Code set. Currently supported values: set-001 and set-002. With set-001 defined as:
Set-002 includes set-001 and adds:
|
elastic-search-attribute-set=set-001 or elastic-search-attribute-set=set-002 |
entity-service-code |
Practitioner |
Optional |
value from the service code set. Exact match. |
entity-service-code=presriber-erx / meddialog-person-org ** see note below |
_include |
Practitioner |
Optional |
This causes the query to return all organizations pointed to by Practitioner that meet the search criteria. Exact match. |
_include=Practitioner:organization |
Examples: $URL /Practitioner?organization.address-state:exact=BC&elastic-search-string=Sur%20Row&elastic-search-attribute-set=set-001 $URL /Practitioner?organization.address-state:exact=BC&elastic-search-string=greg%20545&elastic-search-attribute-set=set-002 |
*** Elastic Search by Specialty
The following is a list of the Practitioner Role descriptions that are supported by our Provider Registry.
- Generic practitioner search - string value = "physician". This will search all practitioners
- Specialty practitioner search - string value = "use the terminology identified below" (e.g. "Family" for Family Medicine, Cardiac for Cardiac Surgery
- For elastic search scenario "starts with" applies to each word separately. So for "Physician, Family Medicine"
- You could search for "Phys" or "Fam" or "Medi" but not for "amily"
- Specialty Search will include matches on both the English and French description. The text that is used for Specialty searches will be used to search across both French and English versions of specialty within the PR.
Provider and Location Registry Role/Specialty Descriptions
English | French |
---|---|
Physician, Anaesthesia |
Médecin, anesthésie |
Physician, Cardiac Surgery |
Médecin, chirurgie cardiaque |
Physician, Cardiology |
Médecin, cardiologue |
Physician, Immunology/Allergy |
Médecin, immunologie/allergies |
Physician, Colorectal Surgery |
Médecin, chirurgie colorectale |
Physician, Dermatology |
Médecin, dermatologie |
Physician, Diagn. Radiology |
Méd., radiol. diagnostique |
Physician, Emergency Medicine |
Médecin, traumatologie |
Physician, Endo / Metabolism |
Médecin, endocrino./métabolisme |
Physician, Family Medicine |
Médecin, médecine familiale |
Physician, Gastroenterology |
Médecin, gastroentérologie |
Physician, General Pathology |
Médecin, pathologie générale |
Physician, Gen. Internal Med. |
Médecin, médecine interne gén. |
Physician, General Practice |
Médecin, pratique générale |
Physician, General Surgery |
Médecin, chirurgie générale |
Physician, Geriatric Medicine |
Médecin, gériatrie |
Physician, GYN Oncology |
Méd., oncologie gynécologique |
Physician, Haematology |
Médecin, hématologie |
Physician, Hand Surgery |
Médecin, chirurgie des mains |
Physician, Infectious Diseases |
Médecin, maladies infectieuses |
Physician, Interventional RADL |
Méd., radiol. d'intervention |
Physician, Medical Oncology |
Médecin, oncologie médicale |
Physician, Nephrology |
Médecin, néphrologie |
Physician, Neurology |
Médecin, neurologie |
Physician, Neuro/Psychiatry |
Médecin, neuro/psychiatrie |
Physician, Neurosurgery |
Médecin, neurochirurgie |
Physician, Nuclear Medicine |
Médecin, médecine nucléaire |
Physician, Obstetrics/GYN |
Méd., obstétrique/gynécologie |
Physician, Ophthalmology |
Médecin, ophtalmologie |
Physician, Otolaryngology |
Médecin, otolaryngologie |
Physician, Orthopaedic Surgery |
Médecin, médecine orthopédique |
Physician, OMT |
Médecin, ostéopraticien |
Physician, Paediatrics |
Médecin, pédiatrie |
Physician, Physical Med./Rehab |
Méd., réadapt. phys./médicale |
Physician, Plastic Surgery |
Médecin, chirurgie plastique |
Physician, Preventive Medicine |
Médecin, médecine préventive |
Physician, Psychiatry |
Médecin, psychiatrie |
Physician, Pulmonary Diseases |
Médecin, maladies pulmonaires |
Physician, Radiation Oncology |
Méd., oncologie radiologique |
Physician, Rheumatology |
Médecin, rhumatologie |
Physician, Thoracic Surgery |
Médecin, chirurgie thoracique |
Physician, Urology |
Médecin, urologue |
Physician, Vascular Surgery |
Médecin, chirurgie vasculaire |
Physician, Unknown Specialty |
Médecin, spécialité inconnue |
3.55.2 Formal Views of Profile Content
Download Excel representation
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from Shared Health Bundle - Query Response
Name | Card. | Type | Constraints and Usage |
---|---|---|---|
Bundle | 0..* | bdl-2: entry.search only when a search bdl-1: total only when a search or history bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId bdl-3: entry.request only for some types of bundles bdl-4: entry.response only for some types of bundles Definition: A container for a collection of resources. | |
id | 0..1 | id | Definition: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes. Comments: Usage Note: This value is assigned by the PrescribeIT™ system upon receipt of a bundle and returned synchronously in the response to that bundle. This ID should not be confused with the traceID that is also returned in the response and is generally used when diagnosing message failures within the PrescribeIT™ system logs. The Bundle.id is also used by receiving systems to remove the bundle from their inbox after they have successfully retrieved the bundle. |
meta | 1..1 | Meta | Definition: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource. |
profile | 1..* | uri | Slice: Unordered, Open by value:value Definition: A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Comments: It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set. |
profile (Profile) | 1..1 | uri | Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner Definition: A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Comments: Fixed value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
tag | 1..* | Coding | Slice: Unordered, Open by value:system Binding: (unbound) (example) Definition: Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. Comments: The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored. |
tag (version) | 1..1 | Coding | Binding: SharedSpecificationVersion (required) Definition: Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. Comments: Usage Note: This the version of the specification the Bundle claims to be conformant with. |
system | 1..1 | uri | Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion Definition: The identification of the code system that defines the meaning of the symbol in the code. Comments: Fixed value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion |
code | 1..1 | code | Fixed Value: Shared2.0 Definition: 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). Comments: Fixed value: Shared2.0 |
type | 1..1 | code | Binding: BundleType (required) Fixed Value: searchset Definition: Indicates the purpose of this bundle- how it was intended to be used. Comments: Fixed value: searchset |
total | 0..1 | unsignedInt | Definition: If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). Comments: Only used if the bundle is a search result set. |
link | 1..* | BackboneElement | Slice: Unordered, Open by value:relation Definition: A series of links that provide context to this bundle. |
link (self) | 1..1 | BackboneElement | Definition: A series of links that provide context to this bundle. Comments: Echoes the submitted query, including only those parameters which were processed by the server. This allows for the possibility that the server might not support all of the parameters submitted by the client. Conformance Rule: Implementations are expected to check that the query that was executed corresponds with what they had intended. |
relation | 1..1 | string | Fixed Value: self Definition: A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. Comments: Fixed value: self |
url | 1..1 | uri | Definition: The reference details for the link. |
link (next) | 0..1 | BackboneElement | Definition: A series of links that provide context to this bundle. |
relation | 1..1 | string | Fixed Value: next Definition: A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. Comments: Fixed value: next |
url | 1..1 | uri | Definition: The reference details for the link. Comments: If present, indicates additional results are available and can be retrieved by performing a GET on this URL |
entry | 1..* | BackboneElement | bdl-5: must be a resource unless there's a request or response bdl-6: The fullUrl element must be present when a resource is present, and not present otherwise entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes Definition: An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only). |
fullUrl | 1..1 | uri | Definition: The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle) * Results from operations might involve resources that are not identified. Comments: fullUrl may 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 absolute URL may not end with the logical id of the resource (Resource.id), but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then it SHALL end with the Resource.id. |
resource | 1..1 | Resource | Definition: The Resources for the entry. |
search | 1..1 | BackboneElement | Definition: Information about the search process that lead to the creation of this entry. |
mode | 1..1 | code | Binding: SearchEntryMode (required) Definition: Why this entry is in the result set - whether it's included as a match or because of an _include requirement. Comments: 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. |
This structure is derived from Shared Health Bundle - Query Response
Summary
Mandatory: 7 elements
Must-Support: 8 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
- The element Bundle.meta.profile is sliced based on the value of value:value
This structure is derived from Shared Health Bundle - Query Response
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Bundle | S | 0..* | ||
meta | S | 1..1 | Meta | |
profile | S | uri | Slice: Unordered, Open by value:value | |
profile | S | 1..1 | uri | Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
tag | S | 1..1 | Coding | |
code | S | 1..1 | code | Fixed Value: Shared2.0 |
entry | SI | 1..* | BackboneElement | entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes |
search | S | 1..1 | BackboneElement | |
mode | S | 1..1 | code | |
Documentation for this format |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Bundle | SΣI | 0..* | Contains a collection of resources | |
id | SΣ | 0..1 | id | Logical id of this artifact |
meta | SΣ | 1..1 | Meta | Metadata about the resource |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
versionId | Σ | 0..1 | id | Version specific identifier |
lastUpdated | Σ | 0..1 | instant | When the resource version last changed |
profile | SΣ | uri | Profiles this resource claims to conform to Slice: Unordered, Open by value:value | |
profile | SΣ | 1..1 | uri | Profiles this resource claims to conform to Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible) |
tag | SΣ | Coding | Tags applied to this resource Slice: Unordered, Open by value:system Binding: (unbound) (example) | |
tag | SΣ | 1..1 | Coding | Tags applied to this resource Binding: SharedSpecificationVersion (required) |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
system | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | SΣ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: Shared2.0 |
display | Σ | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: http://tools.ietf.org/html/bcp47 (required) | |
type | SΣ | 1..1 | code | document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection Binding: BundleType (required) Fixed Value: searchset |
total | SΣI | 0..1 | unsignedInt | If search, the total number of matches |
link | SΣ | BackboneElement | Links related to this Bundle Slice: Unordered, Open by value:relation | |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | Σ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml |
url | Σ | 1..1 | uri | Reference details for the link |
link | SΣ | 1..1 | BackboneElement | Links related to this Bundle |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | SΣ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml Fixed Value: self |
url | SΣ | 1..1 | uri | Reference details for the link |
link | SΣ | 0..1 | BackboneElement | Links related to this Bundle |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | SΣ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml Fixed Value: next |
url | SΣ | 1..1 | uri | Reference details for the link |
entry | SΣI | 1..* | BackboneElement | Entry in the bundle - will have a resource, or information entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
link | Σ | 0..* | Unknown reference to #Bundle.link:next Links related to this entry | |
fullUrl | SΣ | 1..1 | uri | Absolute URL for resource (server address, or UUID/OID) |
resource | SΣ | 1..1 | Resource | A resource in the bundle |
search | SΣI | 1..1 | BackboneElement | Search related information |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
mode | SΣ | 1..1 | code | match | include | outcome - why this is in the result set Binding: SearchEntryMode (required) |
score | Σ | 0..1 | decimal | Search ranking (between 0 and 1) |
signature | Σ | 0..1 | Signature | Digital Signature |
Documentation for this format |
Grid View
This structure is derived from Shared Health Bundle - Query Response
Name | Card. | Type | Constraints and Usage |
---|---|---|---|
Bundle | 0..* | bdl-2: entry.search only when a search bdl-1: total only when a search or history bdl-7: FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId bdl-3: entry.request only for some types of bundles bdl-4: entry.response only for some types of bundles Definition: A container for a collection of resources. | |
id | 0..1 | id | Definition: The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes. Comments: Usage Note: This value is assigned by the PrescribeIT™ system upon receipt of a bundle and returned synchronously in the response to that bundle. This ID should not be confused with the traceID that is also returned in the response and is generally used when diagnosing message failures within the PrescribeIT™ system logs. The Bundle.id is also used by receiving systems to remove the bundle from their inbox after they have successfully retrieved the bundle. |
meta | 1..1 | Meta | Definition: The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content may not always be associated with version changes to the resource. |
profile | 1..* | uri | Slice: Unordered, Open by value:value Definition: A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Comments: It is up to the server and/or other infrastructure of policy to determine whether/how these claims are verified and/or updated over time. The list of profile URLs is a set. |
profile (Profile) | 1..1 | uri | Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner Definition: A list of profiles [[[StructureDefinition]]]s that this resource claims to conform to. The URL is a reference to [[[StructureDefinition.url]]]. Comments: Fixed value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
tag | 1..* | Coding | Slice: Unordered, Open by value:system Binding: (unbound) (example) Definition: Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. Comments: The tags can be updated without changing the stated version of the resource. The list of tags is a set. Uniqueness is based the system/code, and version and display are ignored. |
tag (version) | 1..1 | Coding | Binding: SharedSpecificationVersion (required) Definition: Tags applied to this resource. Tags are intended to be used to identify and relate resources to process and workflow, and applications are not required to consider the tags when interpreting the meaning of a resource. Comments: Usage Note: This the version of the specification the Bundle claims to be conformant with. |
system | 1..1 | uri | Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion Definition: The identification of the code system that defines the meaning of the symbol in the code. Comments: Fixed value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion |
code | 1..1 | code | Fixed Value: Shared2.0 Definition: 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). Comments: Fixed value: Shared2.0 |
type | 1..1 | code | Binding: BundleType (required) Fixed Value: searchset Definition: Indicates the purpose of this bundle- how it was intended to be used. Comments: Fixed value: searchset |
total | 0..1 | unsignedInt | Definition: If a set of search matches, this is the total number of matches for the search (as opposed to the number of results in this bundle). Comments: Only used if the bundle is a search result set. |
link | 1..* | BackboneElement | Slice: Unordered, Open by value:relation Definition: A series of links that provide context to this bundle. |
link (self) | 1..1 | BackboneElement | Definition: A series of links that provide context to this bundle. Comments: Echoes the submitted query, including only those parameters which were processed by the server. This allows for the possibility that the server might not support all of the parameters submitted by the client. Conformance Rule: Implementations are expected to check that the query that was executed corresponds with what they had intended. |
relation | 1..1 | string | Fixed Value: self Definition: A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. Comments: Fixed value: self |
url | 1..1 | uri | Definition: The reference details for the link. |
link (next) | 0..1 | BackboneElement | Definition: A series of links that provide context to this bundle. |
relation | 1..1 | string | Fixed Value: next Definition: A name which details the functional use for this link - see [[http://www.iana.org/assignments/link-relations/link-relations.xhtml]]. Comments: Fixed value: next |
url | 1..1 | uri | Definition: The reference details for the link. Comments: If present, indicates additional results are available and can be retrieved by performing a GET on this URL |
entry | 1..* | BackboneElement | bdl-5: must be a resource unless there's a request or response bdl-6: The fullUrl element must be present when a resource is present, and not present otherwise entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes Definition: An entry in a bundle resource - will either contain a resource, or information about a resource (transactions and history only). |
fullUrl | 1..1 | uri | Definition: The Absolute URL for the resource. The fullUrl SHALL not disagree with the id in the resource. The fullUrl is a version independent reference to the resource. The fullUrl element SHALL have a value except that: * fullUrl can be empty on a POST (although it does not need to when specifying a temporary id for reference in the bundle) * Results from operations might involve resources that are not identified. Comments: fullUrl may 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 absolute URL may not end with the logical id of the resource (Resource.id), but if the fullUrl does look like a RESTful server URL (e.g. meets the regex, then it SHALL end with the Resource.id. |
resource | 1..1 | Resource | Definition: The Resources for the entry. |
search | 1..1 | BackboneElement | Definition: Information about the search process that lead to the creation of this entry. |
mode | 1..1 | code | Binding: SearchEntryMode (required) Definition: Why this entry is in the result set - whether it's included as a match or because of an _include requirement. Comments: 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. |
This structure is derived from Shared Health Bundle - Query Response
Summary
Mandatory: 7 elements
Must-Support: 8 elements
Fixed Value: 2 elements
Slices
This structure defines the following Slices:
- The element Bundle.meta.profile is sliced based on the value of value:value
Differential View
This structure is derived from Shared Health Bundle - Query Response
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Bundle | S | 0..* | ||
meta | S | 1..1 | Meta | |
profile | S | uri | Slice: Unordered, Open by value:value | |
profile | S | 1..1 | uri | Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
tag | S | 1..1 | Coding | |
code | S | 1..1 | code | Fixed Value: Shared2.0 |
entry | SI | 1..* | BackboneElement | entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes |
search | S | 1..1 | BackboneElement | |
mode | S | 1..1 | code | |
Documentation for this format |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
Bundle | SΣI | 0..* | Contains a collection of resources | |
id | SΣ | 0..1 | id | Logical id of this artifact |
meta | SΣ | 1..1 | Meta | Metadata about the resource |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
versionId | Σ | 0..1 | id | Version specific identifier |
lastUpdated | Σ | 0..1 | instant | When the resource version last changed |
profile | SΣ | uri | Profiles this resource claims to conform to Slice: Unordered, Open by value:value | |
profile | SΣ | 1..1 | uri | Profiles this resource claims to conform to Fixed Value: http://sharedhealth.exchange/fhir/StructureDefinition/interaction-bundle-query-practitioner |
security | Σ | 0..* | Coding | Security Labels applied to this resource Binding: All Security Labels (extensible) |
tag | SΣ | Coding | Tags applied to this resource Slice: Unordered, Open by value:system Binding: (unbound) (example) | |
tag | SΣ | 1..1 | Coding | Tags applied to this resource Binding: SharedSpecificationVersion (required) |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
system | SΣ | 1..1 | uri | Identity of the terminology system Fixed Value: https://fhir.infoway-inforoute.ca/CodeSystem/sharedspecificationversion |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | SΣ | 1..1 | code | Symbol in syntax defined by the system Fixed Value: Shared2.0 |
display | Σ | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: http://tools.ietf.org/html/bcp47 (required) | |
type | SΣ | 1..1 | code | document | message | transaction | transaction-response | batch | batch-response | history | searchset | collection Binding: BundleType (required) Fixed Value: searchset |
total | SΣI | 0..1 | unsignedInt | If search, the total number of matches |
link | SΣ | BackboneElement | Links related to this Bundle Slice: Unordered, Open by value:relation | |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | Σ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml |
url | Σ | 1..1 | uri | Reference details for the link |
link | SΣ | 1..1 | BackboneElement | Links related to this Bundle |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | SΣ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml Fixed Value: self |
url | SΣ | 1..1 | uri | Reference details for the link |
link | SΣ | 0..1 | BackboneElement | Links related to this Bundle |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
relation | SΣ | 1..1 | string | http://www.iana.org/assignments/link-relations/link-relations.xhtml Fixed Value: next |
url | SΣ | 1..1 | uri | Reference details for the link |
entry | SΣI | 1..* | BackboneElement | Entry in the bundle - will have a resource, or information entryIsPractitioner: Match entries must be Bundles declaring profile-practitioner-tpr includeIsOrganization: Include entries must be Bundles declaring profile-organization-tpr outcomeIsOperationOutcome: Outcome entries must be OperationOutcomes |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
link | Σ | 0..* | Unknown reference to #Bundle.link:next Links related to this entry | |
fullUrl | SΣ | 1..1 | uri | Absolute URL for resource (server address, or UUID/OID) |
resource | SΣ | 1..1 | Resource | A resource in the bundle |
search | SΣI | 1..1 | BackboneElement | Search related information |
id | 0..1 | id | xml:id (or equivalent in JSON) | |
extension | 0..* | Extension | Additional Content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
mode | SΣ | 1..1 | code | match | include | outcome - why this is in the result set Binding: SearchEntryMode (required) |
score | Σ | 0..1 | decimal | Search ranking (between 0 and 1) |
signature | Σ | 0..1 | Signature | Digital Signature |
Documentation for this format |
Other representations of profile: Schematron
3.55.3 Terminology Bindings
Terminology Bindings
Path | Name | Conformance | ValueSet |
Bundle.meta.security | All Security Labels | extensible | All Security Labels |
Bundle.meta.tag | SharedSpecificationVersion | required | SharedSpecificationVersion |
Bundle.meta.tag | SharedSpecificationVersion | required | SharedSpecificationVersion |
Bundle.language | ?ext | required | http://tools.ietf.org/html/bcp47 |
Bundle.type | BundleType | required | BundleType |
Bundle.entry.search.mode | SearchEntryMode | required | SearchEntryMode |
Bundle.entry.request.method | HTTPVerb | required | HTTPVerb |
3.55.4 Constraints
Constraints
Id | Path | Details | Requirements |
bdl-2 | Bundle | entry.search only when a search : entry.search.empty() or (type = 'searchset') | |
bdl-1 | Bundle | total only when a search or history : total.empty() or (type = 'searchset') or (type = 'history') | |
bdl-7 | Bundle | FullUrl must be unique in a bundle, or else entries with the same fullUrl must have different meta.versionId : entry.where(fullUrl).select(fullUrl&resource.meta.versionId).isDistinct() | |
bdl-3 | Bundle | entry.request only for some types of bundles : entry.request.empty() or type = 'batch' or type = 'transaction' or type = 'history' | |
bdl-4 | Bundle | entry.response only for some types of bundles : entry.response.empty() or type = 'batch-response' or type = 'transaction-response' | |
bdl-5 | Bundle.entry | must be a resource unless there's a request or response : resource.exists() or request.exists() or response.exists() | |
bdl-6 | Bundle.entry | The fullUrl element must be present when a resource is present, and not present otherwise : fullUrl.empty() xor resource.exists() | |
entryIsPractitioner | Bundle.entry | Match entries must be Bundles declaring profile-practitioner-tpr : search.mode='match' implies resource.meta.where(profile='http://sharedhealth.exchange/fhir/StructureDefinition/profile-practitioner-tpr').exists() | |
includeIsOrganization | Bundle.entry | Include entries must be Bundles declaring profile-organization-tpr : search.mode='include' implies resource.meta.where(profile='http://sharedhealth.exchange/fhir/StructureDefinition/profile-organization-tpr').exists() | |
outcomeIsOperationOutcome | Bundle.entry | Outcome entries must be OperationOutcomes : search.mode='outcome' implies resource.is(OperationOutcome) |