AWS healthlake documentation change
Summary
Restructured documentation to remove detailed FHIR operation implementations and replace with links to individual operation pages. Changed from specific operation documentation to a general overview of FHIR $operations with navigation links.
Security assessment
The changes are organizational/structural improvements to documentation navigation rather than addressing security vulnerabilities or adding security features. No security-related content was added or modified - existing security references to IAM roles, KMS keys, and export permissions were removed as part of content relocation to subpages.
Diff
diff --git a/healthlake/latest/devguide/reference-fhir-operations.md b/healthlake/latest/devguide/reference-fhir-operations.md index ee8c0c1c4..28d6f2ae5 100644 --- a//healthlake/latest/devguide/reference-fhir-operations.md +++ b//healthlake/latest/devguide/reference-fhir-operations.md @@ -5 +5 @@ -Patient/$everything$export +# FHIR R4 `$operations` for HealthLake @@ -7,17 +7 @@ Patient/$everything$export -# FHIR R4 operations for HealthLake - -AWS HealthLake supports the following FHIR REST API operations. - - * `Patient/$everything` — This operation is used to query a FHIR `Patient` resource, along with any other resources related to that `Patient`. For more information, see [`Operation-patient-everything`](https://hl7.org/fhir/R4/operation-patient-everything.html) in the _FHIR R4 documentation_. - - - - - * `$export` — This operation is used to bulk export data from an HealthLake data store. For more information, see the [Bulk Data Access IG](https://www.hl7.org/fhir/uv/bulkdata/) in the _FHIR R4 documentation_. - - - - -###### Note - -You can also export FHIR data from a HealthLake data store using native HealthLake actions. For more information, see [Exporting FHIR data with AWS HealthLake](./exporting-fhir-data.html). +FHIR $ operations (also called "dollar operations") are special server-side functions that extend beyond standard CRUD (`Create`, `Read`, `Update`, `Delete`) operations in the FHIR specification. These operations are identified by the "$" prefix and enable complex processing, data transformation, and bulk operations that would be difficult or inefficient to perform using standard REST API calls. $ Operations can be invoked at the system level, resource type level, or on specific resource instances, providing flexible ways to interact with FHIR data. AWS HealthLake supports multiple FHIR `$operations`. Please refer to each individual pages below for additional details. @@ -27,346 +11 @@ You can also export FHIR data from a HealthLake data store using native HealthLa - * Getting patient data with Patient/$everything - - * Exporting HealthLake data with FHIR $export - - - - -## Getting patient data with `Patient/$everything` - -The `Patient/$everything` operation is used to query a FHIR `Patient` resource, along with any other resources related to that `Patient`. The operation can be used to provide a patient with access to their entire record or for a provider to perform a bulk data download related to a patient. HealthLake supports `Patient/$everything` for a specific patient `id`. - -`Patient/$everything` is a FHIR REST API operation that can be invoked as shown in the examples below. - -GET request - - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything - -###### Note - -Resources in response are sorted by resource type and resource `id`. - -Response is always populated with `Bundle.total`. - -### `Patient/$everything` parameters - -HealthLake supports the following query parameters - -Parameter | Details ----|--- -start | Get all `Patient` data after a specified start date. -end | Get all `Patient` data before a specified end date. -since | Get all `Patient` data updated after a specified date. -_type | Get `Patient` data for specific resource types. -_count | Get `Patient` data and specify page size. - -###### Example - Get all patient data after a specified start date - -`Patient/$everything` can use the `start` filter to query only data after a specific date. - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?start=2024-03-15T00:00:00.000Z - -###### Example - Get all `Patient` data before a specified end date - -Patient $everything can use the `end` filter to only query data before a specific date. - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?end=2024-03-15T00:00:00.000Z - -###### Example - Get all `Patient` data updated after a specified date - -`Patient/$everything` can use the `since` filter to query only data updated after a specific date. - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?since=2024-03-15T00:00:00.000Z - -###### Example - Get `Patient` data for specific resource types - -Patient $everything can use the `_type` filter to specify specific resource types to be included in the response. Multiple resource types can be specified in a comma separated list. - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_type=Observation,Condition - -###### Example - Get `Patient` data and specify page size - -Patient $everything can use the `_count` to set the page size. - - - GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_count=15 - -### `Patient/$everything` `start` and `end` attributes - -HealthLake supports the following resource attributes for the `Patient/ $everything` `start` and `end` query parameters. - -Resource | Resource Element ----|--- -Account | Account.servicePeriod.start -AdverseEvent | AdverseEvent.date -AllergyIntolerance | AllergyIntolerance.recordedDate -Appointment | Appointment.start -AppointmentResponse | AppointmentResponse.start -AuditEvent | AuditEvent.period.start -Basic | Basic.created -BodyStructure | NO_DATE -CarePlan | CarePlan.period.start -CareTeam | CareTeam.period.start -ChargeItem | ChargeItem.occurrenceDateTime, ChargeItem.occurrencePeriod.start, ChargeItem.occurrenceTiming.event -Claim | Claim.billablePeriod.start -ClaimResponse | ClaimResponse.created -ClinicalImpression | ClinicalImpression.date -Communication | Communication.sent -CommunicationRequest | CommunicationRequest.occurrenceDateTime, CommunicationRequest.occurrencePeriod.start -Composition | Composition.date -Condition | Condition.recordedDate -Consent | Consent.dateTime -Coverage | Coverage.period.start -CoverageEligibilityRequest | CoverageEligibilityRequest.created -CoverageEligibilityResponse | CoverageEligibilityResponse.created -DetectedIssue | DetectedIssue.identified -DeviceRequest | DeviceRequest.authoredOn -DeviceUseStatement | DeviceUseStatement.recordedOn -DiagnosticReport | DiagnosticReport.effective -DocumentManifest | DocumentManifest.created -DocumentReference | DocumentReference.context.period.start -Encounter | Encounter.period.start -EnrollmentRequest | EnrollmentRequest.created -EpisodeOfCare | EpisodeOfCare.period.start -ExplanationOfBenefit | ExplanationOfBenefit.billablePeriod.start -FamilyMemberHistory | NO_DATE -Flag | Flag.period.start -Goal | Goal.statusDate -Group | NO_DATE -ImagingStudy | ImagingStudy.started -Immunization | Immunization.recorded -ImmunizationEvaluation | ImmunizationEvaluation.date -ImmunizationRecommendation | ImmunizationRecommendation.date -Invoice | Invoice.date -List | List.date -MeasureReport | MeasureReport.period.start -Media | Media.issued -MedicationAdministration | MedicationAdministration.effective -MedicationDispense | MedicationDispense.whenPrepared -MedicationRequest | MedicationRequest.authoredOn -MedicationStatement | MedicationStatement.dateAsserted -MolecularSequence | NO_DATE -NutritionOrder | NutritionOrder.dateTime -Observation | Observation.effective -Patient | NO_DATE -Person | NO_DATE -Procedure | Procedure.performed -Provenance | Provenance.occurredPeriod.start, Provenance.occurredDateTime -QuestionnaireResponse | QuestionnaireResponse.authored -RelatedPerson | NO_DATE -RequestGroup | RequestGroup.authoredOn -ResearchSubject | ResearchSubject.period -RiskAssessment | RiskAssessment.occurrenceDateTime, RiskAssessment.occurrencePeriod.start -Schedule | Schedule.planningHorizon -ServiceRequest | ServiceRequest.authoredOn -Specimen | Specimen.receivedTime -SupplyDelivery | SupplyDelivery.occurrenceDateTime, SupplyDelivery.occurrencePeriod.start, SupplyDelivery.occurrenceTiming.event -SupplyRequest | SupplyRequest.authoredOn -VisionPrescription | VisionPrescription.dateWritten - -## Exporting HealthLake data with FHIR `$export` - -You can export data in bulk from your HealthLake data store using the FHIR $export operation. HealthLake supports FHIR `$export` using `POST` and `GET` requests. To make an export request with `POST`, you must have a IAM user, group, or role with the required permissions, specify `$export` as part of the request, and include desired parameters in the request body. - -###### Note - -All HealthLake export requests made using FHIR `$export` are returned in `ndjson` format and exported to an Amazon S3 bucket, where each Amazon S3 object contains only a single FHIR resource type. - -You can queue export requests per the AWS account service quotas. For more information, see [Service quotas](./reference-healthlake-endpoints-quotas.html#reference-healthlake-quotas). - -HealthLake supports the following three types of bulk export endpoint requests. - -HealthLake bulk `$export` types Export type | Description | Syntax ----|---|--- -System | Export all data from the HealthLake FHIR server. | `POST https://healthlake.`region`.amazonaws.com/datastore/`datastoreId`/r4/$export` -All patients | Export all data relating to all patients including resource types associated with the Patient resource type. | `POST https://healthlake.`region`.amazonaws.com/datastore/`datastoreId`/r4/Patient/$export` `GET https://healthlake.`region`.amazonaws.com/datastore/`datastoreId`/r4/Patient/$export` -Group of patients | Export all data relating to a group of patients specified with a Group ID. | `POST https://healthlake.`region`.amazonaws.com/datastore/`datastoreId`/r4/Group/`id`/$export` `GET https://healthlake.`region`.amazonaws.com/datastore/`datastoreId`/r4/Group/`id`/$export` - -### Before you begin - -Meet the following requirements to make an export request using the FHIR REST API for HealthLake. - - * You must have set up a user, group, or role that has the necessary permissions to make the export request. To learn more, see Authorizing an $export request. - - * You must have created a service role that grants HealthLake access to the Amazon S3 bucket to which you want your data to be exported. The service role must also specify HealthLake as the service principal. For more information about setting up permissions, see [Setting up permissions for export jobs](./getting-started-setting-up.html#setting-up-export-permissions). - - -