Medical Records Requester API¶
Overview¶
Welcome to the Sharecare Requester API! This API allows you to submit and manage medical record requests on behalf of a requester. This guide covers how to onboard and use the API.
Prerequisites¶
To integrate the Sharecare Requester API into your system, you will need an API key for your Sharecare requester account, which will be passed with each API request to authenticate you. See Getting started
Getting Started¶
- Sign up To get started with the API please email requester-support@sharecare.com with your business name and a breif summary of what you are looking to achieve with the requester API, and our team will guide you through the setup process.
- Read ahead Look at our examples and instructions below to see how to integrate with each of our endpoints.
What you can do with the API¶
Create or Update Requests¶
- Purpose: Create new requests for medical records by calling this endpoint is a new unique reference number. Update existing requests by sending the changed fields with an existing reference number.
- Endpoint:
/medical-records/requester/ - How to Use: Send a PATCH request with a list of requests. The API will decide whether to create new requests or update existing ones based on the provided information.
Search Requests¶
- Purpose: Search for requests based on specific filters. Any one of these fields patient reference, patient firstName, patient lastName and patient dob is mandatory for this endpoint.
- Endpoint:
/medical-records/requester/ - How to Use: Send a POST request with the filters you want to use. The API call supports pagination.
Delete a Request¶
- Purpose: Delete a specific request based on its reference number. Reference number is mandatory for this endpoint.
- Endpoint:
/medical-records/requester/{referenceNumber} - How to Use: Send a DELETE request with the reference number of the request you want to delete.
Get Request Types¶
- Purpose: Retrieve a list of available request type and subtype for your account.
- Endpoint:
/medical-records/requester/requestTypes - How to Use: Send a GET request to get a JSON list of request types.
Key Concepts¶
- Request: Represents a request for medical information. Includes details about the patient, provider, and type of request.
- Response: The reply you get from the API after making a request. Includes the status of the request and any relevant data.
- Request Types: Different reasons for making the request for medical information you can make, such as for legal cases, audits or continuing care.
Search Requests¶
POST /medical-records/requester
- Description: Searches one or more medical record requests.
- Request: POST with a list of request objects criteria to be searched.
- Content Type:
application/json - Response:
- 200 OK: Returns a list of requestes based on search criteria.
- 400 Bad Request: Returns an error if the request is malformed or if there are any validation errors.
API
API Documentation¶
Refer to our API documentation for the most up to date specifications Simply click "Try it out" then "Execute" with the default values to see a live response.
Example¶
Try out the curl as is for a response
curl -L 'https://gateway.stage.sharecare.com/medical-records/requester' \
-H 'X-API-Key: <API_KEY_HERE>' \
-H 'X-API-Version: 1.0.0' \
-H 'accept: application/json'
-H 'Content-Type: application/json' \
-d '{
"page": 1,
"limit": 100,
"sort": {},
"filter": [
{
"patient": {
"firstName": "John",
"type": "",
"reference": "",
"zip": "",
"lastName": "",
"dob": ""
},
"request": {
"type": "Authorization",
"subTyp": "Continuing Care"
}
}
]
}'
Returns the original query along with the results array containing the response data
{
"code": 200,
"message": "Success",
"data": [
{
"page": 1,
"limit": 100,
"sort": {},
"filter": [
{
"patient": {
"type": "",
"reference": "",
"zip": "",
"firstName": "John",
"lastName": "",
"dob": ""
},
"request": {
"type": "Authorization",
"subTyp": "Continuing Care"
}
}
],
"results": [
{
"referenceNumber": "ORDER_REF_NO_1221",
"patient": {
"type": "PATIENT_DETAILS",
"reference": "A1B2C3",
"zip": "12345",
"firstName": "John",
"lastName": "Doe",
"dob": "01/01/1980"
},
"provider": {
"type": "PROVIDER_DETAILS",
"id": "P12345",
"groupName": "Health Group",
"npi": "1234567890",
"firstName": "Jane",
"lastName": "Smith",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Anytown",
"state": "CA",
"zip": "12345",
"phone": "555-123-2221",
"fax": "555-567-2321",
"contact": "jane.smith@example.com"
},
"request": {
"type": "",
"requestType": "Authorization",
"requestSubType": "Continuing Care",
"datesOfService": {
"type": "startEnd",
"start": "01/01/2023",
"end": "01/31/2023"
},
"disclosures": ["abstract", "history_and_physical"]
},
"webhook": {
"sendStatusChange": false,
"url": ""
},
"authorizationUploadUrl": "https://testlink.com",
"status": {
"documentAvailable": false,
"status": "Received",
"updated": "07/10/2024 13:20:57",
"processed": null,
"processedPlatform": null,
"authorizationName": "3bd93e82-515d-44fc-8ce5-84ccfbea3a5d"
}
}
]
}
]
}
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad request\",\"errors\":[{\"code\":0,\"message\":\"Please ensure Patient#1 has valid search parameter.\"}]}",
"errors": [
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad request\",\"errors\":[{\"code\":0,\"message\":\"Please ensure Patient#1 has valid search parameter.\"}]}",
"exception": null
}
]
}
Payload Details¶
Legends: Y: Yes N: No C: Conditional (At least one patient-related field is required to conduct the search.)
| Field Name | Description | Is Required |
|---|---|---|
| page | page no when the search result returns more than 1 page | Y |
| limit | no of records returned in each search | Y |
| sort | <not available> |
N |
| filter | ||
| patient | Minimum one field related to patient is required to perform search | |
| patient.type | Patient type | C |
| patient.reference | Patient reference number | C |
| patient.zip | Patient ZIP code | C |
| patient.firstName | Patient FirstName | C |
| patient.lastName | Patient LastName | C |
| patient.dob | Patient Date of birth | C |
| request | ||
| request.type | Request Type | Y |
| request.subType | Request Sub type | Y |
Create or Update Request of Medical Information (ROI)¶
PATCH /medical-records/requester
-
Description:
- Creates or updates one or more Request of Medical Information (ROI) objects. The HTTP request always takes an array of ROI objects.
- The referenceNumber field is required to determine which specific ROI you are referring to.
- Fields set to null will delete the value, and fields not included in the request body will retain their current values for existing ROIs.
- Additionally, each call will return an authorizationUploadUrl which provides the URL for uploading the authorization PDF.
- This URL is referenced in the Upload section below and must be used appropriately; otherwise, the underlying ROI for information will not be processed.
-
Request: PATCH with a list of request objects.
-
Content Type:
application/json -
Response:
-
200 OK: Returns a list of created or updated requests.
- 400 Bad Request: Returns an error if the request is malformed or if there are any validation errors.
API
API Documentation¶
Refer to our API documentation for the most up to date specifications Simply click "Try it out" then "Execute" with the default values to see a live response.
Example¶
A list of requests to create or update, the API will decide whether to create or update these requests based on whether the id is provided.
Try out the curl as is for a response
curl -X 'PATCH' 'https://gateway.stage.sharecare.com/medical-records/requester' \
-H 'X-API-Key: <API_KEY_HERE>' \
-H 'X-API-Version: 1.0.0' \
-H 'accept: application/json'
-H 'Content-Type: application/json' \
-d '[
{
"referenceNumber": "ORDER_REF_NO_1221",
"patient": {
"type": "PATIENT_DETAILS",
"reference": "A1B2C3",
"zip": "12345",
"firstName": "John",
"lastName": "Doe",
"dob": "1980-01-01"
},
"provider": {
"type": "PROVIDER_DETAILS",
"id": "P12345",
"groupName": "Health Group",
"npi": "1234567890",
"firstName": "Jane",
"lastName": "Smith",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Anytown",
"state": "CA",
"zip": "12345",
"phone": "555-123-2221",
"fax": "555-567-2321",
"contact": "jane.smith@example.com"
},
"request": {
"type": "",
"requestType": "Authorization",
"requestSubType": "Continuing Care",
"datesOfService": {
"type": "startEnd",
"start": "2023-01-01",
"end": "2023-01-31"
},
"disclosures": ["abstract", "history_and_physical"]
},
"webhook": {
"sendStatusChange": false,
"url": ""
}
}
]'
- Success Response (200)
Sample Response
{ "code": 200, "message": "Success", "data": [ { "referenceNumber": "ORDER_REF_NO_1221", "patient": { "type": "PATIENT_DETAILS", "reference": "A1B2C3", "zip": "12345", "firstName": "John", "lastName": "Doe", "dob": "01/01/1980" }, "provider": { "type": "PROVIDER_DETAILS", "id": "P12345", "groupName": "Health Group", "npi": "1234567890", "firstName": "Jane", "lastName": "Smith", "address1": "123 Main St", "address2": "Suite 100", "city": "Anytown", "state": "CA", "zip": "12345", "phone": "555-123-2221", "fax": "555-567-2321", "contact": "jane.smith@example.com" }, "request": { "type": "", "requestType": "Authorization", "requestSubType": "Continuing Care", "datesOfService": { "type": "startEnd", "start": "01/01/2023", "end": "01/31/2023" }, "disclosures": ["abstract", "history_and_physical"] }, "webhook": { "sendStatusChange": false, "url": "" }, "authorizationUploadUrl": "https://testlink.com", "status": { "documentAvailable": false, "status": "Received", "updated": "07/10/2024 13:20:57", "processed": null, "processedPlatform": null, "authorizationName": "3bd93e82-515d-44fc-8ce5-84ccfbea3a5d" } } ] } - 400 Response Body
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad request\",\"errors\":[{\"code\":1,\"message\":\"Please ensure that Patient First name is not null or empty. \\nRequest block 1 of 1.\"}]}",
"errors": [
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad request\",\"errors\":[{\"code\":1,\"message\":\"Please ensure that Patient First name is not null or empty. \\nRequest block 1 of 1.\"}]}",
"exception": null
}
]
}
Payload Details¶
Legends: Y:Yes N:No
| Field Name | Description | Is Required |
|---|---|---|
| referenceNumber | Unique Reference Number for each request. | Y |
| patient | ||
| patient.type | Patient Type | N |
| patient.reference | Patient Reference Number | N |
| patient.zip | Patient Zip Code | N |
| patient.firstName | Patient First Name | Y |
| patient.lastName | Patient Last Name | Y |
| patient.dob | Patient Date of birth in YYYY-MM-DD format. | Y |
| provider | ||
| provider.type | Provider Type | N |
| provider.id | Provider Id | Y |
| provider.groupName | Provider Group Name | N |
| provider.npi | Provider NPI | N |
| provider.firstName | Provider First Name | N |
| provider.lastName | Provider Last Name | N |
| provider.address1 | Provider Address1 | N |
| provider.address2 | Provider Address2 | N |
| provider.city | Provider City | N |
| provider.state | Provider State | N |
| provider.zip | Provider ZIP | N |
| provider.phone | Provider Phone | N |
| provider.fax | Provider Fax | N |
| provider.contact | Provider contact details | N |
| request | ||
| request.type | Send "", if value not available | Y |
| request.requestType | Request Type. This is an important field. Please make sure to send the proper data here. |
Y |
| request.requestSubtype | Request Subtype. This is an important field. Please make sure to send proper data here. |
Y |
| request.dateOfService | Request Date of service | Y |
| request.dateOfService.type | date of service type. By default assign "startEnd" | Y |
| request.dateOfService.start | Start date of service in YYYY-MM-DD format. | Y |
| request.dateOfService.end | End date of service in YYYY-MM-DD format. | Y |
| request.disclosures | List of disclosures.Please refer to the disclosure list at the bottom of the document. | N |
| webhook | ||
| webhook.sendStatusChange | For future usage. | N |
| webhook.url | For future usage, Send "". | Y |
Upload Authorization PDF file.¶
- For every Insert or Update request, the API generates an "authorizationUploadUrl" (Please refer to Response Body of Example Usage --> Create or Update Requests ) to facilitate the uploading of the "Authorization PDF" document.
- Send a PUT HTTP request to the URL, including the Authorization PDF document in binary format.
- The above request uploads the PDF file to cloud storage.
- This "authorizationUploadUrl" has an expiry of 30 mins.
- A new request must be sent if the URL has expired.
- The API will not process the request until the Authorization File is uploaded.
Delete Request¶
DELETE /medical-records/requester/{referenceNumber}
- Description: Deletes a specific medical record request using the reference number.
- Deletion is only permitted before the authorization document is submitted. If the document has already been submitted, you may receive the following error message: 400 Bad Request: Reference Number not found or Request already processed.
-
Parameters:
-
referenceNumber(string): The unique identifier of the request to be deleted. -
Responses:
-
200 OK: Details of the request as response body.
- 400 Bad Request: If the reference number is invalid.
- 400 Bad Request: Reference Number not found Or Request already processed.
API
API Documentation¶
Refer to our API documentation for the most up to date specifications Simply click "Try it out" then "Execute" with the default values to see a live response.
Example¶
Try out the curl as is for a response
curl -X 'DELETE' 'https://gateway.stage.sharecare.com/medical-records/requester/ORDER_REF_NO_1221' \
-H 'X-API-Key: <API_KEY_HERE>' \
-H 'X-API-Version: 1.0.0' \
-H 'accept: application/json'
{
"code": 200,
"message": "Success",
"data": [
{
"referenceNumber": "ORDER_REF_NO_1221",
"patient": {
"type": "PATIENT_DETAILS",
"reference": "A1B2C3",
"zip": "12345",
"firstName": "John",
"lastName": "Doe",
"dob": "01/01/1980"
},
"provider": {
"type": "PROVIDER_DETAILS",
"id": "P12345",
"groupName": "Health Group",
"npi": "1234567890",
"firstName": "Jane",
"lastName": "Smith",
"address1": "123 Main St",
"address2": "Suite 100",
"city": "Anytown",
"state": "CA",
"zip": "12345",
"phone": "555-123-2221",
"fax": "555-567-2321",
"contact": "jane.smith@example.com"
},
"request": {
"type": "",
"requestType": "Authorization",
"requestSubType": "Continuing Care",
"datesOfService": {
"type": "startEnd",
"start": "01/01/2023",
"end": "01/31/2023"
},
"disclosures": ["abstract", "history_and_physical"]
},
"webhook": {
"sendStatusChange": false,
"url": ""
},
"authorizationUploadUrl": "https://testlink.com",
"status": {
"documentAvailable": false,
"status": "Received",
"updated": "07/10/2024 13:20:57",
"processed": null,
"processedPlatform": null,
"authorizationName": "3bd93e82-515d-44fc-8ce5-84ccfbea3a5d"
}
}
]
}
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad Request\",\"errors\":[{\"code\":0,\"message\":\"Reference Number not found Or Request already processed.\"}]}",
"errors": [
{
"code": 400,
"message": "Fail to process request: {\"code\":400,\"message\":\"Bad Request\",\"errors\":[{\"code\":0,\"message\":\"Reference Number not found Or Request already processed.\"}]}",
"exception": null
}
]
}
Get Request Types¶
GET /medical-records/requester/requestTypes
- Description: Retrieves a list of available request types that can be submitted for the logged in user.
-
Responses:
-
200 OK: Returns a list of request types.
- 400 Bad Request: If the request cannot be processed.
API
API Documentation¶
Refer to our API documentation for the most up to date specifications Simply click "Try it out" then "Execute" with the default values to see a live response.
Example¶
Try out the curl as is for a response
curl -X 'GET' 'https://gateway.stage.sharecare.com/medical-records/requester/requestTypes' \
-H 'X-API-Key: <API_KEY_HERE>' \
-H 'X-API-Version: 1.0.0' \
-H 'accept: application/json'
{
"code": 200,
"message": "Success",
"data": [
[
{
"id": "Authorization",
"name": "Authorization",
"requestSubType": [
{
"id": "Continuing Care",
"name": "Continuing Care",
"disabled": null
}
]
}
]
]
}
{
"code": 400,
"message": "Bad Request",
"errors": [
{
"code": 0,
"message": "Missing required 'patient' block of request 2 of 4"
}
]
}
Disclosures List¶
- any_and_all
- immunizations
- lab_reports
- medication_records
- newborn_birth_records
- nurse_notes
- operative_report
- pathology
- pft
- progress_notes
- radiology_imaging_films
- sleep_study
- treatment_plans
- therapy_notes
- transfer_notes
- wound_care
- x_ray_reports
- history_and_physical
- abstract
- billing_records
- commitment_papers
- consultation
- xray_reports
- disclosure_summary
- discharge_instructions
- discharge_summary
- doctor_orders
- echo
- ekc_ecg_tests
- ekg
- er_record
- facesheet
- fetal_heart_monitor_strips
- growth_chart
- consent