{
    "swagger":"2.0",
    "info":{
        "version":"2026.05.18",
        "title":"FHIR R4 APIs with Bulk Data Access",
        "description":"These HL7 FHIR R4 APIs with Bulk Data Access allow a registered user to access the EHR data in Oracle Health AI Application Suite for which they are authorized.",
        "x-summary":"These HL7 FHIR R4 APIs with Bulk Data Access allow a registered user to access the EHR data in Oracle Health AI Application Suite for which they are authorized."
    },
    "x-anchors":{
        "x-headers":{
            "opc-request-id":{
                "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                "type":"string"
            },
            "X-Progress":{
                "description":"Indicates the status of the export. Possible values are \n<code>in-progress</code> and <code>completed</code>.\n",
                "type":"string"
            },
            "Retry-After":{
                "description":"A number representing the number of seconds the \nclient should wait before polling this endpoint again.\n",
                "type":"integer"
            }
        }
    },
    "paths":{
        "/Group/{Group_ID}/$export":{
            "get":{
                "tags":[
                    "Bulk Export"
                ],
                "summary":"Kick off a bulk export request for a group of patients",
                "description":"<p><b>Note:</b> The FHIR API endpoints described below are currently pending production deployment for electronic health record (EHR) environments. Developers are welcome and encouraged to develop against the specifications in anticipation of production availability, which will be announced at a later date.</p>\n\n<p>The operation is defined at:</p>\n<pre><code>GET https://&lt;Service Root URL&gt;/r4/OperationDefinition/group-export?_format=json</code></pre>\n\n<p><b>Note:</b>\n<ul>\n  <li>Bulk data export requests do not currently recognize the Accept-Language header; <code>en-US</code> is used instead.</li>\n  <li>The authorization token must contain system read scopes for all resources requested in the <code>_type</code> parameter.</li>\n  <li>The following experimental parameters are not supported: <code>_typeFilter</code>, <code>_elements</code>, <code>includeAssociatedData</code>, and <code>patient</code>.</li>\n</ul></p>\n\n<p><b>Provenance Behavior</b>\n<ul>\n  <li>Provenances for the Location, Organization, and Practitioner resources cannot be exported.</li>\n  <li>When the <code>_type</code> parameter is not provided and the authorization token includes the Provenance read scope, all relevant Provenance resources associated with each of the non-Provenance resources are exported by default.</li>\n  <li>When the <code>_type</code> parameter is provided with specific resources and includes Provenance, all relevant Provenance resources associated with each of the non-Provenance resources are exported by default.</li>\n</ul></p>\n",
                "operationId":"GroupExport",
                "produces":[
                    "application/fhir+json"
                ],
                "parameters":[
                    {
                        "$ref":"#/parameters/AcceptHeader"
                    },
                    {
                        "$ref":"#/parameters/AuthorizationHeader"
                    },
                    {
                        "$ref":"#/parameters/PreferHeader"
                    },
                    {
                        "name":"Group_ID",
                        "in":"path",
                        "description":"The logical resource ID.\n",
                        "required":true,
                        "type":"string"
                    },
                    {
                        "name":"_type",
                        "type":"string",
                        "in":"query",
                        "description":"A string of comma-delimited FHIR resource types. \n<ul>\n  <li>The following values are valid:</li>\n  <ul>\n    <li><code>AllergyIntolerance</code></li>\n    <li><code>CarePlan</code></li>\n    <li><code>CareTeam</code></li>\n    <li><code>Condition</code></li>\n    <li><code>Coverage</code></li>\n    <li><code>Device</code></li>\n    <li><code>DiagnosticReport</code></li>\n    <li><code>DocumentReference</code></li>\n    <li><code>Encounter</code></li>\n    <li><code>Goal</code></li>\n    <li><code>Immunization</code></li> \n    <li><code>Location</code></li>\n    <li><code>MedicationDispense</code></li>\n    <li><code>MedicationRequest</code></li>\n    <li><code>Patient</code></li>\n    <li><code>Procedure</code></li>\n    <li><code>Observation</code></li>\n    <li><code>Organization</code></li>\n    <li><code>Practitioner</code></li>\n    <li><code>Provenance</code></li>\n    <li><code>RelatedPerson</code></li>\n    <li><code>ServiceRequest</code></li>\n    <li><code>Specimen</code></li>\n  </ul>\n  <li>When the <code>_type</code> parameter contains a reference resource (<code>Location</code>, <code>Organization</code>, <code>Practitioner</code>, <code>RelatedPerson</code>, or <code>Specimen</code>) or an associated resource (<code>Provenance</code>), at least one of the following resources must also be provided: \n  <ul>\n    <li><code>AllergyIntolerance</code></li>\n    <li><code>CarePlan</code></li>\n    <li><code>CareTeam</code></li>\n    <li><code>Condition</code></li>\n    <li><code>Coverage</code></li>\n    <li><code>Device</code></li>\n    <li><code>DiagnosticReport</code></li>\n    <li><code>DocumentReference</code></li>\n    <li><code>Encounter</code></li>\n    <li><code>Goal</code></li>\n    <li><code>Immunization</code></li>\n    <li><code>MedicationDispense</code></li>\n    <li><code>MedicationRequest</code></li>\n    <li><code>Observation</code></li>\n    <li><code>Patient</code></li>\n    <li><code>Procedure</code></li>\n    <li><code>ServiceRequest</code></li>\n  </ul>\n  <li>When the <code>_type</code> parameter is not provided, the resources to be exported are determined by the scopes provided in the authorization token.</li>\n</ul>\nExample: <code>_type=Patient,Encounter,Location</code>\n"
                    },
                    {
                        "name":"_since",
                        "type":"string",
                        "in":"query",
                        "description":"Resources updated after this time are included in the response.<br>\nExample: <code>2021-03-18T19:19:42.000Z</code>\n"
                    },
                    {
                        "name":"_outputFormat",
                        "type":"string",
                        "in":"query",
                        "description":"The format for the requested bulk data files to be generated. Valid parameters are <code>application/fhir+ndjson</code>, <code>application/ndjson</code>, and <code>ndjson</code>. Defaults to <code>application/fhir+ndjson</code> when not provided.<br>\nExample: <code>_outputFormat=application/ndjson</code>\n"
                    }
                ],
                "responses":{
                    "default":{
                        "$ref":"#/responses/GroupExport"
                    }
                },
                "x-internal-id":"Group-{Group_ID}-$export-get",
                "x-filename-id":"group-group_id-export-get"
            }
        },
        "/bulk-export/jobs/{Job_ID}":{
            "get":{
                "tags":[
                    "Bulk Export"
                ],
                "summary":"Get the status of the export job",
                "description":"<p><b>Note:</b> The FHIR API endpoints described below are currently pending production deployment for electronic health record (EHR) environments. Developers are welcome and encouraged to develop against the specifications in anticipation of production availability, which will be announced at a later date.</p>\n\n<p>Use the URL returned in the Content-Location header from the kick-off request to retrieve the status of a bulk data export. See the example response for the group export operation.</p>\n<p><b>Note:</b>\n<ul>\n  <li>Follow an exponential backoff approach when polling for the status as outlined in the <a href=\"https://hl7.org/fhir/uv/bulkdata/STU1.0.1/export/index.html#bulk-data-status-request\">bulk data export specification</a>.\n  </li>\n</ul></p>\n",
                "operationId":"getBulkExport",
                "produces":[
                    "application/fhir+json"
                ],
                "parameters":[
                    {
                        "$ref":"#/parameters/AcceptHeader"
                    },
                    {
                        "$ref":"#/parameters/AuthorizationHeader"
                    },
                    {
                        "name":"Job_ID",
                        "in":"path",
                        "description":"The logical resource ID.\n",
                        "required":true,
                        "type":"string"
                    }
                ],
                "responses":{
                    "default":{
                        "$ref":"#/responses/bulkExportInProgress"
                    },
                    "x-complete":{
                        "$ref":"#/responses/bulkExportComplete"
                    }
                },
                "x-internal-id":"bulk-export-jobs-{Job_ID}-get",
                "x-filename-id":"bulk-export-jobs-job_id-get"
            },
            "delete":{
                "tags":[
                    "Bulk Export"
                ],
                "summary":"Delete a bulk data export job",
                "description":"<p><b>Note:</b> The FHIR API endpoints described below are currently pending production deployment for electronic health record (EHR) environments. Developers are welcome and encouraged to develop against the specifications in anticipation of production availability, which will be announced at a later date.</p>\n\n<p>Use the URL returned in the Content-Location header from the kick-off request to delete a bulk data export job (whether the status is in-progress or complete) and any associated files. See the example response for the group export operation.</p>\n",
                "operationId":"deleteBulkExport",
                "produces":[
                    "application/fhir+json"
                ],
                "parameters":[
                    {
                        "$ref":"#/parameters/AcceptHeader"
                    },
                    {
                        "$ref":"#/parameters/AuthorizationHeader"
                    },
                    {
                        "name":"Job_ID",
                        "in":"path",
                        "description":"The logical resource ID.\n",
                        "required":true,
                        "type":"string"
                    }
                ],
                "responses":{
                    "default":{
                        "$ref":"#/responses/bulkExportDelete"
                    }
                },
                "x-internal-id":"bulk-export-jobs-{Job_ID}-delete",
                "x-filename-id":"bulk-export-jobs-job_id-delete"
            }
        },
        "/bulk-export/files/{File_ID}":{
            "get":{
                "tags":[
                    "Bulk Export"
                ],
                "summary":"Get file URLs to download the exported resources",
                "description":"<p><b>Note:</b> The FHIR API endpoints described below are currently pending production deployment for electronic health record (EHR) environments. Developers are welcome and encouraged to develop against the specifications in anticipation of production availability, which will be announced at a later date.</p>\n\n<p>Once an export is complete, the status request returns file URLs that you can use to download the exported resources. See the x-complete example response for the bulk export operation.</p>\n\n<pre><code>GET &lt;File URL from status response&gt;</code></pre>\n\n<p><b>Note:</b>\n<ul>\n  <li>An exported ndjson file contains only a single resource type and the same resource type can have multiple files.</li>\n  <li>Files expire after 30 days.</li>\n</ul></p>\n\n<p><b>Retrieval of Attachments</b>\n<ul>\n  <li><a href=\"https://docs.oracle.com/en/industries/health/health-ai-application-suite/airap/api-binary.html\">Binary</a> resources are not returned by bulk data operations.</li>\n  <li>Attachment references must be retrieved separately using the <a href=\"https://docs.oracle.com/en/industries/health/health-ai-application-suite/airap/api-binary.html\">Binary</a> resource URL from the DocumentReference.content.attachment and DiagnosticReport.presentedForm fields from the export files.</li>\n</ul></p>\n",
                "operationId":"fileExport",
                "produces":[
                    "application/fhir+ndjson"
                ],
                "parameters":[
                    {
                        "$ref":"#/parameters/AcceptHeader"
                    },
                    {
                        "$ref":"#/parameters/AuthorizationHeader"
                    },
                    {
                        "name":"File_ID",
                        "in":"path",
                        "description":"The logical resource ID.\n",
                        "required":true,
                        "type":"string"
                    }
                ],
                "responses":{
                    "default":{
                        "$ref":"#/responses/bulkExportFileRetrieval"
                    }
                },
                "x-internal-id":"bulk-export-files-{File_ID}-get",
                "x-filename-id":"bulk-export-files-file_id-get"
            }
        }
    },
    "parameters":{
        "AcceptHeader":{
            "name":"Accept",
            "in":"header",
            "type":"string",
            "description":"<p>The media type to be requested. Refer to what the resource's operation\nproduces for what is supported.</p>\n<p>Example: <code>application/fhir+json</code></p>\n",
            "required":true
        },
        "AuthorizationHeader":{
            "name":"Authorization",
            "in":"header",
            "description":"Contains the credentials to authenticate a consumer to the service. This should be the OAuth2 Bearer Token.\n",
            "required":true,
            "type":"string"
        },
        "PreferHeader":{
            "name":"Prefer",
            "in":"header",
            "type":"string",
            "required":true,
            "description":"Specifies whether the response is immediate or asynchronous. <code>respond-async</code> is supported. A client must provide this header.\n"
        },
        "ContentTypeHeader":{
            "name":"Content-Type",
            "in":"header",
            "type":"string",
            "required":true,
            "description":"Specifies the content type of the request entity body. Accepted values are <code>application/fhir+json</code>, <code>application/json+fhir</code>, and <code>application/json</code>.\n"
        }
    },
    "responses":{
        "GroupExport":{
            "description":"<b>Example Request:</b>\n  <pre><code>GET https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Group/11ec-d16a-c763b73e-98e8-a31715e6a2bf/$export</code></pre>\n\n<b>Example Response:</b>\n<pre><code>Status: 202 Accepted\nContent-Location: https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/jobs/&lt;Job_ID&gt;</code></pre>\n",
            "headers":{
                "Content-Location":{
                    "description":"Indicates the url to access the status of the export request.\n",
                    "type":"string"
                },
                "opc-request-id":{
                    "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                    "type":"string"
                }
            }
        },
        "bulkExportInProgress":{
            "description":"<b>Example Request:</b>\n  <pre><code>GET https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/jobs/&lt;Job_ID&gt;</code></pre>\n\n<b>Example Response:</b>\n<pre><code>Status: 202 Accepted\nX-Progress: in-progress\nRetry-After: 600</code></pre>\n",
            "headers":{
                "opc-request-id":{
                    "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                    "type":"string"
                },
                "X-Progress":{
                    "description":"Indicates the status of the export. Possible values are \n<code>in-progress</code> and <code>completed</code>.\n",
                    "type":"string"
                },
                "Retry-After":{
                    "description":"A number representing the number of seconds the \nclient should wait before polling this endpoint again.\n",
                    "type":"integer"
                }
            }
        },
        "bulkExportComplete":{
            "description":"<b>Example Request:</b>\n  <pre><code>GET https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/jobs/&lt;Job_ID&gt;</code></pre>\n\n<b>Example Response:</b>\n<pre><code>Status: 200 OK\nExpires: Mon, 22 Jul 2025 23:59:59 GMT\nContent-Type: application/json</code></pre>\n<pre><code>{\n  \"transactionTime\": \"2022-01-04T17:42:25.000Z\",\n  \"request\": \"https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/Group/252a42c0-5844-11ec-bf63-0242ac130002/$export?_type=Patient,Observation\",\n  \"requiresAccessToken\": true,\n  \"output\": [\n    {\n      \"type\": \"Patient\",\n      \"url\": \"https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/files/96295b8c-584e-11ec-bf63-0242ac130002\"\n    },\n    {\n      \"type\": \"Patient\",\n      \"url\": \"https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/files/96295b8c-584e-11ec-bf63-0242ac130003\"\n    },\n    {\n      \"type\": \"Observation\",\n      \"url\": \"https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/files/96295b8c-584e-11ec-bf63-0242ac130004\"\n    }\n  ],\n  \"error\": [\n    {\n      \"type\": \"OperationOutcome\",\n      \"url\": \"https://&lt;Service Root URL&gt;/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/files/96295b8c-584e-11ec-bf63-0242ac130005\"\n    }\n  ]\n}\n</code></pre>\n",
            "headers":{
                "Content-Type":{
                    "description":"Indicates the media type of the response body.\n",
                    "type":"string"
                },
                "Expires":{
                    "description":"Specifies when the exported files will become expired.\n",
                    "type":"string"
                },
                "opc-request-id":{
                    "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                    "type":"string"
                }
            }
        },
        "bulkExportDelete":{
            "description":"<b>Example Request:</b>\n  <pre><code>DELETE https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/jobs/&lt;Job_ID&gt;</code></pre>\n  \n<b>Example Response:</b>\n<pre><code>Status: 202 Accepted</code></pre>\n",
            "headers":{
                "opc-request-id":{
                    "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                    "type":"string"
                }
            }
        },
        "bulkExportFileRetrieval":{
            "description":"<b>Example Request:</b>\n  <pre><code>GET https://fhir-ehr.cerner.com/r4/ec2458f2-1e24-41c8-b71b-0e701af7583d/bulk-export/files/&lt;File_ID&gt;</code></pre>\n\n<b>Example Response:</b>\n<pre><code>Status: 307 Temporary Redirect\nLocation: https://cerner-opensvc-bulkfhir-processed.s3.us-west-2.amazonaws.com</code></pre>\n",
            "headers":{
                "Location":{
                    "description":"Indicates the redirect URL that must be followed to download the files.\n",
                    "type":"string"
                },
                "opc-request-id":{
                    "description":"Unique Oracle-assigned identifier for the request. \nIf you need to contact Oracle about a particular request, \nprovide the <code>opc-request-id</code>, if present.\n",
                    "type":"string"
                }
            }
        }
    },
    "tags":[
        {
            "name":"Bulk Export",
            "description":"The operations from the Bulk Export category."
        }
    ]
}