Overview
ServiceRequest is a record of a request for a procedure or diagnostic or other service to be planned, proposed, or performed, as distinguished by the ServiceRequest.intent field value, with or on a patient. The procedure will lead to either a Procedure or DiagnosticReport, which in turn may reference one or more Observations, which summarize the performance of the procedures and associated documentation such as observations, images, findings that are relevant to the treatment/management of the subject
Example Usage Scenarios:
The following are example usage scenarios for the this profile:
Query for a specific procedure or test request such as an electrocardiogram (ECG) order or a referral to a support program.
Query for a specific service offered to a patient such as a referral to a support program.
Query for category of service request (e.g. all cardiology requests)
Each Service Request has next elements:
- a status
- an intent code indicating whether the request is a proposal, plan, or order
- a code defining what is being requested
- a patient
Each Service Request must support:
- a category
- when requested service should happen
- when request was made
- the requester
Profile specific implementation guidance:
- See the SDOH guidance page for more information when exchanging Social Determinants of Health (SDOH) Service Requests.
- The
ServiceRequest.category
binding must support at a minimum the US Core ServiceRequest Category Codes. However, this valueset can be treated as extensible and other category codes can be used instead. - The
ServiceRequest.code
valueset is broad to accommodate a wide variety of use cases and should be constrained to a subset for a particular use case or domain. (for example, LOINC for laboratory orders.)
ServiceRequest response will be provided in JSON (refers to Capability Statement) format as per FHIR standard R4 version.
Must support elements, mandatory and optional search parameters
ServiceRequest must support these elements:
status
intent
Slices for category
category:us-core
code
subject
occurrence[x]
occurrencePeriod
authoredOn
requester
The following search parameters and search parameter combinations SHALL be supported (mandatory):
The syntax used to describe the interactions is described here.
SHALL support searching for all servicerequests for a patient using the patient
search parameter:
GET [base url]/ServiceRequest?patient={Type/}[id]
SHALL support fetching a ServiceRequest using the _id
search parameter:
GET [base url]/ServiceRequest[id]
SHALL support searching using the combination of the patient
and category
search parameters:
GET [base url]/ServiceRequest?patient={Type/}[id]&category={system|}[code]
SHALL support searching using the combination of the patient
and code
search parameters:
- including optional support for OR search on code (e.g.
code={system|}[code],{system|}[code],...
)
GET [base url]/ServiceRequest?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}
SHALL support searching using the combination of the patient
and category
and authored
search parameters:
- including support for these authored comparators:
gt
,lt
,ge
,le
- including optional support for AND search on
authored
(e.g.authored=[date]&authored=[date]]&...
)
GET [base url]/ServiceRequest?patient={Type/}[id]&category={system|}[code]&authored={gt|lt|ge|le}[date]{&authored={gt|lt|ge|le}[date]&...}
The following search parameter combinations SHOULD be supported (optional):
SHOULD support searching using the combination of the patient
and status
search parameters:
- including support for OR search on
status
(e.g.status={system|}[code],{system|}[code],...
)
GET [base url]/ServiceRequest?patient={Type/}[id]&status={system|}[code]{,{system|}[code],...}
SHOULD support searching using the combination of the patient
and code
and authored
search parameters:
- including optional support for OR search on
code
(e.g.code={system|}[code],{system|}[code],...
) - including support for these
authored
comparators:gt
,lt
,ge
,le
- including optional support for AND search on
authored
(e.g.authored=[date]&authored=[date]]&...
)
GET [base url]/ServiceRequest?patient={Type/}[id]&code={system|}[code]{,{system|}[code],...}&authored={gt|lt|ge|le}[date]{&authored={gt|lt|ge|le}[date]&...}
The response to any search operation is always a list of resources in a Bundle or an Operation Outcome.
ServiceRequest by patient's id
Search for all ServiceRequests by patient.
METHOD GET
[base url]/ServiceRequest?patient={Type/}[id]
PARAMS
[base url] - FHIR base url
[id] - Id for the Patient
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
ServiceRequest By id
Get ServiceRequest by ID.
METHOD GET
[base url]/ServiceRequest/{id}
or
[base url]/ServiceRequest?_id={id}
PARAMS
[base url] - FHIR base url
{id} - Id for ServiceRequest resource
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest/c5137fa5-3216-b12a-cbbc-a0c6bef361g7' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
ServiceRequest by patient and category
Get All ServiceRequests by Patient and Category.
METHOD GET
GET [base url]/ServiceRequest?patient={Type/}[id]&category={system|}[code]
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type. Example: Patient/
[id] - Id for the Patient
{system|} - The system for the category, e.g. http://loinc.org
{code} - code in the system, e.g. sdoh
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&category=http://loinc.org|sdoh' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
ServiceRequest By patient and code
Get All ServiceRequests by Patient and Code.
METHOD GET
GET [base url]/ServiceRequest?patient={Type/}[id]&code={system|}[code]
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type. Example: Patient/
[id] - Id for the Patient
{system|} - The system for the ServiceRequest code, e.g. http://snomed.info/sct
{code} - code in the system, e.g. 35637008
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/c5137fa5-3216-b12a-cbbc-a0c6bef361g7&code=http://snomed.info/sct|35637008' \
--header 'Authorization: Bearer fe1cd986-1ac7-4c26-b8b3-d632a48408fd'
ServiceRequest by patient and category and authored
Get all ServiceRequests for the specified patient and category and date of authoring
METHOD GET
GET [base url]/ServiceRequest?patient={Type}/[id]&category={system|}[code]&authored={gt|lt|ge|le}{date}&authored={gt|lt|ge|le}{date}
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type. Example: Patient/
[id] - patient id
{system|} - The system for the category, e.g. http://loinc.org
{code} - code in the system, e.g. sdoh
{authored} - an estimated or actual date, when the ServiceRequest signed
{gt|lt|ge|le} - search modifiers for date parameter. See Search specification for more information.
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&category=http://loinc.org|sdoh&date=ge2019-01-14' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'
ServiceRequest by patient and code and authored
Get all ServiceRequests for the specified patient and ServiceRequest code and date of authoring
METHOD GET
GET [base url]/ServiceRequest?patient={Type}/[id]&code={system|}[code]&authored={gt|lt|ge|le}{date}&authored={gt|lt|ge|le}{date}
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type. Example: Patient/
[id] - patient id
{system|} - The system for the category, e.g. http://snomed.info/sct
{code} - code in the system, e.g. 35637008
{authored} - an estimated or actual date, when the ServiceRequest signed
{gt|lt|ge|le} - search modifiers for date parameter. See Search specification for more information.
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&code=http://snomed.info/sct|35637008&date=ge2019-01-14' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'
ServiceRequest by patient and status
Get all ServiceRequests for the specified patient and status
METHOD GET
GET [base url]/ServiceRequest?patient={Type}/[id]&status={system|}[code]
PARAMS
[base url] - FHIR base url
{Type/} - optional reference type. Example: Patient/
[id] - patient id
{system|} - The system for the code (optional)
{code} - code in the system, e.g. completed
HEADERS
The Authorization token SHALL be obtained during Authentication and Authorization process. Goto Authentication and Authorization for further details.
Header | Type | Required/Optional | Value |
---|---|---|---|
Authorization | string | required | 'Bearer' |
RESPONSES
Code | Description | Comment |
---|---|---|
200 | OK | The request was processed successfully |
400 | Bad request | Invalid request parameters or FHIR operation outcome resource returned |
401 | Unauthorized | This code indicates that the client request has not been completed because it lacks valid authentication credentials for the requested resource |
404 | no Route matched with those values | The request was able to communicate with a given server, but the server could not find what was requested |
500 | Internal Server Error | The server has encountered a situation it doesn't know how to handle |
EXAMPLE:
curl --location --request GET 'https://sandbox.fhir.elationemr.com/fhir/ServiceRequest?patient=Patient/fe1cd986-1ac7-4c26-b8b3-d632a48408fd&status=completed' \
--header 'Authorization: Bearer 1239b275-909e-4754-8f73-1e411fd6769e'