Send a file via Redox Data Model API

Last updated: Oct 16, 2023

If you haven’t already, check out our summary and best practices for sending a file to your connection. This article contains instructions for how to send a file with the Redox Data Model API specifically. You can either:

  • embed a file less than 10 MB directly in the Notes, Results, or Media data models; or
  • upload a file to a Redox blob endpoint, then include the URL reference in the Notes, Results, or Media data models. 

Embed a file

Send a file less than 10 MB to your connection with the Notes or Results data model. Which data model you use depends on the context of the file, though. 

  • The Notes data model can send a provider's clinical notes or a general file related to the patient (e.g., a signed consent form or a patient-related JPG file).
  • The Results data model can send a file with a patient's test results or lab-related data. 

Each data model has their own supported fields and requirements. In this how-to, we only highlight the required fields for each, but check out our data model reference docs for full specs.

Embed a file in the Notes data model

  1. Encode the file as a base64 encoded string.
  2. Populate the required document fields to include the encoded file in your request: 
    • In the Note.ContentType field, enter Base64 Encoded (as one of the supported values from the value set).
    • In the Note.FileContents field, insert the base64 encoded string for the file.
    • In the Note.FileName field, enter the name of the file.
    • In the Note.DocumentType field, enter the type of document that should be associated with the file (e.g., consent form, treatment plan).
    • In the Note.DocumentID field, enter the unique identifier for this document.
    • In the Note.Provider.ID field, enter the ID of the provider responsible for the document.
  3. Populate any of the other fields of the Notes request with relevant data. Learn about the available fields in the Notes data model.
    Example: Embed a file in the Notes data model
    json
    1
    { 
    2
       …
    3
       "Note": {
    4
         "ContentType": "Base64 Encoded",
    5
         "FileContents": "XG82ZSC0aHUgd3F5IHlvdSBsaYU=",
    6
    "FileName": "Order Specific Note",
    7
    "DocumentType": "Clinical Note", 
    8
    "DocumentID": "b169267c-10c9-4fe3-91ae-9ckf5703e90l", 
    9
    "Provider": {
    10
    “ID”: "4356789876",  
    11
    12
    }
    13
      …
    14
     }

Embed a file in the Results data model

  1. Encode the file as a base64 encoded string.
  2. Populate the required document fields to include the encoded file in your request: 
    • In the Orders[].Results[].Value field, insert the base64 encoded string for the file.
    • In the Orders[].Results[].ValueType field, enter Encapsulated Data (as one of the supported values from the value set).
    • In the Orders[].Results[].FileType field, enter a valid file type.
  3. Populate any of the other fields of the Results request with relevant data. Learn about the available fields in the Results data model.
    Example: Embed a file in the Results data model
    json
    1
    {
    2
       …
    3
       "Orders": [
    4
         {
    5
           "Results": [
    6
             { 
    7
               "Value": "XG82ZSC0aHUgd3F5IHlvdSBsaYU=",
    8
               "ValueType": "Encapsulated Data",
    9
               "FileType": "PDF",
    10
                …
    11
             }
    12
          ]
    13
         }
    14
       ]
    15
    }

Embed a file in the Media data model

  1. Encode the file as a base64 encoded string.
  2. Populate the required document fields to include the encoded file in your request:
    • In the Media.FileType field, enter a valid file type.
    • In the Media.FileName field, enter the name of the file.
    • In the Media.FileContents field, insert the base64 encoded string for the file. 
    • In the Media.DocumentType field, enter the type of document that should be associated with the file (e.g., consent form, treatment plan).
    • In the Media.DocumentID field, enter the unique identifier for this document.
    • In the Media.Provider.ID field, enter the ID of the provider responsible for the document. 
    • In the Media.Availability field, enter the value that describes the file's availability: Available, Unavailable, Obsolete, Deleted, Cancelled.
  3. Populate any of the other fields of the request with relevant data. Learn about the available fields in the Media data model.
    Example: Embed a file in the Media data model
    json
    1
    {   …
    2
       "Media": {
    3
         "FileType": "PDF",
    4
         "FileName": "Annual visit",
    5
         "FileContents": "XG82ZSC0aHUgd3F5IHlvdSBsaYU=",
    6
    "DocumentType": "Consent form",  
    7
    "DocumentID": "b169267c-10c9-4fe3-91ae-9ckf5703e90l",     
    8
    "DocumentID": "b169267c-10c9-4fe3-91ae-9ckf5703e90l",     
    9
    "Provider": {
    10
    “ID”: "4356789876",  
    11
    12
    }
    13
     "Availability": "Available",
    14
    15
        }
    16
     }

Upload and reference a file

For larger files, you must first upload them to Redox. Then, you can refer to the file in your requests.

  1. Locate the file you want to upload.
  2. Send your file to the Redox upload endpoint: 
    Example: Upload a file to Redox with the Data Model API
    bash
    1
    curl https://blob.redoxengine.com/upload \
    2
      -H "Authorization: Bearer "
    3
    -X POST \
    4
      -F file=@file.pdf
    You must authenticate the API key like you would for a typical Data Model API request. Learn how to authenticate and initiate a request
  3. If successful, you receive a 201 Created status with the URI reference to your file in the body of the response.
  4. Send the uploaded file via the same process for embedding a file. You only need to include the URI from the previous step instead of the base64 encoded file within the request. 
  5. To check if the file uploaded successfully, log in to the Redox dashboard and check the log for the request. The uploaded file displays under the Process tab of the log.