# Search for logs

A <u>**log**</u> is a step-by-step record of what data was exchanged, including the request, operation, and payload details. You can view and search successful, failed, or pending logs in the Redox dashboard from the <u>last 60 days</u>. [Learn more about logs](/basics/data-exchange-with-redox/logs-for-data-exchange).

Search for a specific log or use the log filters to narrow down the list of logs.

## Prerequisites

- Any user can search and view log metadata. However, a user must be assigned to a <u>**support**</u> or an <u>**engineer**</u> role to search and view log payloads or use <u>**Payload Summary Assistant**</u>. [Learn how to manage user roles](/how-to-use-redox/manage-your-redox-setup/manage-user-roles).
- To use <u>**Log Summary Assistant**</u> or <u>**Payload Summary Assistant**</u>, the organization owner must have enabled AI assistants must be enabled in your organization. [Learn how to enable AI features](/how-to-use-redox/enable-redox-ai-assistants-or-mcp-server). 

## Search for logs

1. Log in to the Redox dashboard.
2. From the navigation menu, click the **Logs** page.
3. By default, the logs search bar and filters display, along with any logs for the last 7 days. Use search terms, filters, or a combination of both to search for logs.
   1. For search filters, select **options** from any of these drop-down fields: 
      - Connection
      - Sources / destinations
      - Date range (use start date, end date, or both)
      - Data model
      - Event type (only enabled if the <u>Data model</u> filter is populated)
      - Type
      - Status


![Drop-down filter options at the top of the Logs page allow you to refine the search criteria. ](https://images.ctfassets.net/cl3wt5ehhnlv/163Y0Iq3xXBFdPKVQfwron/118b59f596c5b0eb9d1cdc920b1c4331/Logs_filter_options.png)

*Log filters*




> **Extra search filters**
>
> Depending on the setup of your Redox organization, you may see extra log filters.
>
> - Multi-region organizations have a <u>Region</u> filter with options for your relevant cloud provider region.
> - Organizations with backfill data have a <u>Database</u> filter for searching historical or production logs.


   2. For search terms, [review our searchable fields](https://docs.redoxengine.com/permalink/41K1kYX8Oxizp9gt7fwG3i/#reference-searchable-fields) at the end of this article. Then, enter any of these **values** into the search bar based on the supported searchable fields_:_ 
      - metadata identifiers (This is the only search term option available to users assigned to <u>observer</u> roles.)
      - patient ID or name 


> **Patient name tips**
>
> Patient name must be in either `FirstName LastName` or `LastName` format.
>
> For FHIR logs, you can only search by patient name in these resources: FHIR `Patient` or FHIR `Practitioner`.



> **No fuzzy matching**
>
> Log searches are case-insensitive but use exact terms. In other words, we don’t support fuzzy matching, and we don’t correct typos in a search string. If you type “Jane Gibons” but meant to search for “Jane Gibbons”, Redox strictly searches for and returns results for “Jane Gibons.”


      - provider ID
      - visit number or ID
      - record (i.e., any other ID value specific to a data model)
4. After entering search criteria, the list of search results display on the left side of the page. Each log entry shows the status of the log. [Learn about log statuses](https://docs.redoxengine.com/permalink/790exE7anSFdJdupyjnidt/#log-statuses).
5. Select any of the log results, and click any **log processing stage** to view any details or payloads.  


![A user scrolls through the log processing stages and details. ](https://images.ctfassets.net/cl3wt5ehhnlv/6gTlY5y8P1QKp4g9aCSksP/cde485c7a6bdae9d8733e9ae9eb543d5/Logs-log-details.gif)

*Log details*



> **Operation details in logs**
>
> If a log has used any custom operations, you can view the related operation details when you click the related processing stage. Learn about data operations and: 
>
> - [log details for filters](https://docs.redoxengine.com/permalink/4zsR9aQxb4vJmTK7jPzWj2/#log-processing-and-filters)
> - [log details for translation sets](https://docs.redoxengine.com/permalink/790exE7anSFdJdupyjnidt/#data-operations)
> - [log details for config modifiers](https://docs.redoxengine.com/permalink/790exE7anSFdJdupyjnidt/#config-modifier-details)


6. (Optional) If AI assistants are enabled in your organization: 
   1. Use <u>Log Summary Assistant</u>: Click the **Summarize** button above the log details to see a quick summary of the log purpose, processing flow, and outcome. 


![Example of a log summary.](https://images.ctfassets.net/cl3wt5ehhnlv/4YKIJNba6I1Zi86mJYUyy/4b1919ce386a730d2821316d56fe709e/log-summary-example.gif)

*Example of a log summary *


   2. Use <u>Payload Summary Assistant</u>: Click the **Summarize** button above the payload to see a quick summary of the payload contents at this point in log processing. This is helpful if you want to see if certain goals, interventions, outcomes, patient info, or provider info is available in the payload.


![Example of a payload summary](https://images.ctfassets.net/cl3wt5ehhnlv/7rBruyORDLibZkiY0o4Cdm/5f74874f744ed852291395be480231a1/logs-payload-summary-assistant-example.gif)

*Example of a payload summary*


7. If you want to share a log with a team member, click the **copy link** icon next to the log ID. 


![The copy icon appears to the right of the log ID.](https://images.ctfassets.net/cl3wt5ehhnlv/7zABFBXLPWDCg7QFVlbJr1/44721faa83cce3965ad3e69378d2a605/Logs-copy-id.png)

*Share a log*



> **Platform API endpoints**
>
> This article describes how to search for logs in the <u>**Redox dashboard**</u>. To search for logs via <u>**API**</u>, use these <u>**Redox Platform API**</u> endpoints instead:
>
> - [Search metadata](https://docs.redoxengine.com/permalink/308acd28-f5b7-56ad-a79e-a25e0d098f35-search-metadata)
> - [Search payloads](https://docs.redoxengine.com/permalink/38152340-b2fb-54af-9df6-5d6628a95c7a-search-payloads)
>
> While you can search log metadata or payloads via API, you won’t receive log payloads in the responses. You can only review log payload contents in the Redox dashboard.

## Reference: Searchable fields

We support searching for terms in specific fields for a given Redox data model or Redox FHIR resource / notification. That means if you try to search for a keyword that would exist in a different field than one listed below, we won’t return any matching logs.

### Redox data models

Review searchable fields by data model type. 

<details>
<summary>Claims</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Batch[*].Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Batch[*].Patient.Demographics.FirstName` `Batch[*].Patient.Demographics.LastName` |
| Provider | `Claims[*].Providers[*].ID` `BillingProvider.ID` `Batch[*].Claims[*].Providers[*].ID` `Batch[*].BillingProvider.ID` |
| Record | `Transaction.ID` `Subscriber.ID` `Claims[*].ID` `Claims[*].ReferenceNumbers[*].ID` `Batch[*].Transaction.ID` `Batch[*].Subscriber.ID` `Batch[*].Claims[*].ID` `Batch[*].Claims[*].ReferenceNumbers[*].ID` |
| Visit | `Claims[*].Visit.Number` `Batch[*].Claims[*].Visit.VisitNumber` `Claims[*].Visit.Location.Facility` `Claims[*].Visit.Location.Department` |

</details>

<details>
<summary>Clinical Decisions</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Provider | `OrderingProvider.ID` `AuthorizingProvider.ID` |
| Record | `UnsignedMedicationOrders[*].Identifiers[*].ID` `UnsignedProcedureOrders[*].Identifiers[*].ID` |

</details>

<details>
<summary>Clinical Summary</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Header.Patient.Identifiers[*].ID` `Header.Patient.Demographics.FirstName` `Header.Patient.Demographics.LastName` |
| Provider | `Header.Document.Author.ID` `Header.PCP.ID` `Documents[*].Author.ID` |
| Record | `Header.Document.ID` `Documents[*].ID` `Document.ID` |
| Visit | `Header.Document.Visit.VisitNumber` `Header.Document.Visit.Location.Facility` `Header.Document.Visit.Location.Department` `Visit.VisitNumber` `Documents[*].Visit.ID` |

</details>

<details>
<summary>Device</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Record | `Device.ID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` |

</details>

<details>
<summary>Financial</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.ReferringProvider.ID` `Visit.ConsultingProvider.ID` `Visit.Procedures[*].Performers[*].ID` `Transactions[*].Performers[*].ID` `Transactions[*].OrderingProviders[*].ID` `Procedures[*].Performers[*].ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` `Transactions[*].Performers[*].FirstName` `Transactions[*].Performers[*].LastName` |
| Record | `Transactions[*].ID` `Transactions[*].Department.Code` `Transactions[*].OrderID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Flowsheet</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Observations[*].Observer.ID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Inventory</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Items[*].OrderingProvider.ID` |
| Record | `Items[*].Identifiers[*].ID` |
| Visit | `Visit.VisitNumber` |

</details>

<details>
<summary>Media</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Media[*].Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Media.Provider.ID` `Media.Authenticator.ID` `Media.Provider.FirstName` `Media.Provider.LastName` |
| Record | `DocumentIDs[*]` `Media.DocumentID` `Media.OriginalDocumentID` `Media.Notifications[*].ID` `Media[*].DocumentID` |
| Visit | `Visit.VisitNumber` `VisitNumbers[*]` `Media[*].Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Medications</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.ReferringProvider.ID` `Order.Provider.ID` `Order.Provider.NPI` `Order.EnteredBy.ID` `Order.VerifiedBy.ID` `Administrations[*].AdministeringProvider.NPI` `Administrations[*].AdministeringProvider.ID` `Administrations[*].OrderedBy.ID` `Administrations[*].VerifiedBy.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` `Order.Provider.FirstName` `Order.Provider.LastName` |
| Record | `Order.ID` `Administrations[*].Medication.Order.ID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` |

</details>

<details>
<summary>Notes</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Notes[*].Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Note.Provider.ID` `Note.Authenticator.ID` `Note.Provider.FirstName` `Note.Provider.LastName` |
| Record | `DocumentIDs[*]` `Orders[*].ID` `Note.DocumentID` `Note.OriginalDocumentID` `Note.Notifications[*].ID` `Notes[*].DocumentID` |
| Visit | `Visit.VisitNumber` `VistNumbers[*]` `Notes[*].Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Order</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Orders[*].Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Order.Provider.ID` `Order.Provider.NPI` `Orders[*].Provider.NPI` `Orders[*].Provider.ID` `Visit.AttendingProvider.ID` `Visit.ReferringProvider.ID` `Visit.ConsultingProvider.ID` `Order.Provider.FirstName` `Order.Provider.LastName` `Orders[*].Provider.FirstName` `Orders[*].Provider.LastName` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` |
| Record | `Order.ID` `Order.Procedure.Code` `Order.ApplicationOrderID` `Orders[*].ID` `Orders[*].ApplicationOrderID` `Orders[*].Procedure.Code` `OrderIDs[*]` `Order.ClinicalInfo[*].Value` `Orders.ClinicalInfo[*].Value` |
| Visit | `Visit.VisitNumber` `VistNumbers[*]` `Orders[*].Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Organization</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Record | `Organizations[*].Identifiers[*].ID` `Organizations[*].DestinationID` `Identifier.ID` |

</details>

<details>
<summary>Patient Admin</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Patient.PCP.NPI` `Patient.PCP.ID` `Visit.AdmittingProvider.ID` `Visit.AttendingProvider.ID` `Visit.ReferringProvider.ID` `Visit.ConsultingProvider.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` |
| Visit | `Patients[*].Visits[*].VisitNumber` `Patients[*].Visits[*].Location.Facility` `Patients[*].Visits[*].Location.Department` `Visit.VisitNumber` `VisitNumbers[*]` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Patient Education</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.ReferringProvider.ID` `Visit.ConsultingProvider.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` |
| Record | `Education[*].InstanceID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Patient Search</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Patient.PCP.NPI` `Patient.PCP.ID` |
| Record | `Patients[*].Organization.Identifiers[*].ID` |

</details>

<details>
<summary>Provider</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Provider | `Providers[*].Identifiers[*].ID` `Provider.Identifiers[*].ID` `Providers[*].Demographics.FirstName` `Providers[*].Demographics.LastName` `Provider.Demographics.FirstName` `Provider.Demographics.LastName` |

</details>

<details>
<summary>Referral</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Referrals[*].Providers[*].ID` `Referrals[*].Providers[*].FirstName` `Referrals[*].Providers[*].LastName` `Referral.Providers[*].ID` `Referral.Providers[*].FirstName` `Referral.Providers[*].LastName` |
| Record | `Referral.ID` `Referral.Authorization.Number` `Referrals[*].ID` `Referrals[*].Authorization.Number` |
| Visit | `Visit.VisitNumber` `Referral.Visit.VisitNumber` `Referrals[*].Visit.VisitNumber` |

</details>

<details>
<summary>Research</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Study.PrincipalInvestigator` `Study.Sponsor.ID` `Study.Coordinators[*].ID` `Enrollment.Coordinators[*].ID` |
| Record | `Study.Identifiers[*].ID` |

</details>

<details>
<summary>Results</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patients[*].Identifiers[*].ID` `Orders[*].Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` `Visit.ReferringProvider.ID` `Orders[*].Provider.ID` `Orders[*].Provider.NPI` `Orders[*].Results[*].PrimaryResultsInterpreter.ID` `Orders[*].Results[*].PrimaryResultsInterpreter.NPI` `Orders[*].Results[*].Producer.ID` `Orders[*].Results[*].Performer.ID` `Orders[*].ResultCopyProviders[*].ID` `Orders[*].Provider.FirstName` `Orders[*].Provider.LastName` |
| Record | `Orders[*].ID` `OrderIDs[*]` `Procedures[*].Code` `Orders[*].Procedure.Code` |
| Visit | `Visit.VisitNumber` `Orders[*].Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` |

</details>

<details>
<summary>SSO</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `NPI` `UserID` |
| Record | `Order.ID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` |

</details>

<details>
<summary>Scheduling</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Visit.Patients[*].Identifiers[*].ID` `Visits[*].Patient.Identifiers[*].ID` `Visits[*].Patient.Demographics.FirstName` `Visits[*].Patient.Demographics.LastName` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `Patients[*].Demographics.FirstName` `Patients[*].Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` `Visit.ReferringProvider.ID` `Visit.ConsultingProvider.ID` `Visit.VisitProvider.ID` `Visit.VisitProvider.FirstName` `Visit.VisitProvider.LastName` `Visit.AttendingProviders[*].ID` `Visit.AttendingProviders[*].FirstName` `Visit.AttendingProviders[*].LastName` `Visits[*].AttendingProvider.ID` `Visits[*].AttendingProvider.FirstName` `Visits[*].AttendingProvider.LastName` `Visits[*].ConsultingProvider.ID` `Visits[*].ReferringProvider.ID` `Visits[*].VisitProvider.ID` `Visits[*].VisitProvider.FirstName` `Visits[*].VisitProvider.LastName` `Slots[*].Provider.ID` `AvailableSlots[*].Provider.ID` |
| Record | `Slots[*].ID` `AvailableSlots[*].ID` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.Locations[*].Facility` `Visit.Locations[*].Department` `Visits[*].VisitNumber` `Visits[*].Location.Facility` `Visits[*].Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Surgical Scheduling</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` |
| Provider | `Visit.AttendingProvider.ID` `Visit.AttendingProvider.FirstName` `Visit.AttendingProvider.LastName` `SurgeryStaff[*].ID` |
| Record | `Procedures[*].Code` `SurgicalCase.Number` |
| Visit | `Visit.VisitNumber` `Visit.Location.Facility` `Visit.Location.Department` `Visit.AccountNumber` |

</details>

<details>
<summary>Vaccination</summary>

| **Category** | **Searchable fields** |
| --- | --- |
| Patient | `Patient.Identifiers[*].ID` `PotentialMatches[*].Identifiers[*].ID` `Patient.Demographics.FirstName` `Patient.Demographics.LastName` `PotentialMatches[*].Demographics.FirstName` `PotentialMatches[*].Demographics.LastName` |
| Provider | `Patient.PCP.NPI` `Patient.PCP.ID` `Vaccinations[*].Provider.ID` `Vaccinations[*].Order.Provider.ID` `Vaccinations[*].Order.Provider.NPI` `PotentialMatches[*].PCP.NPI` `PotentialMatches[*].PCP.ID` |
| Record | `Vaccinations[*].Order.ID` |
| Visit | `Visit.VisitNumber` `Visit.AccountNumber` |

</details>

### Redox FHIR resources or notifications

Review the list of supported searchable fields by FHIR resource type. Keep in mind that only some FHIR interactions or operations are searchable. [Learn about FHIR interactions and operations](https://docs.redoxengine.com/permalink/23Q1Oku3NdxxvwYnQGJVrg/#interaction-v-operation).

<details>
<summary>Appointment</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` \_`search` | `RESPONSE` | `identifier[].value` |
| `$appointment-*` | `REQUEST` | `identifier[].value` |
| All `Scheduling Appointment` notifications | `REQUEST` | `identifier[].value` |

</details>

<details>
<summary>Claim</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `$submit-*` `$status` `$attach` `$inquiry` `$submit` | `REQUEST` | `identifier[].value` |

</details>

<details>
<summary>ClaimResponse</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `$payment` `$respond` | `REQUEST` | `request.identifier[].value` |
| `$status-response` | `REQUEST` | `identifier[].value` |

</details>

<details>
<summary>Composition</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `$convert` | `REQUEST` | `identifier.value` |

</details>

<details>
<summary>Device</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` |

</details>

<details>
<summary>DeviceRequest</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` `codeCodeableConcept.coding[].code` |

</details>

<details>
<summary>DiagnosticReport</summary>

> **Only index the id value**
>
> For all of these fields, we only index the patient `id` value. For example, for `Patient``/``123`, you can only search for the `123` value. 

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` | `RESPONSE` | `identifier[].value` `code.coding[].code` `subject.reference` |
| `_search` | `REQUEST` | `patient[*]` |
| `_search` | `RESPONSE` | `entry[?(@.resource.resourceType==` `"DiagnosticReport")].resource.subject.reference` `entry[?(@.resource.resourceType==` `"Patient")].resource.id` `entry[?(@.resource.resourceType==` `"Patient")].resource.identifier[*].value` `entry[?(@.resource.resourceType==` `"DiagnosticReport")].resource.subject.identifier.value` |
| `$diagnosticreport-*` | `REQUEST` | `identifier[].value` `code.coding[].code` |
| All `Document` notifications | `REQUEST` | All fields listed above |

</details>

<details>
<summary>DocumentReference</summary>

> **Only index the id value**
>
> For all of these fields, we only index the patient `id` value. For example, for `Patient``/``123`, you can only search for the `123` value. 

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` | `RESPONSE` | `masterIdentifier.value` `subject.reference` |
| `_search` | `REQUEST` | `patient[*]` |
| `_search` | `RESPONSE` | `masterIdentifier.value` `entry[?(@.resource.resourceType==` `"DocumentReference")].resource.subject.reference` `entry[?(@.resource.resourceType==` `"Patient")].resource.id` `entry[?(@.resource.resourceType==` `"Patient")].resource.identifier[*].value` `entry[?(@.resource.resourceType==` `"DocumentReference")].resource.subject.identifier.value` |
| `$documentreference-*` | `REQUEST` | `masterIdentifier.value` |

</details>

<details>
<summary>Encounter</summary>

> **Only index the id value**
>
> For all of these fields, we only index the patient `id` value. For example, for `Patient``/``123`, you can only search for the `123` value. 

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` | `RESPONSE` | `identifiers[].value` `subject.reference` |
| `_search` | `REQUEST` | `patient[*]` |
| `_search` | `RESPONSE` | `identifiers[].value` `entry[?(@.resource.resourceType==` `"Encounter")].resource.subject.reference` `entry[?(@.resource.resourceType==` `"Patient")].resource.id` `entry[?(@.resource.resourceType==` `"Patient")].resource.identifier[*].value` `entry[?(@.resource.resourceType==` `"Encounter")].resource.subject.identifier.value` |
| `$encounter-*` | `REQUEST` | `identifiers[].value` |
| All `PatientAdmin` notifications | `REQUEST` | All fields listed above |

</details>

<details>
<summary>ImageStudy</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` `procedureCode[].coding[].code` |

</details>

<details>
<summary>Location</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` | `RESPONSE` | `type.coding[].code` `name` |
| All `PatientAdmin` notifications | `REQUEST` | `type.coding[].code` `name` |

</details>

<details>
<summary>MedicationAdministration</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` |

</details>

<details>
<summary>MedicationRequest</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` |

</details>

<details>
<summary>Observation</summary>

> **Only index the id value**
>
> For all of these fields, we only index the patient `id` value. For example, for `Patient``/``123`, you can only search for the `123` value. 

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` | `RESPONSE` | `subject.reference` |
| `_search` | `REQUEST` | `patient[*]` |
| `_search` | `RESPONSE` | `entry[?(@.resource.resourceType==` `"Observation")].resource.subject.reference` `entry[?(@.resource.resourceType==` `"Patient")].resource.id` `entry[?(@.resource.resourceType==` `"Patient")].resource.identifier[*].value` `entry[?(@.resource.resourceType==` `"Observation")].resource.subject.identifier.value` |

</details>

<details>
<summary>Organization</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier[].value` |
| `create` `update` | `REQUEST` | `identifier[].value` |

</details>

<details>
<summary>Patient</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifiers[].value` `name[].given` `name[].family` |
| `$patient-*` | `REQUEST` | `identifiers[].value` `name[].given` `name[].family` |
| `$match` | `RESPONSE` | `identifiers[].value` `name[].given` `name[].family` |
| All `PatientAdmin` notifications |  | All fields listed above |

</details>

<details>
<summary>Practitioner</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifiers[].value` `name[].given` `name[].family` |
| All `PatientAdmin` notifications | `REQUEST` | All fields listed above |

 

</details>

<details>
<summary>Procedure</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifier.value` `code.coding[].code` |

</details>

<details>
<summary>ServiceRequest</summary>

| **FHIR** | **Log type** | **Searchable fields** |
| --- | --- | --- |
| `read` `_search` | `RESPONSE` | `identifiers[].value` `code.coding[].code` |
| All `Order` \> `Service Request` notifications | `REQUEST` | `identifiers[].value` `code.coding[].code` |

</details>
