

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# FHIR R4 para `$operations` HealthLake
<a name="reference-fhir-operations"></a>

 Las operaciones FHIR \$1 (también denominadas «operaciones en dólares») son funciones especiales del servidor que van más allá de las operaciones CRUD (`Create`,, `Read``Update`,`Delete`) estándar de la especificación FHIR. Estas operaciones se identifican con el prefijo «\$1» y permiten un procesamiento complejo, la transformación de datos y operaciones masivas que serían difíciles o ineficientes de realizar con llamadas a la API REST estándar. \$1 Las operaciones se pueden invocar a nivel del sistema, a nivel de tipo de recurso o en instancias de recursos específicas, lo que proporciona formas flexibles de interactuar con los datos del FHIR. AWS HealthLake admite varios FHIR`$operations`. Consulte cada una de las páginas individuales que aparecen a continuación para obtener más información.

**Topics**
+ [Funcionamiento FHIR R4 `$attribution-status` para HealthLake](reference-fhir-operations-attribution-status.md)
+ [Eliminar tipos de recursos con `$bulk-delete`](reference-fhir-operations-bulk-delete.md)
+ [`$bulk-member-match`operación para HealthLake](reference-fhir-operations-bulk-member-match.md)
+ [Funcionamiento FHIR R4 `$confirm-attribution-list` para HealthLake](reference-fhir-operations-confirm-attribution-list.md)
+ [Funcionamiento FHIR R4 `$davinci-data-export` para HealthLake](reference-fhir-operations-davinci-data-export.md)
+ [Generación de documentos clínicos con `$document`](reference-fhir-operations-document.md)
+ [Eliminar recursos de forma permanente con `$erase`](reference-fhir-operations-erase.md)
+ [Obtener datos de pacientes con `Patient/$everything`](reference-fhir-operations-everything.md)
+ [Recuperación de ValueSet códigos con `$expand`](reference-fhir-operations-expand.md)
+ [Exportación HealthLake de datos con FHIR `$export`](reference-fhir-operations-export.md)
+ [`$inquire`Operación FHIR para HealthLake](reference-fhir-operations-inquire.md)
+ [Recuperación de detalles conceptuales con `$lookup`](reference-fhir-operations-lookup.md)
+ [`$member-add`operación para HealthLake](reference-fhir-operations-member-add.md)
+ [`$member-match`operación para HealthLake](reference-fhir-operations-member-match.md)
+ [`$member-remove`operación para HealthLake](reference-fhir-operations-member-remove.md)
+ [Eliminar los recursos del compartimento de pacientes con `$purge`](reference-fhir-operations-purge.md)
+ [`$questionnaire-package`Operación FHIR para HealthLake](reference-fhir-operations-questionnaire-package.md)
+ [`$submit`Operación FHIR para HealthLake](reference-fhir-operations-submit.md)
+ [Validación de los recursos del FHIR con `$validate`](reference-fhir-operations-validate.md)

# Funcionamiento FHIR R4 `$attribution-status` para HealthLake
<a name="reference-fhir-operations-attribution-status"></a>

Recupera el estado de atribución de un miembro específico y devuelve un paquete que contiene todos los recursos de atribución relacionados con el paciente. Esta operación forma parte de la implementación de la Lista IG 2.1.0 de la [Lista de Atribución de Miembros (ATR) del FHIR](https://build.fhir.org/ig/HL7/davinci-atr/spec.html).

## Punto de conexión
<a name="attribution-status-endpoint"></a>

```
POST [base]/Group/[id]/$attribution-status
```

## Parámetros de la solicitud
<a name="attribution-status-parameters"></a>

La operación acepta los siguientes parámetros opcionales:


| Parámetro | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| memberId | Identificador | El MemberId del miembro para el que se solicita el estado de atribución | 
| Referencia del paciente | Referencia | Referencia al recurso para pacientes en el sistema del productor | 

**nota**  
`patientReference`Se puede proporcionar uno `memberId` o ambos, o ambos con fines de validación.

## Solicitud de muestra
<a name="attribution-status-request-example"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "memberId",
      "valueIdentifier": {
        "system": "http://example.org",
        "value": "MBR123456789"
      }
    },
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/patient-123",
        "display": "John Doe"
      }
    }
  ]
}
```

## Respuesta
<a name="attribution-status-response"></a>

Devuelve un paquete que contiene recursos de atribución relacionados con el paciente:


| Recurso | Cardinalidad | Ubicación | 
| --- | --- | --- | 
| Paciente | 1..1 | Grupo, miembro, entidad | 
| Cobertura | 0.1.. | Group.Member.Extension: referencia de cobertura | 
| Organization/Practitioner/PractitionerRole | 0.1.. | group.member.extension: proveedor atribuido | 
| ¿Algún recurso | 0.1.. | Group.Member.Extension: datos asociados | 

### Respuesta de ejemplo
<a name="attribution-status-response-example"></a>

```
{
  "resourceType": "Bundle",
  "id": "bundle-response",
  "meta": {
    "lastUpdated": "2014-08-18T01:43:33Z"
  },
  "type": "collection",
  "entry": [
    {
      "fullUrl": "http://example.org/fhir/Patient/12423",
      "resource": {
        "resourceType": "Patient",
        "id": "12423",
        "meta": {
          "versionId": "1",
          "lastUpdated": "2014-08-18T01:43:31Z"
        },
        "active": true,
        "name": [
          {
            "use": "official",
            "family": "Chalmers",
            "given": ["Peter", "James"]
          }
        ],
        "gender": "male",
        "birthDate": "1974-12-25"
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Coverage/123456",
      "resource": {
        "resourceType": "Coverage",
        "id": "1"
        // ... additional Coverage resource details
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Organization/666666",
      "resource": {
        "resourceType": "Organization",
        "id": "2"
        // ... additional Organization resource details
      }
    }
  ]
}
```

## Gestión de errores
<a name="attribution-status-error-handling"></a>

La operación gestiona las siguientes condiciones de error:


| Error | Estado HTTP | Description (Descripción) | 
| --- | --- | --- | 
| Solicitud de operación no válida | 400 | Estructura o parámetros de solicitud no conformes | 
| No se encontró el recurso de grupo | 404 | El ID de grupo especificado no existe | 
| No se encontró el recurso para pacientes | 404 | La referencia de paciente especificada no existe | 

## Autorización y seguridad
<a name="attribution-status-authorization"></a>

Requisitos de SMART Scope  
Los clientes deben tener los privilegios adecuados para leer los recursos del grupo y los recursos de atribución relacionados  
Los mecanismos de autorización estándar del FHIR se aplican a todas las operaciones

# Eliminar tipos de recursos con `$bulk-delete`
<a name="reference-fhir-operations-bulk-delete"></a>

AWS HealthLake admite la `$bulk-delete` operación, lo que permite eliminar todos los recursos de un tipo específico de un almacén de datos. Esta operación resulta especialmente útil cuando se necesita:
+ Realice auditorías y limpiezas estacionales
+ Gestione el ciclo de vida de los datos a escala
+ Elimine tipos de recursos específicos
+ Cumpla con las políticas de retención de datos

## De uso
<a name="bulk-delete-usage"></a>

La `$bulk-delete` operación se puede invocar mediante los métodos POST:

```
POST [base]/[ResourceType]/$bulk-delete?isHardDelete=false&deleteAuditEvent=true
```

## Parameters
<a name="bulk-delete-parameters"></a>


| Parámetro | Tipo | Obligatorio/a | Predeterminado | Description (Descripción) | 
| --- | --- | --- | --- | --- | 
| isHardDelete | booleano | No | false | Si es verdadero, elimina permanentemente los recursos del almacenamiento | 
| deleteAuditEvent | booleano | No | true | Si es verdadero, elimina los eventos de auditoría asociados | 
| \$1since | cadena | No | Hora de creación del almacén de datos | Cuando se introduce, selecciona la hora límite de inicio para buscar los recursos en función de su hora de última modificación. No se puede usar ni al principio ni al final | 
| start | cadena | No | Hora de creación del almacén de datos | Cuando se introduce, selecciona la hora límite para buscar los recursos en función de su hora de última modificación. Se puede usar con el final | 
| end | cadena | No | Tiempo de presentación de trabajos | Cuando se introduce, selecciona la hora límite de finalización para buscar los recursos en función de su hora de última modificación | 

## Ejemplos
<a name="bulk-delete-examples"></a>

**Solicitud de ejemplo**  


```
POST [base]/Observation/$bulk-delete?isHardDelete=false
```

**Respuesta de ejemplo**  


```
{
      "jobId": "jobId",
      "jobStatus": "SUBMITTED"
    }
```

## Estado del trabajo
<a name="bulk-delete-job-status"></a>

Para comprobar el estado de un trabajo de eliminación masiva:

```
GET [base]/$bulk-delete/[jobId]
```

La operación devuelve información sobre el estado del trabajo:

```
{
      "datastoreId": "datastoreId",
      "jobId": "jobId",
      "status": "COMPLETED",
      "submittedTime": "2025-10-09T15:09:51.336Z"
    }
```

## Comportamiento
<a name="bulk-delete-behavior"></a>

La `$bulk-delete` operación:

1. Procesa de forma asíncrona para gestionar grandes volúmenes de recursos

1. Mantiene las transacciones ACID para garantizar la integridad de los datos

1. Proporciona un seguimiento del estado de los trabajos con recuentos de eliminaciones de recursos

1. Soporta los modos de borrado suave y duro

1. Incluye un registro de auditoría completo de las actividades de eliminación

1. Permite la eliminación selectiva de versiones históricas y eventos de auditoría

## Registro de auditoría
<a name="bulk-delete-audit-logging"></a>

La `$bulk-delete` operación se registra como Inicio FHIRBulk DeleteJob y Descripción FHIRBulk DeleteJob con información detallada sobre la operación.

## Limitaciones
<a name="bulk-delete-limitations"></a>
+ Si `isHardDelete` se establece en True, los recursos eliminados de forma permanente no aparecerán en los resultados de búsqueda ni en `_history` las consultas.
+ Es posible que los recursos que se eliminen mediante esta operación no estén accesibles temporalmente durante el procesamiento
+ La medición del almacenamiento solo se ajusta en las versiones históricas; deleteVersionHistory =false no ajustará el almacenamiento en el almacén de datos

# `$bulk-member-match`operación para HealthLake
<a name="reference-fhir-operations-bulk-member-match"></a>

AWS HealthLake admite la `$bulk-member-match` operación de procesar las solicitudes de emparejamiento de varios miembros de forma asíncrona. Esta operación permite a las organizaciones de atención médica comparar de manera eficiente los identificadores únicos de cientos de miembros de diferentes sistemas de salud utilizando información demográfica y de cobertura en una sola solicitud masiva. [Esta capacidad es esencial para el intercambio de payer-to-payer datos a gran escala, las transiciones de miembros y los requisitos de conformidad con los CMS, y sigue la especificación de la FHIR.](https://build.fhir.org/ig/HL7/davinci-epdx/OperationDefinition-BulkMemberMatch.html)

**nota**  
La `$bulk-member-match` operación se basa en una especificación subyacente del FHIR que actualmente se encuentra en fase experimental y está sujeta a cambios. A medida que la especificación evolucione, el comportamiento y la interfaz de esta API se actualizarán en consecuencia. Se recomienda a los desarrolladores que supervisen las notas de la HealthLake versión de AWS y las actualizaciones de las especificaciones del FHIR pertinentes para mantenerse informados de cualquier cambio que pueda afectar a sus integraciones.

Esta operación resulta especialmente útil cuando necesita:
+ Procese la comparación de miembros a gran escala durante los períodos de inscripción abierta
+ Facilite las transiciones masivas de miembros entre pagadores
+ Support con los requisitos de intercambio de datos de conformidad con los CMS a gran escala
+ Haga coincidir de manera eficiente las cohortes de miembros en todas las redes de atención médica
+ Minimice las llamadas a la API y mejore la eficiencia operativa en escenarios de coincidencia de gran volumen

## De uso
<a name="bulk-member-match-usage"></a>

La `$bulk-member-match` operación es una operación asíncrona que se invoca en los recursos del grupo mediante el método POST:

```
POST [base]/Group/$bulk-member-match
```

Tras enviar una solicitud de coincidencia masiva, puedes sondear el estado del trabajo mediante:

```
GET [base]/$bulk-member-match-status/{jobId}
```

## Parámetros admitidos
<a name="bulk-member-match-parameters"></a>

HealthLake admite los siguientes `$bulk-member-match` parámetros del FHIR:


| Parámetro | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| `MemberPatient` | Paciente | Sí | Recurso para pacientes que contiene información demográfica sobre el miembro al que se va a vincular. | 
| `CoverageToMatch` | Cobertura | Sí | Recurso de cobertura que se utilizará para compararlo con los registros existentes. | 
| `CoverageToLink` | Cobertura | No | Recurso de cobertura que se vinculará durante el proceso de emparejamiento. | 
| `Consent` | Consentimiento | Sí | También se almacena el recurso de consentimiento para fines de autorización. Esto es diferente de la `$member-match` operación individual en la que *no* se requiere el consentimiento. | 

## Solicitud POST para enviar un trabajo de emparejamiento masivo de miembros
<a name="bulk-member-match-request-example"></a>

El siguiente ejemplo muestra una solicitud POST para enviar un trabajo de emparejamiento masivo de miembros. Cada miembro está incluido en un `MemberBundle` parámetro que contiene los `Consent` recursos necesarios `MemberPatient` y uno opcional`CoverageToLink`. `CoverageToMatch`

```
POST [base]/Group/$bulk-member-match
Content-Type: application/fhir+json
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberBundle",
      "part": [
        {
          "name": "MemberPatient",
          "resource": {
            "resourceType": "Patient",
            "identifier": [
              {
                "system": "http://example.org/patient-id",
                "value": "patient-0"
              }
            ],
            "name": [
              {
                "family": "Smith",
                "given": ["James"]
              }
            ],
            "gender": "male",
            "birthDate": "1950-01-01"
          }
        },
        {
          "name": "CoverageToMatch",
          "resource": {
            "resourceType": "Coverage",
            "status": "active",
            "identifier": [
              {
                "system": "http://example.org/coverage-id",
                "value": "cov-0"
              }
            ],
            "subscriberId": "sub-0",
            "beneficiary": {
              "reference": "Patient/patient123"
            },
            "relationship": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
                  "code": "self"
                }
              ]
            },
            "payor": [
              {
                "reference": "Organization/org123"
              }
            ]
          }
        },
        {
          "name": "Consent",
          "resource": {
            "resourceType": "Consent",
            "status": "active",
            "scope": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/consentscope",
                  "code": "patient-privacy"
                }
              ]
            },
            "category": [
              {
                "coding": [
                  {
                    "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
                    "code": "IDSCL"
                  }
                ]
              }
            ],
            "patient": {
              "reference": "Patient/patient123"
            },
            "performer": [
              {
                "reference": "Patient/patient123"
              }
            ],
            "sourceReference": {
              "reference": "http://example.org/DocumentReference/consent-source"
            },
            "policy": [
              {
                "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#regular"
              }
            ],
            "provision": {
              "type": "permit",
              "period": {
                "start": "2024-01-01",
                "end": "2025-12-31"
              },
              "actor": [
                {
                  "role": {
                    "coding": [
                      {
                        "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
                        "code": "performer"
                      }
                    ]
                  },
                  "reference": {
                    "identifier": {
                      "system": "http://hl7.org/fhir/sid/us-npi",
                      "value": "9876543210"
                    },
                    "display": "Old Health Plan"
                  }
                },
                {
                  "role": {
                    "coding": [
                      {
                        "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                        "code": "IRCP"
                      }
                    ]
                  },
                  "reference": {
                    "identifier": {
                      "system": "http://hl7.org/fhir/sid/us-npi",
                      "value": "0123456789"
                    },
                    "display": "New Health Plan"
                  }
                }
              ],
              "action": [
                {
                  "coding": [
                    {
                      "system": "http://terminology.hl7.org/CodeSystem/consentaction",
                      "code": "disclose"
                    }
                  ]
                }
              ]
            }
          }
        },
        {
          "name": "CoverageToLink",
          "resource": {
            "resourceType": "Coverage",
            "status": "active",
            "identifier": [
              {
                "system": "http://example.org/coverage-link-id",
                "value": "cov-link-0"
              }
            ],
            "subscriberId": "new-sub-0",
            "beneficiary": {
              "reference": "Patient/patient123"
            },
            "relationship": {
              "coding": [
                {
                  "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
                  "code": "self"
                }
              ]
            },
            "payor": [
              {
                "identifier": {
                  "system": "http://hl7.org/fhir/sid/us-npi",
                  "value": "0123456789"
                },
                "display": "New Health Plan"
              }
            ]
          }
        }
      ]
    }
  ]
}
```

## Respuesta al trabajo completada con salida
<a name="bulk-member-match-response-example"></a>

Cuando se completa el trabajo, la respuesta incluye los metadatos del trabajo y un recurso de parámetros del FHIR que contiene tres recursos del grupo que clasifican los resultados de la coincidencia.

```
{
  "datastoreId": "datastoreId",
  "jobId": "jobId",
  "status": "COMPLETED",
  "submittedTime": "2026-03-20T18:45:26.321Z",
  "numberOfMembers": 3,
  "numberOfMembersProcessedSuccessfully": 3,
  "numberOfMembersWithCustomerError": 0,
  "numberOfMembersWithServerError": 0,
  "output": {
    "resourceType": "Parameters",
    "meta": {
      "profile": [
        "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/pdex-parameters-multi-member-match-bundle-out"
      ]
    },
    "parameter": [
      {
        "name": "MatchedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "group1",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Matched members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-0"
                }
              ],
              "name": [
                {
                  "family": "Smith",
                  "given": ["James"]
                }
              ],
              "gender": "male",
              "birthDate": "1950-01-01"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "match",
                "display": "Matched"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/patient123"
              }
            }
          ]
        }
      },
      {
        "name": "NonMatchedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "Group2",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Non-matched members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-501"
                }
              ],
              "name": [
                {
                  "family": "Carter",
                  "given": ["Emily"]
                }
              ],
              "gender": "female",
              "birthDate": "1985-06-15"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "nomatch",
                "display": "Not Matched"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/patient123"
              }
            }
          ]
        }
      },
      {
        "name": "ConsentConstrainedMembers",
        "resource": {
          "resourceType": "Group",
          "id": "group3",
          "text": {
            "status": "generated",
            "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Consent constrained members group</div>"
          },
          "contained": [
            {
              "resourceType": "Patient",
              "id": "1",
              "identifier": [
                {
                  "system": "http://example.org/patient-id",
                  "value": "patient-502"
                }
              ],
              "name": [
                {
                  "family": "Nguyen",
                  "given": ["David"]
                }
              ],
              "gender": "male",
              "birthDate": "1972-11-22"
            }
          ],
          "type": "person",
          "actual": true,
          "code": {
            "coding": [
              {
                "system": "http://hl7.org/fhir/us/davinci-pdex/CodeSystem/PdexMultiMemberMatchResultCS",
                "code": "consentconstraint",
                "display": "Consent Constraint"
              }
            ]
          },
          "quantity": 1,
          "member": [
            {
              "entity": {
                "extension": [
                  {
                    "url": "http://hl7.org/fhir/us/davinci-pdex/StructureDefinition/base-ext-match-parameters",
                    "valueReference": {
                      "reference": "#1"
                    }
                  }
                ],
                "reference": "Patient/123"
              }
            }
          ]
        }
      }
    ]
  }
}
```

## Recursos del grupo de salida
<a name="bulk-member-match-output-groups"></a>

El trabajo completado devuelve un recurso de parámetros que contiene tres recursos de grupo:

**MatchedMembers Group (Grupo)**  
Contiene las referencias de los pacientes de todos los miembros seleccionados correctamente y no se clasifica como restricción de consentimiento.

El `Group.quantity` campo contiene el recuento total de miembros de cada uno de sus grupos respectivos.

**NonMatchedMembers Group (Grupo)**  
Contiene referencias a miembros en los que no se encontró ninguna coincidencia o se identificaron varias coincidencias.

**ConsentConstrainedMembers Group (Grupo)**  
Contiene las referencias de los pacientes de todos los miembros emparejados correctamente cuando las restricciones de consentimiento impiden el intercambio de datos. Un recurso de consentimiento se considera limitado cuando se dan las dos condiciones siguientes:  
+ **El URI de la política termina en `#sensitive`**: es la señal más clara y directa. El pagador que los envía dice explícitamente: «Los datos de este miembro son confidenciales; trátelos con cuidado».

  ```
  "policy": [{ "uri": "...hrex-consent.html#sensitive" }]
  ```
+ **El tipo de disposición de nivel superior es `deny`**: el miembro se ha negado ampliamente a compartir datos.

  ```
  "provision": { "type": "deny" }
  ```

## Integración con \$1 davinci-data-export
<a name="bulk-member-match-davinci-integration"></a>

El recurso del MatchedMembers grupo devuelto por se `$bulk-member-match` puede utilizar directamente con la `$davinci-data-export` operación para recuperar datos masivos de los miembros:

```
POST [base]/Group/{matched-group-id}/$davinci-data-export
GET [base]/Group/{matched-group-id}
```

Esta integración permite flujos de trabajo eficientes en los que primero se identifican los miembros coincidentes de forma masiva y, a continuación, se exportan sus historiales médicos completos utilizando el recurso del grupo resultante.

## Características de rendimiento
<a name="bulk-member-match-performance"></a>

La `$bulk-member-match` operación está diseñada para el procesamiento de grandes volúmenes y se ejecuta de forma asíncrona:
+ **Simultaneidad**: máximo de 5 operaciones simultáneas por almacén de datos.
+ **Escalabilidad**: gestiona hasta 500 miembros por solicitud (límite de carga útil de 5 MB).
+ **Operaciones paralelas**: compatible con operaciones simultáneas de importación, exportación o eliminación masiva.

## Autorización
<a name="bulk-member-match-authorization"></a>

La API utiliza el protocolo de autorización SMART on FHIR con los siguientes ámbitos obligatorios:
+ `system/Patient.read`— Necesaria para buscar y comparar los recursos de los pacientes.
+ `system/Coverage.read`— Necesario para validar la información de cobertura.
+ `system/Group.write`— Necesario para crear los recursos del grupo de resultados.
+ `system/Organization.read`— Condicional, obligatorio si la cobertura hace referencia a organizaciones.
+ `system/Practitioner.read`— Condicional, obligatorio si la cobertura hace referencia a profesionales.
+ `system/PractitionerRole.read`— Condicional, obligatorio si la cobertura hace referencia a las funciones de los profesionales.
+ `system/Consent.write`— Condicional, obligatorio si se proporcionan recursos de consentimiento.

La operación también admite la autorización de la versión 4 (SiGv4) de AWS IAM Signature para el acceso programático.

## Gestión de errores
<a name="bulk-member-match-errors"></a>

La operación gestiona las siguientes condiciones de error:
+ **400 Solicitud errónea**: el formato de solicitud no es válido, faltan los parámetros necesarios o la carga útil supera los límites de tamaño (500 miembros o 5 MB).
+ **422 Entidad inprocesable**: errores de procesamiento durante la ejecución del trabajo.
+ **Errores de miembros individuales**: cuando un miembro específico no se procesa, la operación continúa con los miembros restantes e incluye los detalles del error en el NonMatchedMembers grupo con los códigos de motivo correspondientes. Por ejemplo, si `MemberBundle` a un paciente le falta el `birthDate` parámetro, se mostrará el siguiente error:

  ```
  "errors": [
    {
      "memberIndex": 1,
      "jsonBlob": {
        "resourceType": "OperationOutcome",
        "issue": [
          {
            "severity": "error",
            "code": "invalid",
            "diagnostics": "MemberPatient.birthDate is required"
          }
        ],
        "statusCode": 400
      }
    }
  ]
  ```

Los detalles del error están disponibles en el punto final del sondeo de estado e incluyen:
+ `numberOfMembersWithCustomerError`: Recuento de miembros con errores de validación o entrada.
+ `numberOfMembersWithServerError`: Recuento de miembros con errores de procesamiento en el servidor.

## Operaciones de relacionadas
<a name="bulk-member-match-related"></a>
+ [`$member-match`operación para HealthLake](reference-fhir-operations-member-match.md)— Operación de emparejamiento de miembros individuales.
+ [Funcionamiento FHIR R4 `$davinci-data-export` para HealthLake](reference-fhir-operations-davinci-data-export.md)— Exportación masiva de datos utilizando recursos del grupo.
+ [FHIR R4 para `$operations` HealthLake](reference-fhir-operations.md)— Lista completa de operaciones compatibles.

# Funcionamiento FHIR R4 `$confirm-attribution-list` para HealthLake
<a name="reference-fhir-operations-confirm-attribution-list"></a>

Indica a un productor que el consumidor no tiene más cambios que hacer en la lista de atribuciones. Esta operación finaliza la lista de atribuciones eliminando los miembros inactivos de la lista, cambiando el estado a «final» y confirmando la operación. Esta operación forma parte de la implementación de la IG 2.1.0 de la [Lista de Atribución de Miembros (ATR) del FHIR](https://build.fhir.org/ig/HL7/davinci-atr/spec.html).

## Punto de conexión
<a name="confirm-attribution-list-endpoint"></a>

```
POST [base]/Group/[id]/$confirm-attribution-list
```

## Solicitud
<a name="confirm-attribution-list-request"></a>

No se requieren parámetros.

```
POST [base]/Group/[id]/$confirm-attribution-list
```

## Respuesta
<a name="confirm-attribution-list-response"></a>

Devuelve HTTP 201 con un mensaje de confirmación.

### Respuesta de ejemplo
<a name="confirm-attribution-list-response-example"></a>

```
HTTP Status Code: 201

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "message",
      "valueString": "Accepted."
    }
  ]
}
```

## Estado del grupo tras la confirmación
<a name="confirm-attribution-list-group-status"></a>

Tras la confirmación correcta, el estado de la lista de atribuciones del recurso del grupo pasará a ser «final»:

```
{
  "resourceType": "Group",
  "id": "fullexample",
  "extension": [
    {
      "url": "http://hl7.org/fhir/us/davinci-atr/StructureDefinition/ext-attributionListStatus",
      "valueCode": "final"
    }
  ]
  // ... other Group properties
}
```

## Gestión de errores
<a name="confirm-attribution-list-error-handling"></a>

La operación gestiona las siguientes condiciones de error:


| Error | Estado HTTP | Description (Descripción) | 
| --- | --- | --- | 
| Solicitud de operación no válida | 400 | Estructura o parámetros de solicitud no conformes | 
| No se encontró el recurso de grupo | 404 | El ID de grupo especificado no existe | 

## Autorización y seguridad
<a name="confirm-attribution-list-authorization"></a>

Requisitos de SMART Scope  
Los clientes deben tener los privilegios adecuados para leer los recursos del grupo y los recursos de atribución relacionados  
Pues`$confirm-attribution-list`, los clientes también deben tener privilegios de escritura para modificar los recursos del grupo  
Los mecanismos de autorización estándar del FHIR se aplican a todas las operaciones

# Funcionamiento FHIR R4 `$davinci-data-export` para HealthLake
<a name="reference-fhir-operations-davinci-data-export"></a>

La `$davinci-data-export` operación es una operación FHIR asíncrona desde la que puede exportar datos de atención médica. AWS HealthLake Esta operación admite varios tipos de exportación, como la atribución de miembros (ATR), el acceso a PDex proveedores y el acceso a miembros. Payer-to-Payer APIs Es una versión especializada de la `$export` operación estándar del FHIR, diseñada para cumplir con los requisitos de las guías de DaVinci implementación.

## Características principales de
<a name="davinci-data-export-features"></a>
+ *Procesamiento asíncrono*: sigue el patrón estándar de solicitudes asíncronas del FHIR
+ Exportación a *nivel de grupo: exporta los datos de los miembros de un recurso grupal* específico
+ *Múltiples tipos de exportación*: admite ATR (atribución de miembros), acceso a PDex proveedores y Payer-to-Payer acceso a miembros APIs
+ *Soporte integral de perfiles*: incluye US Core, CARIN Blue Button y PDex perfiles
+ *Filtrado flexible*: admite el filtrado por pacientes, tipos de recursos y rangos de tiempo
+ *Salida NDJSON*: proporciona datos en formato JSON delimitado por líneas nuevas

## Punto final de la operación
<a name="davinci-data-export-endpoint"></a>

```
GET [base]/Group/[id]/$davinci-data-export
POST [base]/Group/[id]/$davinci-data-export
```

## Parámetros de la solicitud
<a name="davinci-data-export-parameters"></a>


| Parámetro | Cardinalidad | Description (Descripción) | 
| --- | --- | --- | 
| patient | 0.. \$1 | Miembros específicos cuyos datos se van a exportar. Si se omite, se exportan todos los miembros del grupo. | 
| \$1type | 0.1. | Lista delimitada por comas de los tipos de recursos del FHIR que se van a exportar. | 
| \$1since | 0.1 | Incluya únicamente los recursos actualizados después de esta fecha y hora. | 
| \$1until | 0.1.. | Incluya únicamente los recursos actualizados antes de esta fecha y hora. | 
| exportType | 0.1.. | Tipo de exportación que se va a realizar. Valores válidos: hl7.fhir.us.davinci-atr, hl7.fhir.us.davinci-pdex, hl7.fhir.us.davinci-pdex.p2p, hl7.fhir.us.davinci-pdex.member. Predeterminado: hl7.fhir.us.davinci-atr. | 
| \$1includeEOB2xWoFinancial | 0.1.. | Especifica si se deben incluir los ExplanationOfBenefit recursos de CARIN BB 2.x sin datos financieros. Predeterminado: false. | 

### Tipos de recursos admitidos
<a name="davinci-data-export-supported-resources"></a>

Los tipos de recursos admitidos dependen del tipo de exportación que especifique. Para las exportaciones ATR, se admiten los siguientes tipos de recursos:
+ `Group`
+ `Patient`
+ `Coverage`
+ `RelatedPerson`
+ `Practitioner`
+ `PractitionerRole`
+ `Organization`
+ `Location`

Para PDex las exportaciones (Provider Access y Member Access), se admiten todos los tipos de recursos clínicos y de reclamaciones, además de los tipos anteriores. Payer-to-Payer Para obtener una lista completa de los tipos de recursos compatibles, consulte la [Guía de implementación básica de EE. UU. (STU 6.1)](https://hl7.org/fhir/us/core/STU6.1/), la Guía de implementación de [CARIN Blue Button y la Guía de implementación](https://hl7.org/fhir/us/carin-bb/) del [soporte de autorización previa de Da Vinci](https://hl7.org/fhir/us/davinci-pas/).

## Tipos de exportación
<a name="davinci-data-export-types"></a>

La `$davinci-data-export` operación admite los siguientes tipos de exportación. El tipo de exportación se especifica mediante el `exportType` parámetro.


| Tipo de exportación | Finalidad | Alcance de los datos | Límite temporal | 
| --- | --- | --- | --- | 
| hl7.fhir.us.davinci-atr | Lista de atribuciones de miembros | Recursos relacionados con la atribución | Ninguno | 
| hl7.fhir.us.davinci-pdex | API de acceso para proveedores | Datos clínicos y de reclamaciones de los pacientes atribuidos | 5 años | 
| hl7.fhir.us.davinci-pdex.p2p | Payer-to-Payer Intercambio | Datos históricos de los miembros para las transiciones de seguros | 5 años | 
| hl7.fhir.us.davinci-pdex.member | API de acceso para miembros | Datos de salud propios del miembro | 5 años | 

**nota**  
En el caso de PDex las exportaciones, el límite temporal de 5 años no se aplica a los tipos de recursos ATR (`Group``Patient``Coverage`,`RelatedPerson`,`Practitioner`,`PractitionerRole`,`Organization`,`Location`). Estos recursos siempre se incluyen independientemente de la edad.

### ATR (hl7.fhir.us.davinci-atr)
<a name="davinci-data-export-type-atr"></a>

Con el tipo de exportación ATR, puedes exportar los datos de la lista de atribución de miembros. Usa este tipo de exportación para recuperar recursos relacionados con la atribución para los miembros de un grupo. Para obtener más información, consulte la operación de [exportación de ATR de Da Vinci](https://build.fhir.org/ig/HL7/davinci-atr/OperationDefinition-davinci-data-export.html).

Tipos de recursos admitidos  
`Group`, `Patient`, `Coverage`, `RelatedPerson`, `Practitioner`, `PractitionerRole`, `Organization`, `Location`

Filtrado temporal  
No se aplica ningún filtrado temporal. Todos los recursos coincidentes se exportan independientemente de la fecha.

### PDex Tipos de exportación
<a name="davinci-data-export-type-pdex"></a>

Todos los tipos de PDex exportación comparten los mismos perfiles compatibles y la misma lógica de filtrado. Para obtener más información, consulte la [API de Da Vinci PDex Provider Access](https://build.fhir.org/ig/HL7/davinci-epdx/provider-access-api.html). Se admiten los siguientes perfiles:
+ US Core 3.1.1, 6.1.0 y 7.0.0
+ PDex Autorización previa (no se admite para el acceso de los miembros)
+ Perfiles básicos de CARIN BB 2.x: pacientes hospitalizados, ambulatorios, institucionales, profesionales, orales, farmacéuticos NonClinician

Acceso para proveedores () `hl7.fhir.us.davinci-pdex`  
Permite a los proveedores de la red recuperar los datos de los pacientes atribuidos.

Payer-to-Payer (`hl7.fhir.us.davinci-pdex.p2p`)  
Permite el intercambio de datos entre los pagadores cuando un paciente cambia de seguro.

Acceso de miembros () `hl7.fhir.us.davinci-pdex.member`  
Permite a los miembros acceder a sus propios datos de salud. Este tipo de exportación puede incluir datos financieros en los recursos de reclamaciones.

## Lógica de inclusión y soporte de perfiles
<a name="davinci-data-export-profile-support"></a>

En el caso de PDex las exportaciones, la `$davinci-data-export` operación utiliza declaraciones de perfil en el `meta.profile` elemento para determinar qué recursos incluir en la exportación.

### ExplanationOfBenefit Manejo de recursos
<a name="davinci-data-export-carin-handling"></a>

`ExplanationOfBenefit`Los recursos (EOB) se incluyen o excluyen de PDex las exportaciones en función de sus `meta.profile` declaraciones:
+ ExplanationOfBenefit los recursos con un perfil CARIN BB 1.x se excluyen de la exportación.
+ ExplanationOfBenefit los recursos sin ningún `meta.profile` conjunto se excluyen de la exportación.
+ ExplanationOfBenefit siempre se incluyen los recursos con un perfil CARIN BB 2.x Basis.
+ ExplanationOfBenefit los recursos con un perfil CARIN BB 2.x que contiene datos financieros se excluyen de forma predeterminada. Cuando `_includeEOB2xWoFinancial=true` están configurados, se incluyen sin datos financieros y el recurso se transforma en el perfil base correspondiente.
+ ExplanationOfBenefit los recursos con un perfil de autorización PDex previa siempre se incluyen.

### Transformación de datos financieros
<a name="davinci-data-export-financial-transformation"></a>

Cuando se configura`_includeEOB2xWoFinancial=true`, la operación transforma los ExplanationOfBenefit recursos de [CARIN BB 2.x en](https://hl7.org/fhir/us/carin-bb/) sus perfiles básicos correspondientes mediante la eliminación de los datos financieros. Por ejemplo, un `C4BB ExplanationOfBenefit Oral` recurso se transforma en`C4BB ExplanationOfBenefit Oral Basis`, lo que elimina los datos financieros del registro según la especificación de la FHIR.

Los siguientes elementos de datos financieros se eliminan durante la transformación:
+ Todos los elementos se dividen `total`
+ Todos los `adjudication` elementos con rebanada `amounttype`
+ Todos los `item.adjudication` elementos con información sobre el importe

La operación también actualiza los metadatos del perfil durante la transformación:
+ `meta.profile`se actualiza a la URL canónica del perfil básico
+ La versión se ha actualizado a la versión básica CARIN BB 2.x
+ Los recursos existentes en el almacén de datos no se modifican
+ Los recursos exportados no se devuelven al almacén de datos

### Reglas de detección de perfiles
<a name="davinci-data-export-profile-detection"></a>

La operación utiliza las siguientes reglas para detectar y validar los perfiles:
+ La detección de versiones se basa en la versión `meta.profile` canónica URLs
+ Se incluye un recurso si ALGUNO de sus perfiles declarados coincide con los criterios de exportación
+ La validación del perfil se produce durante el procesamiento de la exportación

## Filtrado temporal de cinco años para PDex las exportaciones
<a name="davinci-data-export-temporal-filtering"></a>

Para todos los tipos de PDex exportación, HealthLake aplica un filtro temporal de 5 años en función de cuándo se actualizó el recurso por última vez. El filtro temporal se aplica a todos los recursos, excepto a los siguientes tipos de recursos de atribución principales, que siempre se exportan independientemente de su antigüedad:
+ `Patient`
+ `Coverage`
+ `Organization`
+ `Practitioner`
+ `PractitionerRole`
+ `RelatedPerson`
+ `Location`
+ `Group`

Estos recursos administrativos y demográficos están exentos porque proporcionan un contexto esencial para los datos exportados. Las exportaciones de ATR no están sujetas a ningún filtrado temporal.

## Solicitudes de ejemplo
<a name="davinci-data-export-examples"></a>

Los siguientes ejemplos muestran cómo iniciar trabajos de exportación para diferentes tipos de exportación.

*Exportación ATR*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Group,Patient,Coverage,Practitioner,Organization&exportType=hl7.fhir.us.davinci-atr

POST https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Group,Patient,Coverage,Practitioner,Organization&exportType=hl7.fhir.us.davinci-atr
Content-Type: application/json

{
  "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  "JobName": "attribution-export-job",
  "OutputDataConfig": {
    "S3Configuration": {
      "S3Uri": "s3://your-export-bucket/EXPORT-JOB",
      "KmsKeyId": "arn:aws:kms:region:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }
  }
}
```

*Exportación de Provider Access con eliminación de datos ExplanationOfBenefit financieros*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Observation,Condition,MedicationRequest,ExplanationOfBenefit&exportType=hl7.fhir.us.davinci-pdex&_includeEOB2xWoFinancial=true
```

*Payer-to-Payer exportar*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Coverage,ExplanationOfBenefit,Condition,Procedure&exportType=hl7.fhir.us.davinci-pdex.p2p&_includeEOB2xWoFinancial=true
```

*Exportación de Member Access para un paciente específico*

```
GET https://healthlake.{region}.amazonaws.com/datastore/{datastoreId}/r4/Group/example-group/$davinci-data-export?_type=Patient,Observation,Condition,ExplanationOfBenefit,MedicationRequest&exportType=hl7.fhir.us.davinci-pdex.member&patient=Patient/example-patient-id
```

## Respuesta de ejemplo
<a name="davinci-data-export-sample-response"></a>

```
{
  "datastoreId": "eaee622d8406b41eb86c0f4741201ff9",
  "jobStatus": "SUBMITTED",
  "jobId": "48d7b91dae4a64d00d54b70862f33f61"
}
```

## Relaciones de recursos
<a name="davinci-data-export-resource-relationships"></a>

La operación exporta los recursos en función de sus relaciones dentro de la lista de atribuciones de miembros:

```
Group (Attribution List)
├── Patient (Members)
├── Coverage → RelatedPerson (Subscribers)
├── Practitioner (Attributed Providers)
├── PractitionerRole → Location
└── Organization (Attributed Providers)
```

### Fuentes de recursos
<a name="davinci-data-export-resource-sources"></a>


| Recurso | Ubicación de la fuente | Description (Descripción) | 
| --- | --- | --- | 
| Patient | Group.member.entity | Los pacientes que son miembros de la lista de atribuciones | 
| Coverage | Group.member.extension:coverageReference | Cobertura que dio lugar a la afiliación de los pacientes | 
| Organization | Group.member.extension:attributedProvider | Organizaciones a las que se atribuyen los pacientes | 
| Practitioner | Group.member.extension:attributedProvider | Profesionales individuales a los que se atribuyen los pacientes | 
| PractitionerRole | Group.member.extension:attributedProvider | Funciones de los profesionales a las que se atribuyen los pacientes | 
| RelatedPerson | Coverage.subscriber | Suscriptores de la cobertura | 
| Location | PractitionerRole.location | Ubicaciones asociadas a las funciones de los profesionales | 
| Group | Punto final de entrada | La propia lista de atribuciones | 

## Gestión de trabajos
<a name="davinci-data-export-job-management"></a>

Comprobar el estado del trabajo  
`GET [base]/export/[job-id]`

Cancelar trabajo  
`DELETE [base]/export/[job-id]`

### Ciclo de vida del trabajo
<a name="davinci-data-export-job-lifecycle"></a>
+ `SUBMITTED`- Se ha recibido el trabajo y se ha puesto en cola
+ `IN_PROGRESS`- Job se está procesando activamente
+ `COMPLETED`- Job finalizado correctamente, archivos disponibles para descargar
+ `FAILED`- El trabajo encontró un error

## Output Format (Formato de salida)
<a name="davinci-data-export-output-format"></a>
+ *Formato de archivo*: NDJSON (JSON delimitado por nueva línea)
+ *Organización de archivos*: archivos separados para cada tipo de recurso
+ *Extensión de archivo*: .ndjson
+ *Ubicación: depósito* y ruta de S3 especificados

## Gestión de errores
<a name="davinci-data-export-error-handling"></a>

La operación devuelve una solicitud incorrecta de HTTP 400 con un valor OperationOutcome para las siguientes condiciones:

Errores de autorización  
La función de IAM especificada en `DataAccessRoleArn` no tiene permisos suficientes para realizar la operación de exportación. Para ver la lista completa de los permisos de S3 y KMS necesarios, consulte [Configurar los permisos para los trabajos de exportación](getting-started-setting-up.md#setting-up-export-permissions).

Errores de validación de parámetros  
+ El `patient` parámetro no tiene el formato `Patient/id,Patient/id,...`
+ Una o más referencias de pacientes no son válidas o no pertenecen al grupo especificado
+ El valor del `exportType` parámetro no es un tipo de exportación compatible
+ El `_type` parámetro contiene tipos de recursos que no son compatibles con el tipo de exportación especificado
+ En el `_type` parámetro faltan los tipos de recursos necesarios (`Group`,`Patient`,`Coverage`) para el tipo de `hl7.fhir.us.davinci-atr` exportación
+ El valor del `_includeEOB2xWoFinancial` parámetro no es un booleano válido

Errores de validación de recursos  
+ El recurso de grupo especificado no existe en el banco de datos
+ El recurso de grupo especificado no tiene miembros
+ Uno o más miembros del grupo hacen referencia a recursos para pacientes que no existen en el almacén de datos

## Seguridad y autorización
<a name="davinci-data-export-security"></a>
+ Se aplican los mecanismos de autorización estándar del FHIR
+ La función de acceso a los datos debe tener los permisos de IAM necesarios para las operaciones de S3 y KMS. Para ver la lista completa de los permisos necesarios, consulte [Configurar los permisos para los trabajos de exportación](getting-started-setting-up.md#setting-up-export-permissions).

## Prácticas recomendadas
<a name="davinci-data-export-best-practices"></a>
+ *Selección del tipo de recurso*: solicite únicamente los tipos de recursos que necesite para minimizar el tamaño de la exportación y el tiempo de procesamiento
+ *Filtrado basado en el tiempo*: utilice el `_since` parámetro para exportaciones incrementales
+ *Filtrado de pacientes*: utilice el `patient` parámetro cuando solo necesite datos de miembros específicos
+ *Supervisión del trabajo*: compruebe periódicamente el estado del trabajo para grandes exportaciones
+ *Gestión de errores*: Implemente la lógica de reintento adecuada para los trabajos fallidos
+ *Conocimiento del filtro temporal*: para PDex las exportaciones, tenga en cuenta el filtro temporal de 5 años al seleccionar los tipos de recursos
+ *Eliminación de datos financieros*: `_includeEOB2xWoFinancial=true` utilícelo cuando necesite datos de reclamaciones sin información financiera
+ *Gestión de perfiles*: asegúrese de que los recursos cuenten con las declaraciones de perfil adecuadas, compárelos con los perfiles de destino antes de su ingestión y utilice el control de versiones de los perfiles para controlar el comportamiento de exportación

## Limitaciones
<a name="davinci-data-export-limitations"></a>
+ Se puede especificar un máximo de 500 pacientes en el parámetro `patient`
+ La exportación se limita únicamente a las operaciones a nivel de grupo
+ Solo admite el conjunto predefinido de tipos de recursos para cada tipo de exportación
+ La salida siempre está en formato NDJSON
+ PDex las exportaciones están limitadas a 5 años de datos clínicos y de reclamaciones
+ La transformación de datos financieros solo se aplica a los perfiles CARIN BB 2.x ExplanationOfBenefit 

## Recursos adicionales
<a name="davinci-data-export-additional-resources"></a>
+ [Lista de atribuciones de miembros de Da Vinci (IG)](https://build.fhir.org/ig/HL7/davinci-atr/)
+ [Intercambio de datos de jugadores Da Vinci IG](https://hl7.org/fhir/us/davinci-pdex/)
+ [Sistema de intercambio de datos de pagadores dirigido al consumidor de CARIN](https://build.fhir.org/ig/HL7/carin-bb/)
+ [Guía de implementación básica de EE. UU.](https://www.hl7.org/fhir/us/core/)
+ [Especificación de acceso masivo a datos del FHIR](https://hl7.org/fhir/uv/bulkdata/)

# Generación de documentos clínicos con `$document`
<a name="reference-fhir-operations-document"></a>

AWS HealthLake ahora es compatible con el `$document` funcionamiento de los recursos de Composition, lo que le permite generar un documento clínico completo agrupando la composición con todos sus recursos de referencia en un único paquete cohesivo. Esta operación es esencial para las aplicaciones de atención médica que necesitan:
+ Cree documentos clínicos estandarizados
+ Intercambie los registros completos de los pacientes
+ Almacene documentación clínica completa
+ Genere informes que incluyan todo el contexto relevante

## De uso
<a name="document-usage"></a>

La `$document` operación se puede invocar en los recursos de Composition mediante los métodos GET y POST:

**Operaciones admitidas**  


```
GET/POST [base]/Composition/[id]/$document
```

## Parámetros admitidos
<a name="document-parameters"></a>

HealthLake admite el siguiente `$document` parámetro FHIR:


| Parámetro | Tipo | Obligatorio/a | Predeterminado | Description (Descripción) | 
| --- | --- | --- | --- | --- | 
| persist | booleano | No | false | Booleano que indica si el servidor debe almacenar el paquete de documentos generado | 

## Ejemplos
<a name="document-examples"></a>

**Solicitud GET**  


```
GET [base]/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57/$document?persist=true
```

**Solicitud POST con parámetros**  


```
POST [base]/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57/$document
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "persist",
      "valueBoolean": true
    }
  ]
}
```

**Respuesta de ejemplo**  
La operación devuelve un recurso de paquete del tipo «documento» que contiene la composición y todos los recursos a los que se hace referencia:

```
{
  "resourceType": "Bundle",
  "id": "180f219f-97a8-486d-99d9-ed631fe4fc57",
  "type": "document",
  "identifier": {
    "system": "urn:ietf:rfc:3986",
    "value": "urn:uuid:0c3151bd-1cbf-4d64-b04d-cd9187a4c6e0"
  },
  "timestamp": "2024-06-21T15:30:00Z",
  "entry": [
    {
      "fullUrl": "http://example.org/fhir/Composition/180f219f-97a8-486d-99d9-ed631fe4fc57",
      "resource": {
        "resourceType": "Composition",
        "id": "180f219f-97a8-486d-99d9-ed631fe4fc57",
        "status": "final",
        "type": {
          "coding": [
            {
              "system": "http://loinc.org",
              "code": "34133-9",
              "display": "Summary of Episode Note"
            }
          ]
        },
        "subject": {
          "reference": "Patient/example"
        },
        "section": [
          {
            "title": "Allergies",
            "entry": [
              {
                "reference": "AllergyIntolerance/123"
              }
            ]
          }
        ]
      }
    },
    {
      "fullUrl": "http://example.org/fhir/Patient/example",
      "resource": {
        "resourceType": "Patient",
        "id": "example",
        "name": [
          {
            "family": "Smith",
            "given": ["John"]
          }
        ]
      }
    },
    {
      "fullUrl": "http://example.org/fhir/AllergyIntolerance/123",
      "resource": {
        "resourceType": "AllergyIntolerance",
        "id": "123",
        "patient": {
          "reference": "Patient/example"
        },
        "code": {
          "coding": [
            {
              "system": "http://snomed.info/sct",
              "code": "418689008",
              "display": "Allergy to penicillin"
            }
          ]
        }
      }
    }
  ]
}
```

## Comportamiento
<a name="document-behavior"></a>

La `$document` operación:

1. Toma el recurso de composición especificado como base del documento

1. Identifica y recupera todos los recursos a los que hace referencia directamente la composición

1. Empaqueta la composición y todos los recursos a los que se hace referencia en un paquete del tipo «documento»

1. Almacena el paquete de documentos generado en el almacén de datos cuando el parámetro de persistencia se establece en true

1. Identifica y recupera los recursos a los que hace referencia indirectamente la composición para una generación completa de documentos

Actualmente, la `$document` operación admite la recuperación de referencias a recursos en el siguiente formato:

1. 

   ```
   GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Resource/id
   ```

1. Recurso/ID

Las referencias a recursos no admitidas en el recurso de composición se eliminarán del documento generado.

## Gestión de errores
<a name="document-error-handling"></a>

La operación gestiona las siguientes condiciones de error:
+ 400 Solicitud errónea: `$document` operación no válida (solicitud no conforme) o si el documento resultante no pasa la validación del FHIR debido a que se filtraron las referencias cuando persisten está establecido en true
+ 404 No encontrado: no se ha encontrado el recurso de composición

Para obtener más información sobre la especificación de la `$document` operación, consulte la documentación de [composición `$document` del FHIR R4](https://www.hl7.org/fhir/R4/composition-operation-document.html).

# Eliminar recursos de forma permanente con `$erase`
<a name="reference-fhir-operations-erase"></a>

AWS HealthLake admite la `$erase` operación, lo que permite la eliminación permanente de un recurso específico y sus versiones históricas. Esta operación resulta especialmente útil cuando se necesita:
+ Eliminar permanentemente los recursos individuales
+ Eliminar historiales de versiones específicos
+ Gestione los ciclos de vida de los recursos individuales
+ Cumpla con los requisitos específicos de eliminación de datos

## De uso
<a name="erase-usage"></a>

La `$erase` operación se puede invocar en dos niveles:

**Nivel de instancia de recurso**  


```
POST [base]/[ResourceType]/[ID]/$erase?deleteAuditEvent=true
```

**Nivel específico de la versión**  


```
POST [base]/[ResourceType]/[ID]/_history/[VersionID]/$erase
```

## Parameters
<a name="erase-parameters"></a>


| Parámetro | Tipo | Obligatorio/a | Predeterminado | Description (Descripción) | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | booleano | No | false | Si es verdadero, elimina los eventos de auditoría asociados | 

## Ejemplos
<a name="erase-examples"></a>

**Solicitud de ejemplo**  


```
POST [base]/Patient/example-patient/$erase
```

**Respuesta de ejemplo**  


```
{
      "jobId": "5df47e2f51ff3c731847678cb8cad48e",
      "jobStatus": "SUBMITTED"
    }
```

## Estado del trabajo
<a name="erase-job-status"></a>

Para comprobar el estado de un trabajo de borrado:

```
GET [base]/$erase/[jobId]
```

La operación devuelve información sobre el estado del trabajo:

```
{
      "datastoreId": "36622996b1fcecb7e12ee2ee085308d3",
      "jobId": "5df47e2f51ff3c731847678cb8cad48e",
      "status": "COMPLETED",
      "submittedTime": "2025-10-30T16:39:24.160Z"
    }
```

## Comportamiento
<a name="erase-behavior"></a>

La `$erase` operación:

1. Procesa de forma asíncrona para garantizar la integridad de los datos

1. Mantiene las transacciones ACID

1. Proporciona un seguimiento del estado del trabajo

1. Elimina permanentemente el recurso especificado y sus versiones

1. Incluye un registro de auditoría completo de las actividades de eliminación

1. Soporta la eliminación selectiva de eventos de auditoría

## Registro de auditoría
<a name="erase-audit-logging"></a>

La `$erase` operación se registra DeleteResource con el ID de usuario, la marca de tiempo y los detalles del recurso.

## Limitaciones
<a name="erase-limitations"></a>
+ `$erased`el recurso no aparecerá en los resultados de búsqueda ni `_history` en las consultas.
+ Es posible que los recursos que se estén borrando estén inaccesibles temporalmente durante el procesamiento
+ La medición del almacenamiento se ajusta inmediatamente a medida que los recursos se eliminan permanentemente

# Obtener datos de pacientes con `Patient/$everything`
<a name="reference-fhir-operations-everything"></a>

 La `Patient/$everything` operación se utiliza para consultar un `Patient` recurso del FHIR, junto con cualquier otro recurso relacionado con él. `Patient` La operación se puede utilizar para proporcionar a un paciente acceso a su historial completo o para que un proveedor realice una descarga masiva de datos relacionados con un paciente. HealthLakeapoyos `Patient/$everything` para un paciente específico`id`.

`Patient/$everything`es una operación de la API REST del FHIR que se puede invocar como se muestra en los ejemplos siguientes.

------
#### [ GET request ]

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything
```

------

**nota**  
Los recursos en respuesta se ordenan por tipo de recurso y recurso`id`.  
La respuesta siempre se rellena con`Bundle.total`. 

## Parámetros `Patient/$everything`
<a name="patient-everything-query-params"></a>

HealthLake admite los siguientes parámetros de consulta


| Parámetro | Details | 
| --- | --- | 
|  iniciar  |  Obtenga todos los `Patient` datos después de una fecha de inicio especificada.  | 
|  finales  |  Obtenga todos los `Patient` datos antes de una fecha de finalización especificada.  | 
|  since  |  Actualice todos `Patient` los datos después de una fecha específica.  | 
|  \$1tipo  |  Obtenga `Patient` datos para tipos de recursos específicos.  | 
|  \$1count  |  Obtenga `Patient` datos y especifique el tamaño de la página.  | 

**Example - Obtenga todos los datos del paciente después de una fecha de inicio específica**  
`Patient/$everything`puede usar el `start` filtro para consultar solo los datos después de una fecha específica.   

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?start=2024-03-15T00:00:00.000Z
```

**Example - Obtenga todos los `Patient` datos antes de una fecha de finalización especificada**  
El paciente \$1everything puede usar el `end` filtro solo para consultar datos anteriores a una fecha específica.   

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?end=2024-03-15T00:00:00.000Z
```

**Example - Actualice todos los `Patient` datos después de una fecha específica**  
`Patient/$everything`puede usar el `since` filtro para consultar solo los datos actualizados después de una fecha específica.  

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?since=2024-03-15T00:00:00.000Z
```

**Example - Obtenga `Patient` datos para tipos de recursos específicos**  
El paciente \$1everything puede usar el `_type` filtro para especificar tipos de recursos específicos que se incluirán en la respuesta. Se pueden especificar varios tipos de recursos en una lista separada por comas.   

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_type=Observation,Condition
```

**Example - Obtenga `Patient` datos y especifique el tamaño de la página**  
Patient \$1everything puede usar el `_count` para configurar el tamaño de la página.   

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/id/$everything?_count=15
```

## `Patient/$everything``start`y atributos `end`
<a name="reference-patient-everything-start-end-attributes"></a>

HealthLake admite los siguientes atributos de recurso para los parámetros de `end` consulta `Patient/ $everything` `start` y.


| Recurso | Elemento de recurso | 
| --- | --- | 
| Cuenta | Account.ServicePeriod.start | 
| AdverseEvent | AdverseEvent.fecha | 
| AllergyIntolerance | AllergyIntolerance. Fecha de registro | 
| Cita | Cita. Inicio | 
| AppointmentResponse | AppointmentResponse.iniciar | 
| AuditEvent | AuditEvent.periodo.inicio | 
| Basic | Básico. Creado | 
| BodyStructure | NO\$1DATE | 
| CarePlan | CarePlan.periodo.inicio | 
| CareTeam | CareTeam.periodo.inicio | 
| ChargeItem | ChargeItem. occurrenceDateTime, ChargeItem .OccurrencePeriod.Start, .OccurrenceTiming.Event ChargeItem | 
| Reclamación | Reclamación. Periodo facturable. Start | 
| ClaimResponse | ClaimResponse.creado | 
| ClinicalImpression | ClinicalImpression.fecha | 
| Comunicación | Comunicación. Enviada | 
| CommunicationRequest | CommunicationRequest. occurrenceDateTime,. Periodo de aparición CommunicationRequest. Inicio | 
| Composición | Composición.Fecha | 
| Condición | Condición. Fecha de registro | 
| Consentimiento | Consentimiento. Fecha y hora | 
| Cobertura | Cobertura. Periodo. Inicio | 
| CoverageEligibilityRequest | CoverageEligibilityRequest.creado | 
| CoverageEligibilityResponse | CoverageEligibilityResponse.creado | 
| DetectedIssue | DetectedIssue.identificado | 
| DeviceRequest | DeviceRequest.autor en | 
| DeviceUseStatement | DeviceUseStatement. Grabado en | 
| DiagnosticReport | DiagnosticReport... efectivo | 
| DocumentManifest | DocumentManifest.creado | 
| DocumentReference | DocumentReference.context.period.start | 
| Encuentro | Encuentro, punto, inicio | 
| EnrollmentRequest | EnrollmentRequest.creado | 
| EpisodeOfCare | EpisodeOfCare.periodo.inicio | 
| ExplanationOfBenefit | ExplanationOfBenefit.Periodo facturable. Inicio | 
| FamilyMemberHistory | SIN FECHA | 
| Indicador | Bander.Period.Start | 
| Objetivo | Objetivo. Fecha de estado | 
| Group | SIN FECHA | 
| ImagingStudy | ImagingStudy.iniciado | 
| Inmunización | Inmunización. Registrada | 
| ImmunizationEvaluation | ImmunizationEvaluation.fecha | 
| ImmunizationRecommendation | ImmunizationRecommendation.fecha | 
| Factura | Factura.fecha | 
| Enumeración | Fecha de lista | 
| MeasureReport | MeasureReport.periodo.inicio | 
| Multimedia | Medios de comunicación. Emitido | 
| MedicationAdministration | MedicationAdministration... efectivo | 
| MedicationDispense | MedicationDispense. Cuando esté preparado | 
| MedicationRequest | MedicationRequest. escrito en | 
| MedicationStatement | MedicationStatement.fecha afirmada | 
| MolecularSequence | SIN FECHA | 
| NutritionOrder | NutritionOrder.Fecha y hora | 
| Observación | Observación. Efectiva | 
| Paciente | NO\$1DATE | 
| Persona | SIN FECHA | 
| Procedimiento | Procedimiento. Realizado | 
| Procedencia | Procedencia. Periodo ocurrido. Inicio, procedencia. occurredDateTime | 
| QuestionnaireResponse | QuestionnaireResponse.creado | 
| RelatedPerson | NO\$1DATE | 
| RequestGroup | RequestGroup.autor el | 
| ResearchSubject | ResearchSubject.. punto | 
| RiskAssessment | RiskAssessment. occurrenceDateTime,. Periodo de aparición RiskAssessment. Inicio | 
| Schedule | Schedule.Planning Horizon | 
| ServiceRequest | ServiceRequest. Autor en | 
| Ejemplar | Espécimen. Hora de recepción | 
| SupplyDelivery | SupplyDelivery. occurrenceDateTime, SupplyDelivery .OccurrencePeriod.Start, .OccurrenceTiming.Event SupplyDelivery | 
| SupplyRequest | SupplyRequest. Escrito el | 
| VisionPrescription | VisionPrescription.Fecha de escritura | 

# Recuperación de ValueSet códigos con `$expand`
<a name="reference-fhir-operations-expand"></a>

AWS HealthLake ahora es compatible con la `$expand` operación ValueSets que usted haya introducido como cliente, lo que le permite recuperar la lista completa de códigos contenidos en esos ValueSet recursos. Esta operación resulta especialmente útil cuando se necesita:
+ Recupere todos los códigos posibles con fines de validación
+ Muestra las opciones disponibles en las interfaces de usuario
+ Realice búsquedas de código exhaustivas dentro de un contexto terminológico específico

## De uso
<a name="expand-usage"></a>

La `$expand` operación se puede invocar en ValueSet los recursos mediante los métodos GET y POST:

**Operaciones admitidas**  


```
GET/POST [base]/ValueSet/[id]/$expand
GET [base]/ValueSet/$expand?url=http://example.com
POST [base]/ValueSet/$expand
```

## Parámetros admitidos
<a name="expand-parameters"></a>

HealthLake admite un subconjunto de parámetros del FHIR `$expand` R4:


| Parámetro | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| url | uri | No | URL canónica del que se va a expandir ValueSet  | 
| id | id | No | ValueSet identificador del recurso que se va a expandir (para operaciones GET o POST) | 
| filter | cadena | No | Filtra el resultado de la expansión del código | 
| count | entero | No | Número de códigos a devolver | 
| offset | entero | No | Número de códigos coincidentes que se deben omitir antes de la devolución. Se aplica después del filtrado y solo a los códigos coincidentes, no a todo el contenido del original sin filtrar ValueSet | 

## Ejemplos
<a name="expand-examples"></a>

**Solicitud GET por ID**  


```
GET [base]/ValueSet/example-valueset/$expand
```

**OBTENGA la solicitud por URL con filtro**  


```
GET [base]/ValueSet/$expand?url=http://example.com/ValueSet/my-valueset&filter=male&count=5
```

**Solicitud POST con parámetros (por ID)**  


```
POST [base]/ValueSet/example-valueset/$expand
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "count",
      "valueInteger": 10
    },
    {
      "name": "filter",
      "valueString": "admin"
    }
  ]
}
```

**Solicitud POST con parámetros (por URL)**  


```
POST [base]/ValueSet/$expand
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "url",
      "valueUri": "http://hl7.org/fhir/ValueSet/administrative-gender"
    },
    {
      "name": "count",
      "valueInteger": 10
    }
  ]
}
```

**Respuesta de ejemplo**  
La operación devuelve un ValueSet recurso con un `expansion` elemento que contiene los códigos expandidos:

```
{
  "resourceType": "ValueSet",
  "id": "administrative-gender",
  "status": "active",
  "expansion": {
    "identifier": "urn:uuid:12345678-1234-1234-1234-123456789abc",
    "timestamp": "2024-01-15T10:30:00Z",
    "total": 4,
    "parameter": [
      {
        "name": "count",
        "valueInteger": 10
      }
    ],
    "contains": [
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "male",
        "display": "Male"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "female",
        "display": "Female"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "other",
        "display": "Other"
      },
      {
        "system": "http://hl7.org/fhir/administrative-gender",
        "code": "unknown",
        "display": "Unknown"
      }
    ]
  }
}
```

La respuesta incluye:
+ expansion.total: número total de códigos en el expandido ValueSet
+ expansion.contains: matriz de códigos expandidos con su sistema, código y valores de visualización
+ expansion.parameter: parámetros utilizados en la solicitud de expansión

Para obtener más información sobre la especificación de `$expand` operación, consulte la documentación del [FHIR](https://build.fhir.org/valueset-operation-expand.html) R4. ValueSet `$expand`

# Exportación HealthLake de datos con FHIR `$export`
<a name="reference-fhir-operations-export"></a>

Puede exportar datos de forma masiva desde su almacén de HealthLake datos mediante la operación \$1export de FHIR. HealthLake admite el `$export` uso `POST` y las solicitudes del FHIR. `GET` Para realizar una solicitud de exportación`POST`, debe tener un usuario, grupo o rol de IAM con los permisos necesarios, especificarlo `$export` como parte de la solicitud e incluir los parámetros deseados en el cuerpo de la solicitud.

**nota**  
Todas las solicitudes de HealthLake exportación realizadas mediante FHIR `$export` se devuelven en `ndjson` formato y se exportan a un bucket de Amazon S3, donde cada objeto de Amazon S3 contiene solo un tipo de recurso FHIR.  
Puede poner en cola las solicitudes de exportación según las cuotas de servicio de la AWS cuenta. Para obtener más información, consulte [Cuotas de servicio](reference-healthlake-endpoints-quotas.md#reference-healthlake-quotas).

HealthLake admite los siguientes tres tipos de solicitudes de punto final de exportación masiva.


**HealthLake `$export`tipos masivos**  

| Tipo de exportación | Description (Descripción) | Sintaxis | 
| --- | --- | --- | 
| Sistema | Exporte todos los datos del servidor HealthLake FHIR. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export`  | 
| Todos los pacientes | Exporte todos los datos relacionados con todos los pacientes, incluidos los tipos de recursos asociados al tipo de recurso del paciente. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export` | 
| Grupo de pacientes | Exporte todos los datos relacionados con un grupo de pacientes especificado con un identificador de grupo. | `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` `GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export` | 

## Antes de empezar
<a name="export-rest-before-you-begin"></a>

Cumpla los siguientes requisitos para realizar una solicitud de exportación mediante la API REST del FHIR para HealthLake.
+ Debe haber configurado un usuario, grupo o rol que tenga los permisos necesarios para realizar la solicitud de exportación. Para obtener más información, consulte [Autorizar una solicitud `$export`](#export-rest-auth).
+ Debe haber creado un rol de servicio que conceda HealthLake acceso al bucket de Amazon S3 al que quiere que se exporten sus datos. El rol de servicio también debe especificarse HealthLake como principal de servicio. Para obtener más información sobre la configuración de permisos, consulte[Configurar los permisos para los trabajos de exportación](getting-started-setting-up.md#setting-up-export-permissions).

## Autorizar una solicitud `$export`
<a name="export-rest-auth"></a>

Para realizar correctamente una solicitud de exportación mediante la API REST de FHIR, autorice a su usuario, grupo o rol mediante IAM o .0. OAuth2 También debe tener un rol de servicio.

**Autorizar una solicitud mediante IAM**  
Al realizar una `$export` solicitud, el usuario, el grupo o el rol deben incluir las acciones de IAM en la política. Para obtener más información, consulte [Configurar los permisos para los trabajos de exportación](getting-started-setting-up.md#setting-up-export-permissions).

**Autorizar una solicitud mediante SMART en el FHIR (2.0) OAuth**  
Al realizar una `$export` solicitud en un almacén de HealthLake datos compatible con SMART on FHIR, debe tener asignados los ámbitos adecuados. Para obtener más información, consulte [Los alcances de los recursos de SMART on FHIR son: HealthLake](reference-smart-on-fhir-oauth-scopes.md#smart-on-fhir-scopes-rest).

**nota**  
El FHIR `$export` y `GET` las solicitudes requieren el mismo método de autenticación o el mismo token de soporte (en el caso de SMART en el FHIR) para solicitar la exportación y la recuperación de archivos. Los archivos exportados mediante el FHIR `$export` con `GET` están disponibles para su descarga durante 48 horas.

## ¿Hacer una solicitud `$export`
<a name="export-rest-request"></a>

En esta sección se describen los pasos necesarios que debe seguir al realizar una solicitud de exportación mediante la API REST del FHIR.

Para evitar cargos accidentales en tu AWS cuenta, te recomendamos probar tus solicitudes realizando una `POST` solicitud sin proporcionar la `$export` sintaxis.

Para realizar la solicitud, debes hacer lo siguiente:

1. Especifique `$export` en la URL de la `POST` solicitud un punto final compatible.

1. Especifique los parámetros de cabecera necesarios.

1. Especifique el cuerpo de la solicitud que defina los parámetros necesarios.

### Paso 1: especifique `$export` en la URL de la `POST` solicitud un [punto final](reference-healthlake-endpoints-quotas.md#reference-healthlake-endpoints) compatible.
<a name="export-rest-request-step-1"></a>

HealthLake admite tres tipos de solicitudes de punto final de exportación masiva. Para realizar una solicitud de exportación masiva, debe realizar una solicitud `POST` basada en uno de los tres puntos de enlace compatibles. Los siguientes ejemplos muestran dónde especificar `$export` en la URL de la solicitud.
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/$export`
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient/$export`
+ `POST https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Group/id/$export`

Puede utilizar los siguientes parámetros de búsqueda admitidos en la cadena de `POST` solicitud.

#### Parámetros de búsqueda compatibles
<a name="export-rest-query-parameters"></a>

HealthLake admite los siguientes modificadores de búsqueda en las solicitudes de exportación masiva.

Los siguientes ejemplos incluyen caracteres especiales que deben codificarse antes de enviar la solicitud.


| Name | ¿Obligatorio? | Description (Descripción) | Ejemplo | 
| --- | --- | --- | --- | 
| \$1outputFormat | No | El formato para generar los archivos de datos masivos solicitados. Los valores aceptados sonapplication/fhir\$1ndjson,application/ndjson,ndjson. |  | 
| \$1type | No | Cadena de tipos de recursos FHIR delimitados por comas que desea incluir en su trabajo de exportación. Recomendamos incluirlo \$1type porque esto puede tener repercusiones en los costes cuando se exportan todos los recursos. | &\$1type=MedicationStatement, Observation | 
| \$1since | No | Tipos de recursos modificados en o después de la marca de fecha y hora. Si un tipo de recurso no tiene una hora de última actualización, se incluirá en la respuesta. | &\$1since=2024-05-09T00%3A00%3A00Z | 
| \$1until | No | Tipos de recursos modificados en o antes de la fecha y hora. Se utiliza en combinación con \$1since para definir un intervalo de tiempo específico para la exportación. Si un tipo de recurso no tiene una hora de última actualización, se excluirá de tu respuesta. | &\$1until=2024-12-31T23%3A59%3A59Z | 

### Paso 2: especifique los parámetros de cabecera necesarios
<a name="export-rest-request-step-2"></a>

Para realizar una solicitud de exportación mediante la API REST del FHIR, debe especificar los siguientes parámetros de encabezado.
+ Content-Type: `application/fhir+json`
+ Prefiero: `respond-async`

A continuación, debe especificar los elementos necesarios en el cuerpo de la solicitud.

### Paso 3: especifique un cuerpo de solicitud que defina los parámetros necesarios.
<a name="export-rest-request-step-3"></a>

La solicitud de exportación también requiere un cuerpo en `JSON` formato. El cuerpo puede incluir los siguientes parámetros.


| Key | ¿Obligatorio? | Description (Descripción) | Valor | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | Sí | Un ARN de un rol de HealthLake servicio. El rol de servicio utilizado debe especificarse HealthLake como principal de servicio. | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| JobName | No | El nombre de la solicitud de exportación. | your-export-job-name | 
| S3Uri | Sí | Parte de una OutputDataConfig clave. El URI de S3 del depósito de destino donde se descargarán los datos exportados. | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | Sí | Parte de una OutputDataConfig clave. El ARN de la AWS KMS clave utilizada para proteger el bucket de Amazon S3. | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example Cuerpo de una solicitud de exportación realizada mediante la API REST del FHIR**  
Para realizar una solicitud de exportación mediante la API REST del FHIR, debe especificar un cuerpo, como se muestra a continuación.  

```
{
  "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  "JobName": "your-export-job",
  "OutputDataConfig": {
    "S3Configuration": {
      "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB",
      "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    }
  }
}
```

Cuando la solicitud se realice correctamente, recibirá la siguiente respuesta.

*Encabezado de respuesta*

```
content-location: https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id
```

*Cuerpo de respuesta*

```
{
  "datastoreId": "your-data-store-id",
  "jobStatus": "SUBMITTED",
  "jobId": "your-export-request-job-id"
}
```

## Gestionar tu solicitud de exportación
<a name="export-rest-management"></a>

Tras realizar correctamente una solicitud de exportación, puedes gestionarla `$export` para describir el estado de una solicitud de exportación actual y `$export` cancelar una solicitud de exportación actual.

Cuando cancelas una solicitud de exportación mediante la API REST, solo se te facturará la parte de los datos que se exportaron hasta el momento en que enviaste la solicitud de cancelación.

En los siguientes temas se describe cómo puede obtener el estado de una solicitud de exportación actual o cancelarla.

### Cancelar una solicitud de exportación
<a name="export-rest-management-describe"></a>

Para cancelar una solicitud de exportación, realice una `DELETE` solicitud e introduzca el identificador de trabajo en la URL de la solicitud.

```
DELETE https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-job-id
```

Cuando la solicitud se realice correctamente, recibirá lo siguiente.

```
{
  "exportJobProperties": {
    "jobId": "your-original-export-request-job-id",
    "jobStatus": "CANCEL_SUBMITTED",
    "datastoreId": "your-data-store-id"
  }
}
```

Si su solicitud no se acepta, recibirá lo siguiente.

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-supported",
      "diagnostics": "Interaction not supported."
    }
  ]
}
```

### Describir una solicitud de exportación
<a name="export-rest-management-describe"></a>

Para conocer el estado de una solicitud de exportación, haga una `GET` solicitud utilizando `export` y su`export-request-job-id`.

```
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/export/your-export-request-id
```

La respuesta de JSON contendrá un `ExportJobProperties` objeto. Puede contener los siguientes pares clave-valor.


| Name | ¿Obligatorio? | Description (Descripción) | Valor | 
| --- | --- | --- | --- | 
| DataAccessRoleArn | No | Un ARN de un rol de HealthLake servicio. El rol de servicio utilizado debe especificarse HealthLake como principal de servicio. | arn:aws:iam::444455556666:role/your-healthlake-service-role | 
| SubmitTime | No | Fecha y hora en que se envió un trabajo de exportación. | Apr 21, 2023 5:58:02 | 
| EndTime | No | La hora en que se completó un trabajo de exportación. | Apr 21, 2023 6:00:08 PM | 
| JobName | No | El nombre de la solicitud de exportación. | your-export-job-name | 
| JobStatus | No |  | Los valores válidos son:<pre>SUBMITTED | IN_PROGRESS | COMPLETED_WITH_ERRORS | COMPLETED |<br />      FAILED</pre> | 
| S3Uri | Sí | Parte de un [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)objeto. El URI de Amazon S3 del depósito de destino donde se descargarán los datos exportados. | s3://amzn-s3-demo-bucket/EXPORT-JOB/ | 
| KmsKeyId | Sí | Parte de un [OutputDataConfig](https://docs.aws.amazon.com/healthlake/latest/APIReference/API_OutputDataConfig.html)objeto. El ARN de la AWS KMS clave utilizada para proteger el bucket de Amazon S3. | arn:aws:kms:region-of-bucket:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab | 

**Example : Cuerpo de una solicitud de exportación descrita realizada mediante la API REST del FHIR**  
Si se ejecuta correctamente, obtendrá la siguiente respuesta en JSON.  

```
{
  "exportJobProperties": {
    "jobId": "your-export-request-id",
    "JobName": "your-export-job",
    "jobStatus": "SUBMITTED",
    "submitTime": "Apr 21, 2023 5:58:02 PM",
    "endTime": "Apr 21, 2023 6:00:08 PM",
    "datastoreId": "your-data-store-id",
    "outputDataConfig": {
      "s3Configuration": {
        "S3Uri": "s3://amzn-s3-demo-bucket/EXPORT-JOB",
        "KmsKeyId": "arn:aws:kms:region-of-bucket:444455556666:key/1234abcd-12ab-34cd-56ef-1234567890ab""
      }
    },
    "DataAccessRoleArn": "arn:aws:iam::444455556666:role/your-healthlake-service-role",
  }
}
```

# `$inquire`Operación FHIR para HealthLake
<a name="reference-fhir-operations-inquire"></a>

La `$inquire` operación le permite comprobar el estado de una solicitud de autorización previa presentada anteriormente. Esta operación implementa la [Guía de implementación de Da Vinci Prior Authorization Support (PAS)](https://hl7.org/fhir/us/davinci-pas/), que proporciona un flujo de trabajo estandarizado basado en el FHIR para recuperar la decisión de autorización actual.

## Funcionamiento
<a name="inquire-how-it-works"></a>
+ **Enviar consulta**: envías un paquete FHIR que contiene la reclamación que deseas comprobar y la información justificativa
+ **Búsqueda**: HealthLake busca la correspondiente ClaimResponse en su almacén de datos
+ **Recuperar**: se recupera el estado de autorización más reciente
+ **Responder**: recibirá una respuesta inmediata con el estado actual de la autorización (en cola, aprobada, denegada, etc.)

**nota**  
`$inquire`es una **operación de solo lectura** que recupera el estado de autorización existente. No modifica ni actualiza ningún recurso del almacén de datos.

## Punto de conexión de la API
<a name="inquire-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Claim/$inquire  
Content-Type: application/fhir+json
```

## Estructura de la solicitud
<a name="inquire-request-structure"></a>

### Requisitos del paquete
<a name="inquire-bundle-requirements"></a>

Su solicitud debe ser un recurso del paquete FHIR con:
+ **Tipo de paquete: debe ser** `"collection"`
+ **Bundle.entry****: debe contener exactamente un recurso de reclamación con:**
  + `use = "preauthorization"`
  + `status = "active"`
+ **Recursos de referencia**: todos los recursos a los que se hace referencia en la reclamación deben incluirse en el paquete

**Consulta por ejemplo**  
Los recursos de tu paquete de entrada sirven como plantilla de búsqueda. HealthLake utiliza la información proporcionada para localizar el correspondiente ClaimResponse.

### Recursos necesarios de
<a name="inquire-required-resources"></a>


| Recurso | Cardinalidad | Perfil | Description (Descripción) | 
| --- | --- | --- | --- | 
| Reclamación | 1 | Consulta de reclamación PAS | La autorización previa sobre la que está solicitando información | 
| ¿Paciente | 1 | Paciente beneficiario del PAS | Información demográfica del paciente | 
| Organización (aseguradora) | 1 | Organización aseguradora PAS | Compañía de seguros | 
| Organización (proveedor) | 1 | Organización solicitante del PAS | Proveedor de atención médica que presentó la solicitud | 

### Criterios de búsqueda importantes
<a name="inquire-search-criteria"></a>

HealthLake busca el ClaimResponse uso de:
+ **Referencia del paciente** recogida en la reclamación
+ **Referencia de la aseguradora** en la reclamación
+ **Referencia del proveedor** en la reclamación
+ **Fecha de creación** a partir de la reclamación (como filtro de tiempo)

**Solo consultas específicas para pacientes**  
Todas las consultas deben estar vinculadas a un paciente específico. No se permiten consultas en todo el sistema sin la identificación del paciente.

## Ejemplo de solicitud
<a name="inquire-example-request"></a>

```
POST /datastore/example-datastore/r4/Claim/$inquire  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType": "Bundle",  
  "id": "PASClaimInquiryBundleExample",  
  "meta": {  
    "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-inquiry-request-bundle"]  
  },  
  "identifier": {  
    "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
    "value": "5269368"  
  },  
  "type": "collection",  
  "timestamp": "2005-05-02T14:30:00+05:00",  
  "entry": [  
    {  
      "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
      "resource": {  
        "resourceType": "Claim",  
        "id": "MedicalServicesAuthorizationExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:01:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "provider": {  
          "reference": "Organization/UMOExample"  
        }  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Patient/SubscriberExample",  
      "resource": {  
        "resourceType": "Patient",  
        "id": "SubscriberExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"]  
        },  
        "name": [{  
          "family": "SMITH",  
          "given": ["JOE"]  
        }],  
        "gender": "male"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/UMOExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "UMOExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
        },  
        "name": "Provider Organization"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/InsurerExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "InsurerExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
        },  
        "name": "Insurance Company"  
      }  
    }  
  ]  
}
```

## Formato de las respuestas
<a name="inquire-response-format"></a>

### Respuesta correcta (200 OK)
<a name="inquire-success-response"></a>

Recibirá un paquete de respuestas a una consulta del PAS que contiene:
+ **ClaimResponse**con el estado de autorización actual; múltiple **ClaimResponse**si coincide con los criterios de búsqueda
+ Todos los recursos originales de tu solicitud (reproducidos)
+ Marca de tiempo del momento en que se recopiló la respuesta

**Posibles resultados ClaimResponse**  



| Resultado | Description (Descripción) | 
| --- | --- | 
| queued | La solicitud de autorización aún está pendiente de revisión | 
| complete | Se ha tomado la decisión de autorizar (compruebe si disposition está aprobada o denegada) | 
| error | Se ha producido un error durante el procesamiento | 
| partial | Autorización parcial concedida | 

```
{  
  "resourceType": "Bundle",  
  "identifier": {  
        "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
        "value": "5269367"  
  },  
  "type": "collection",  
  "timestamp": "2005-05-02T14:30:15+05:00",  
  "entry": [  
    {  
      "fullUrl": "http://example.org/fhir/ClaimResponse/InquiryResponseExample",  
      "resource": {  
        "resourceType": "ClaimResponse",  
        "id": "InquiryResponseExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:05:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "request": {  
          "reference": "Claim/MedicalServicesAuthorizationExample"  
        },  
        "outcome": "complete",  
        "disposition": "Approved",  
        "preAuthRef": "AUTH12345"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
      "resource": {  
        "resourceType": "Claim",  
        "id": "MedicalServicesAuthorizationExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim-inquiry"]  
        },  
        "status": "active",  
        "type": {  
          "coding": [{  
            "system": "http://terminology.hl7.org/CodeSystem/claim-type",  
            "code": "professional"  
          }]  
        },  
        "use": "preauthorization",  
        "patient": {  
          "reference": "Patient/SubscriberExample"  
        },  
        "created": "2005-05-02T11:01:00+05:00",  
        "insurer": {  
          "reference": "Organization/InsurerExample"  
        },  
        "provider": {  
          "reference": "Organization/UMOExample"  
        }  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Patient/SubscriberExample",  
      "resource": {  
        "resourceType": "Patient",  
        "id": "SubscriberExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary"]  
        },  
        "name": [{  
          "family": "SMITH",  
          "given": ["JOE"]  
        }],  
        "gender": "male"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/UMOExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "UMOExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
        },  
        "name": "Provider Organization"  
      }  
    },  
    {  
      "fullUrl": "http://example.org/fhir/Organization/InsurerExample",  
      "resource": {  
        "resourceType": "Organization",  
        "id": "InsurerExample",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
        },  
        "name": "Insurance Company"  
      }  
    }  
  ]  
}
```

## Respuestas de error
<a name="inquire-error-responses"></a>

### 400: solicitud maligna
<a name="inquire-400-error"></a>

Se devuelve cuando el formato de la solicitud no es válido o se produce un error en la validación.

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "required",  
            "diagnostics": "Reference 'Patient/SubscriberExample' at path 'patient' for 'CLAIM' resource not found(at Bundle.entry[0].resource)"  
        }  
    ]  
}
```

### 401 sin autorización
<a name="inquire-401-error"></a>

Se devuelve cuando faltan credenciales de autenticación o no son válidas.

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "forbidden",  
            "diagnostics": "Invalid authorization header"  
        }  
    ]  
}
```

### 403: prohibido
<a name="inquire-403-error"></a>

Se devuelve cuando el usuario autenticado no tiene permiso para acceder al recurso solicitado.

```
{  
    "resourceType": "OperationOutcome",  
    "issue": [  
        {  
            "severity": "error",  
            "code": "exception",  
            "diagnostics": "Insufficient SMART scope permissions."  
        }  
    ]  
}
```

### 400 Cuando no se encuentra ninguno
<a name="inquire-400-none-found"></a>

Se devuelve cuando no ClaimResponse se encuentra ninguna coincidencia con la consulta.

```
{  
  "resourceType": "OperationOutcome",
  "issue": [{
    "severity": "error",
    "code": "not-found",
    "diagnostics": "Resource not found. No ClaimResponse found from the input Claim that matches the specified Claim properties patient, insurer, provider, and created(at Bundle.entry[0].resource)"
  }]
}
```

### 4.15 Tipo de medio no compatible
<a name="inquire-415-error"></a>

Se devuelve cuando el encabezado Content-Type no es application/fhir\$1json.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "value",  
    "diagnostics": "Incorrect MIME-type. Update request Content-Type header."  
  }]  
}
```

### 429 Demasiadas solicitudes
<a name="inquire-429-error"></a>

Se devuelve cuando se superan los límites de velocidad.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "throttled",  
    "diagnostics": "Rate limit exceeded. Please retry after some time."  
  }]  
}
```

## Reglas de validación
<a name="inquire-validation-rules"></a>

HealthLake realiza una validación exhaustiva de su consulta:

### Validación de paquetes
<a name="inquire-bundle-validation"></a>
+ Debe ajustarse al perfil del paquete de solicitud de consulta del PAS
+ `Bundle.type`debe ser `"collection"`
+ Debe contener exactamente un recurso de reclamación
+ Todos los recursos a los que se hace referencia deben incluirse en el paquete

### Validación de la reclamación
<a name="inquire-claim-validation"></a>
+ Debe ajustarse al perfil de consulta de reclamaciones de PAS
+ `Claim.use`debe ser `"preauthorization"`
+ `Claim.status`debe ser `"active"`
+ Campos obligatorios:`patient`,`insurer`,`provider`, `created`

### Validación de recursos
<a name="inquire-resource-validation"></a>
+ Todos los recursos deben ajustarse a sus respectivos perfiles de consulta del PAS
+ Deben estar presentes los recursos de apoyo necesarios (paciente, organización aseguradora, organización proveedora)
+ Las referencias cruzadas deben ser válidas y poder resolverse dentro del paquete

## Especificaciones de rendimiento
<a name="inquire-performance-specs"></a>


| Métrica | Especificación  | 
| --- | --- | 
| Límite de recuento de recursos | 500 recursos por paquete | 
| Límite de tamaño del paquete | 5 MB como máximo | 

## Permisos necesarios
<a name="inquire-required-permissions"></a>

Para utilizar la `$inquire` operación, asegúrese de que su función de IAM tenga:
+ `healthlake:InquirePreAuthClaim`- Para convocar a la operación

**SMART en FHIR Scopes**  
**Alcances mínimos requeridos:**
+ **SMART v1**: `user/ClaimResponse.read`
+ **SMART v2**: `user/ClaimResponse.s`

## Notas importantes sobre la implementación
<a name="inquire-implementation-notes"></a>

### Comportamiento de búsqueda
<a name="inquire-search-behavior"></a>

Al enviar una consulta, HealthLake busca el ClaimResponse uso de:
+ **Referencia del paciente** a partir de la reclamación ingresada
+ **Referencia de la aseguradora** a partir de la reclamación ingresada
+ **Referencia del proveedor** a partir de la reclamación ingresada
+ **Fecha de creación** a partir de la reclamación ingresada (como filtro de tiempo)

**Coincidencias múltiples**: si varias ClaimResponses coinciden con sus criterios de búsqueda, HealthLake devuelve todos los resultados coincidentes. Debe usar la `ClaimResponse.created` marca de tiempo más reciente para identificar el estado más reciente.

### Reclamaciones actualizadas
<a name="inquire-updated-claims"></a>

Si has enviado varias actualizaciones a la misma autorización previa (p. ej., Claim v1.1, v1.2 o v1.3), la `$inquire` operación recuperará la versión ClaimResponse asociada a la **versión más reciente** en función de los criterios de búsqueda proporcionados.

### Operación de solo lectura
<a name="inquire-read-only"></a>

La `$inquire` operación:
+ **Recupera** el estado de autorización existente
+ **Devuelve** el más reciente ClaimResponse
+ **No** modifica ni actualiza ningún recurso
+ **No** crea nuevos recursos
+ **No** desencadena un nuevo procesamiento de autorizaciones

## Ejemplo de flujo de trabajo
<a name="inquire-workflow-example"></a>

**Flujo de trabajo típico de consultas de autorización previa**  


```
1. Provider submits PA request  
   POST /Claim/$submit  
   → Returns ClaimResponse with outcome="queued"  
  
2. Payer reviews request (asynchronous)  
   → Updates ClaimResponse status internally  
  
3. Provider checks status  
   POST /Claim/$inquire  
   → Returns ClaimResponse with outcome="queued" (still pending)  
  
4. Provider checks status again later  
   POST /Claim/$inquire  
   → Returns ClaimResponse with outcome="complete", disposition="Approved"
```

## Operaciones de relacionadas
<a name="inquire-related-operations"></a>
+ `Claim/$submit`- Presente una nueva solicitud de autorización previa o actualice una existente
+ `Patient/$everything`- Recupere datos completos de los pacientes para utilizarlos en el contexto de la autorización previa

# Recuperación de detalles conceptuales con `$lookup`
<a name="reference-fhir-operations-lookup"></a>

AWS HealthLake ahora admite la `$lookup` operación de CodeSystem recursos, lo que le permite recuperar detalles sobre un concepto específico de un sistema de códigos proporcionando información de identificación, como su código. Esta operación resulta especialmente útil cuando se necesita:
+ Recuperar información detallada sobre códigos médicos específicos
+ Valide el significado y las propiedades del código
+ Acceda a las definiciones y relaciones de los conceptos
+ Support la toma de decisiones clínicas con datos terminológicos precisos

## De uso
<a name="lookup-usage"></a>

La `$lookup` operación se puede invocar en CodeSystem los recursos mediante los métodos GET y POST:

**Operaciones admitidas**  


```
GET [base]/CodeSystem/$lookup?system=http://snomed.info/sct&code=73211009&version=20230901
POST [base]/CodeSystem/$lookup
```

## Parámetros admitidos
<a name="lookup-parameters"></a>

HealthLake admite un subconjunto de parámetros del FHIR `$lookup` R4:


| Parámetro | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| code | code | Sí | El código conceptual que está buscando (por ejemplo, «71620000" en SNOMED CT) | 
| system | uri | Sí | [La URL canónica del sistema de códigos (por ejemplo, "http://snomed.info/sct «)](http://snomed.info/sct) | 
| version | cadena | No | Versión específica del sistema de códigos | 

## Ejemplos
<a name="lookup-examples"></a>

**Solicitud GET**  


```
GET [base]/CodeSystem/$lookup?system=http://snomed.info/sct&code=71620000&version=2023-09
```

**Solicitud POST**  


```
POST [base]/CodeSystem/$lookup
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "system",
      "valueUri": "http://snomed.info/sct"
    },
    {
      "name": "code",
      "valueCode": "71620000"
    },
    {
      "name": "version",
      "valueString": "2023-09"
    }
  ]
}
```

**Respuesta de ejemplo**  
La operación devuelve un recurso de parámetros que contiene los detalles del concepto:

```
{
    "resourceType": "Parameters",
    "parameter": [{
            "name": "name",
            "valueString": "SNOMED CT Fractures"
        },
        {
            "name": "version",
            "valueString": "2023-09"
        },
        {
            "name": "display",
            "valueString": "Fracture of femur"
        },
        {
            "name": "property",
            "part": [{
                    "name": "code",
                    "valueCode": "child"
                },
                {
                    "name": "value",
                    "valueCode": "263225007"
                },
                {
                    "name": "description",
                    "valueString": "Fracture of neck of femur"
                }
            ]
        },
        {
            "name": "property",
            "part": [{
                    "name": "code",
                    "valueCode": "child"
                },
                {
                    "name": "value",
                    "valueCode": "263227004"
                },
                {
                    "name": "description",
                    "valueString": "Fracture of shaft of femur"
                }
            ]
        }
    ]
}
```

## Parámetros de respuesta
<a name="lookup-response-parameters"></a>

La respuesta incluye los siguientes parámetros cuando están disponibles:


| Parámetro | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| name | cadena | Nombre del sistema de códigos | 
| version | cadena | Versión del sistema de códigos | 
| display | cadena | Mostrar el nombre del concepto | 
| designation | BackboneElement | Representaciones adicionales para este concepto. | 
| property | BackboneElement | Propiedades adicionales del concepto (definición, relaciones, etc.) | 

## Comportamiento
<a name="lookup-behavior"></a>

La `$lookup` operación:

1. Valida los parámetros necesarios (`code`y`system`)

1. Busca el concepto en el sistema de códigos especificado almacenado en el almacén de datos

1. Devuelve información conceptual detallada, incluidos el nombre para mostrar, las designaciones y las propiedades.

1. Admite búsquedas específicas de la versión cuando se proporciona el parámetro `version`

1. Funciona solo en sistemas de código almacenados explícitamente en el almacén de datos HealthLake 

## Gestión de errores
<a name="lookup-error-handling"></a>

La operación gestiona las siguientes condiciones de error:
+ 400 Solicitud errónea: `$lookup` operación no válida (solicitud no conforme o faltan parámetros obligatorios)
+ 404 No encontrado: no se encontró el sistema de códigos o el código no se encontró en el sistema de códigos especificado

## Advertencias
<a name="lookup-caveats"></a>

En esta versión, no se admite lo siguiente:
+ `$lookup`operación mediante la llamada a servidores terminológicos externos
+ `$lookup`operación CodeSystems gestionada por el almacén de datos HealthLake , pero no almacenada explícitamente en él

Para obtener más información sobre la especificación de la `$lookup` operación, consulte la documentación del [FHIR R4](https://www.hl7.org/fhir/R4/codesystem-operation-lookup.html). CodeSystem `$lookup`

# `$member-add`operación para HealthLake
<a name="reference-fhir-operations-member-add"></a>

La `$member-add` operación del FHIR añade a un miembro (paciente) a un recurso del grupo, específicamente a una lista de atribuciones de miembros. Esta operación forma parte de la Guía de implementación de las atribuciones de DaVinci los miembros y apoya el proceso de conciliación para gestionar las atribuciones de los miembros.

## Operation Endpoint
<a name="member-add-endpoint"></a>

```
POST [base]/datastore/{datastoreId}/r4/Group/{groupId}/$member-add
Content-Type: application/json
```

## Parameters
<a name="member-add-parameters"></a>

La operación acepta un recurso de parámetros del FHIR con las siguientes combinaciones de parámetros:

### Opciones de parámetros
<a name="member-add-parameter-options"></a>

Puede utilizar una de las siguientes combinaciones de parámetros:

Opción 1: ID de miembro \$1 NPI del proveedor  
`memberId` \$1 `providerNpi`  
`memberId` \$1 `providerNpi` \$1 `attributionPeriod`

Opción 2: referencia del paciente \$1 referencia del proveedor  
`patientReference` \$1 `providerReference`  
`patientReference` \$1 `providerReference` \$1 `attributionPeriod`

### Detalles de los parámetros
<a name="member-add-parameter-details"></a>

ID de miembro (opcional)  
El identificador del miembro que se va a añadir al grupo.  
Tipo: identificador  
Sistema: sistema de identificación de pacientes  

```
{
  "name": "memberId",
  "valueIdentifier": {
    "system": "http://example.org/patient-id",
    "value": "patient-new"
  }
}
```

Proveedor NPI (opcional)  
El identificador nacional de proveedores (NPI) del proveedor atribuido.  
Tipo: identificador  
Sistema: http://terminology.hl7. org/CodeSystem/NPI  

```
{
  "name": "providerNpi",
  "valueIdentifier": {
    "system": "http://terminology.hl7.org/CodeSystem/NPI",
    "value": "1234567890"
  }
}
```

Referencia del paciente (opcional)  
Referencia directa al recurso para pacientes que se va a añadir.  
Tipo: Referencia  

```
{
  "name": "patientReference",
  "valueReference": {
    "reference": "Patient/patient-123"
  }
}
```

ProviderReference (opcional)  
Referencia directa al recurso del proveedor.  
Tipo: Referencia  

```
{
  "name": "providerReference",
  "valueReference": {
    "reference": "Practitioner/provider-456"
  }
}
```

Periodo de atribución (opcional)  
El período durante el cual se atribuye el paciente al proveedor.  
Tipo: Periodo  

```
{
  "name": "attributionPeriod",
  "valuePeriod": {
    "start": "2024-07-15",
    "end": "2025-07-14"
  }
}
```

## Ejemplos de solicitudes
<a name="member-add-examples"></a>

### Uso de la identificación de miembro y el NPI del proveedor
<a name="member-add-example-id-npi"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "memberId",
      "valueIdentifier": {
        "system": "http://example.org/patient-id",
        "value": "patient-new"
      }
    },
    {
      "name": "providerNpi",
      "valueIdentifier": {
        "system": "http://terminology.hl7.org/CodeSystem/NPI",
        "value": "1234567890"
      }
    },
    {
      "name": "attributionPeriod",
      "valuePeriod": {
        "start": "2024-07-15",
        "end": "2025-07-14"
      }
    }
  ]
}
```

### Uso de referencias de pacientes y proveedores
<a name="member-add-example-references"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/patient-123"
      }
    },
    {
      "name": "providerReference",
      "valueReference": {
        "reference": "Practitioner/provider-456"
      }
    },
    {
      "name": "attributionPeriod",
      "valuePeriod": {
        "start": "2024-07-15",
        "end": "2025-07-14"
      }
    }
  ]
}
```

## Formato de respuesta
<a name="member-add-response"></a>

### Respuesta de adición exitosa
<a name="member-add-success-response"></a>

```
HTTP Status: 200 OK
Content-Type: application/fhir+json

{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "success",
      "code": "informational",
      "details": {
        "text": "Member Patient/patient-new successfully added to the Member Attribution List."
      }
    }
  ]
}
```

### Respuestas de error
<a name="member-add-error-responses"></a>

Sintaxis de solicitud no válida  
Estado HTTP: 400 solicitud incorrecta  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "invalid",
      "details": {
        "text": "Invalid parameter combination provided"
      }
    }
  ]
}
```

Recurso no encontrado  
Estado HTTP: 404 no encontrado  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-found",
      "details": {
        "text": "Resource not found."
      }
    }
  ]
}
```

Conflicto de versiones  
Estado HTTP: 409 Conflicto  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "conflict",
      "details": {
        "text": "Resource version conflict detected"
      }
    }
  ]
}
```

Estado de atribución no válido  
Estado HTTP: 422 Entidad inprocesable  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "business-rule",
      "details": {
        "text": "Cannot add member to Attribution List with status 'final'. Status must be 'draft' or 'open'."
      }
    }
  ]
}
```

## Reglas de negocio
<a name="member-add-business-rules"></a>

Validación del estado de la atribución  
La operación solo se puede realizar cuando el estado de atribución del grupo es:  
+ `draft`
+ `open`
No se permiten operaciones cuando el estado es`final`.

Prevención de miembros duplicados  
El sistema evita la adición de miembros duplicados en función de la combinación única de:  
+ Identificador de miembro
+ Identificador del pagador
+ Identificador de cobertura

Validación del período de cobertura  
Cuando `attributionPeriod` se proporciona uno, debe estar dentro de los límites del período de cobertura del miembro. El sistema hará lo siguiente:  
+ Busque el recurso de cobertura del miembro
+ Usa la cobertura más reciente (VersionID más alta) si existen varias
+ Valide que el período de atribución no exceda el período de cobertura

Validación de referencia  
Cuando se proporcionan tanto la identificación como la referencia para el mismo recurso (paciente o proveedor), el sistema valida que corresponden al mismo recurso.  
Cuando se proporcionan los campos ID y reference.identifier para el mismo recurso (paciente o proveedor), se produce un error.

## Autenticación y autorización
<a name="member-add-auth"></a>

La operación requiere la autorización de SMART on FHIR para:
+ Permisos de lectura: para validar los recursos de pacientes, proveedores y grupos
+ Permisos de búsqueda: para buscar recursos por identificador
+ Permisos de actualización: para modificar el recurso del grupo

## Comportamiento operativo
<a name="member-add-behavior"></a>

Actualizaciones de recursos  
+ Actualiza el ID de versión del recurso del grupo
+ Crea una entrada en el historial con el estado original del recurso antes de la operación
+ Añade la información de los miembros a la matriz group.Member con:
  + Referencia del paciente en entity.reference
  + Período de atribución en período
  + Información sobre la cobertura y el proveedor en los campos de extensión

Pasos de validación  
+ Validación de parámetros: garantiza la validez de las combinaciones de parámetros
+ Existencia de recursos: valida la existencia de recursos para pacientes, proveedores y grupos
+ Estado de atribución: confirma que el estado del grupo permite modificaciones
+ Verificación duplicada: impide añadir miembros existentes
+ Validación de la cobertura: garantiza que el período de atribución esté dentro de los límites de cobertura

## Limitaciones
<a name="member-add-limitations"></a>
+ Todos los recursos a los que se hace referencia deben estar en el mismo almacén de datos
+ La operación solo funciona con los recursos del grupo de listas de atribución de miembros
+ Los períodos de atribución deben estar dentro de los límites de cobertura
+ No se pueden modificar los grupos con el estado «final»

# `$member-match`operación para HealthLake
<a name="reference-fhir-operations-member-match"></a>

AWS HealthLake ahora apoya la `$member-match` operación de recursos para pacientes, lo que permite a las organizaciones de atención médica encontrar el identificador único de un miembro en diferentes sistemas de salud utilizando información demográfica y de cobertura. Esta operación es esencial para lograr el cumplimiento de los CMS y facilitar el intercambio seguro de payer-to-payer datos, al tiempo que se mantiene la privacidad de los pacientes.

Esta operación resulta especialmente útil cuando se necesita:
+ Permitir el intercambio seguro de datos de salud entre organizaciones
+ Mantenga la continuidad de la atención de los pacientes en los diferentes sistemas
+ Support CMS cumple con los requisitos
+ Facilite la identificación precisa de los miembros en todas las redes de atención médica

## De uso
<a name="member-match-usage"></a>

La `$member-match` operación se puede invocar en los recursos del paciente mediante el método POST:

```
POST [base]/Patient/$member-match
```

## Parámetros admitidos
<a name="member-match-parameters"></a>

HealthLake admite los siguientes `$member-match` parámetros del FHIR:


| Parámetro | Tipo | Obligatorio/a | Predeterminado | Description (Descripción) | 
| --- | --- | --- | --- | --- | 
| MemberPatient | Paciente | Sí | — | Recurso para pacientes que contiene información demográfica sobre el miembro al que se va a vincular | 
| CoverageToMatch | Cobertura | Sí | — | Recurso de cobertura que se utilizará para compararlo con los registros existentes | 
| CoverageToLink | Cobertura | No | — | Recurso de cobertura que se vinculará durante el proceso de emparejamiento | 
| Consentimiento | Consentimiento | No | — | Recurso de consentimiento para fines de autorización | 

## Ejemplos
<a name="member-match-examples"></a>

### Solicitud POST con parámetros
<a name="member-match-request-example"></a>

```
POST [base]/Patient/$member-match
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberPatient",
      "resource": {
        "resourceType": "Patient",
        "name": [
          {
            "family": "Jones",
            "given": ["Sarah"]
          }
        ],
        "gender": "female",
        "birthDate": "1985-05-15"
      }
    },
    {
      "name": "CoverageToMatch",
      "resource": {
        "resourceType": "Coverage",
        "status": "active",
        "beneficiary": {
          "reference": "Patient/1"
        },
        "relationship": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/subscriber-relationship",
              "code": "self",
              "display": "Self"
            }
          ]
        },
        "payor": [
          {
            "reference": "Organization/payer456"
          }
        ]
      }
    },
    {
      "name": "Consent",
      "resource": {
        "resourceType": "Consent",
        "status": "active",
        "scope": {
          "coding": [
            {
              "system": "http://terminology.hl7.org/CodeSystem/consentscope",
              "code": "patient-privacy"
            }
          ]
        },
        "category": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
                "code": "IDSCL"
              }
            ]
          }
        ],
        "patient": {
          "reference": "Patient/1"
        },
        "performer": [
          {
            "reference": "Patient/patient123"
          }
        ],
        "sourceReference": {
          "reference": "Document/someconsent"
        },
        "policy": [
          {
            "uri": "http://hl7.org/fhir/us/davinci-hrex/StructureDefinition-hrex-consent.html#regular"
          }
        ]
      }
    }
  ]
}
```

### Respuesta de ejemplo
<a name="member-match-response-example"></a>

La operación devuelve un recurso de parámetros que contiene los resultados coincidentes:

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "MemberIdentifier",
      "valueIdentifier": {
        "system": "http://hospital.org/medical-record-number",
        "value": "MRN-123456"
      }
    },
    {
      "name": "MemberId",
      "valueReference": {
        "reference": "Patient/patient123"
      }
    },
    {
      "name": "matchAlgorithm",
      "valueString": "DEMOGRAPHIC_MATCH"
    },
    {
      "name": "matchDetails",
      "valueString": "Demographic match: DOB + Name"
    },
    {
      "name": "matchedFields",
      "valueString": "given,birthdate,gender,family"
    }
  ]
}
```

## Parámetros de respuesta
<a name="member-match-response-parameters"></a>

La respuesta incluye los siguientes parámetros cuando se encuentra una coincidencia:


| Parámetro | Tipo | Description (Descripción) | 
| --- | --- | --- | 
| MemberIdentifier | Identificador | El identificador único del miembro coincidente | 
| MemberId | Referencia | Referencia al recurso para pacientes | 
| Algoritmo de coincidencia | Cadena | Tipo de algoritmo de coincidencia utilizado (EXACT\$1MATCH, STRONG\$1MATCH o DEMOGRAPHIC\$1MATCH) | 
| Detalles del partido | Cadena | Información detallada sobre el proceso de emparejamiento | 
| Campos coincidentes | Cadena | Lista de campos específicos que se emparejaron correctamente | 

## algoritmos coincidentes
<a name="member-match-algorithms"></a>

La `$member-match` API emplea un enfoque de coincidencia de varios niveles para garantizar una identificación precisa de los miembros:

EXACT\$1MATCH  
Utiliza el identificador del paciente combinado con la cobertura SubscriberId  
Proporciona el nivel de confianza más alto para la identificación de miembros

STRONG\$1MATCH  
Utiliza el identificador del paciente con información de cobertura mínima  
Ofrece una gran confianza cuando no se cumplen los criterios de coincidencia exactos

DEMOGRAPHIC\$1MATCH  
Se basa en información demográfica básica  
Se utiliza cuando no es posible la coincidencia basada en identificadores

## Comportamiento
<a name="member-match-behavior"></a>

La operación: `$member-match`
+ Acepta como datos los datos demográficos del paciente, los detalles de la cobertura y la información de consentimiento opcional
+ Devuelve un identificador de miembro único que se puede utilizar en interacciones posteriores
+ Implementa una combinación de varios niveles (exacta, sólida y demográfica) para garantizar una identificación precisa de los miembros en los diferentes sistemas de salud
+ Guarda cualquier información de consentimiento proporcionada para futuros fines de autorización
+ Soporta el intercambio seguro payer-to-payer de datos al tiempo que mantiene la privacidad del paciente
+ Cumple con los requisitos de los CMS para el intercambio de datos sanitarios

## Autorización
<a name="member-match-authorization"></a>

La API utiliza el protocolo de autorización SMART on FHIR con los siguientes alcances obligatorios:
+ `system/Patient.read`
+ `system/Coverage.read`
+ `system/Organization.read`(condicional)
+ `system/Practitioner.read`(condicional)
+ `system/PractitionerRole.read`(condicional)
+ `system/Consent.write`(condicional)

## Gestión de errores
<a name="member-match-error-handling"></a>

La operación gestiona las siguientes condiciones de error:
+ `400 Bad Request`: `$member-match` Operación no válida (solicitud no conforme o faltan parámetros obligatorios)
+ `422 Unprocessable Entity`: No se encontraron coincidencias o se encontraron varias coincidencias

# `$member-remove`operación para HealthLake
<a name="reference-fhir-operations-member-remove"></a>

La `$member-remove` operación le permite eliminar miembros de una lista de atribución de miembros de la FHIR (recurso grupal) en. AWS HealthLake Esta operación forma parte de la Guía de implementación de la atribución de DaVinci miembros y apoya el proceso de conciliación para gestionar las atribuciones de los miembros.

## Requisitos previos
<a name="member-remove-prerequisites"></a>
+ AWS HealthLake Almacén de datos FHIR
+ Permisos de IAM adecuados para las operaciones HealthLake 
+ Lista de atribuciones de miembros (recurso grupal) en estado borrador o abierta

## Detalles de la operación
<a name="member-remove-endpoint"></a>

Punto de conexión  
`POST /Group/{id}/$member-remove`

Tipo de contenido  
`application/fhir+json`

## Parameters
<a name="member-remove-parameters"></a>

La operación acepta un recurso de parámetros del FHIR con los siguientes parámetros opcionales:


| Parámetro | Cardinalidad | Tipo | Description (Descripción) | 
| --- | --- | --- | --- | 
| memberId | 0.1 | Identificador | Identificador empresarial del miembro que se va a eliminar | 
| NPI del proveedor | 0.1.. | Identificador | NPI del proveedor atribuido | 
| Referencia del paciente | 0.1.. | Referencia | Referencia directa al recurso para pacientes | 
| Referencia del proveedor | 0.1.. | Referencia | Referencia directa al recurso del proveedor (profesional u organización) PractitionerRole | 
| Referencia de cobertura | 0.1.. | Referencia | Referencia al recurso Cobertura | 

### Combinaciones de parámetros compatibles
<a name="member-remove-parameter-combinations"></a>

Se admiten las siguientes combinaciones de parámetros:
+ `memberId`solo: elimina todas las atribuciones del miembro especificado
+ `memberId`\$1 `providerNpi` - Elimina las atribuciones de la combinación específica de miembro y proveedor
+ `patientReference`solo: elimina todas las atribuciones del paciente especificado
+ `patientReference`\$1 `providerReference` - Elimina las atribuciones de la combinación específica de paciente y proveedor
+ `patientReference`\$1 `providerReference` \$1 `coverageReference` - Elimina la atribución específica en función del paciente, el proveedor y la cobertura

## Ejemplo de solicitud
<a name="member-remove-examples"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "patientReference",
      "valueReference": {
        "reference": "Patient/12345"
      }
    },
    {
      "name": "providerReference",
      "valueReference": {
        "reference": "Practitioner/67890"
      }
    }
  ]
}
```

## Respuesta
<a name="member-remove-response"></a>

### Respuesta correcta
<a name="member-remove-success-response"></a>

```
{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "result",
      "valueBoolean": true
    },
    {
      "name": "effectiveDate",
      "valueDate": "2024-06-30"
    },
    {
      "name": "status",
      "valueCode": "inactive"
    },
    {
      "name": "message",
      "valueString": "Member successfully removed from attribution list"
    }
  ]
}
```

## Comportamiento
<a name="member-remove-behavior"></a>

Requisitos de estado  
La operación solo funciona en listas de atribución con estado `draft` o `open`  
Las listas con `final` estado rechazarán la operación con un error 422

Proceso de eliminación de miembros  
*Borradores de listas de estado*: los miembros se marcan como inactivos (`inactive: true`) y su `changeType` extensión se actualiza a `changed`  
*Listas de estado abiertas*: comportamiento similar al estado preliminar  
*Listas de estado finales*: se rechaza la operación

Validación  
Las referencias se validan para garantizar que existan en el HealthLake almacén de datos  
Si se proporcionan tanto el identificador como la referencia para el mismo tipo de recurso, deben corresponder al mismo recurso  
Las combinaciones de parámetros se validan de acuerdo con los patrones admitidos

## Gestión de errores
<a name="member-remove-error-handling"></a>

### Respuestas de error comunes
<a name="member-remove-common-errors"></a>

Recurso no encontrado (404)  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "not-found",
      "details": {
        "text": "Patient with identifier 'http://example.org/fhir/identifiers|99999' not found in system"
      },
      "diagnostics": "Cannot remove member from attribution list. Verify patient identifier and try again.",
      "expression": ["memberId"]
    }
  ]
}
```

Estado final de la lista de atribuciones (422)  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "business-rule",
      "details": {
        "coding": [
          {
            "system": "http://hl7.org/fhir/us/davinci-atr/CodeSystem/atr-error-codes",
            "code": "list-final",
            "display": "Attribution list is final and cannot be modified"
          }
        ]
      },
      "diagnostics": "Cannot modify attribution list with status 'final'. List modifications are not permitted after finalization.",
      "expression": ["Group.status"]
    }
  ]
}
```

Operación no válida (400)  
Se devuelve cuando las combinaciones de parámetros no son válidas o están mal formadas.

Se han encontrado varias coincidencias (412)  
Se devuelve cuando los parámetros proporcionados coinciden con varios miembros de la lista de atribuciones.  

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "processing",
      "diagnostics": "Multiple members found matching the criteria"
    }
  ]
}
```

## Prácticas recomendadas
<a name="member-remove-best-practices"></a>
+ *Utilice parámetros específicos*: cuando sea posible, utilice la combinación de parámetros más específica para evitar eliminaciones involuntarias
+ Estado de la *lista de atribuciones: comprueba el estado* de la lista de atribuciones antes de intentar eliminarla
+ *Maneje los errores con elegancia*: implemente un manejo de errores adecuado para todas las condiciones de error posibles
+ *Valide las referencias*: asegúrese de que existan todos los recursos a los que se hace referencia antes de realizar la solicitud

# Eliminar los recursos del compartimento de pacientes con `$purge`
<a name="reference-fhir-operations-purge"></a>

AWS HealthLake apoya la `$purge` operación, lo que permite la eliminación permanente de todos los recursos del compartimento del paciente. Esta operación resulta especialmente útil cuando se necesita:
+ Eliminar todos los datos asociados a un paciente
+ Cumpla con las solicitudes de eliminación de datos de los pacientes
+ Gestione el ciclo de vida de los datos
+ Realice una limpieza exhaustiva de los registros de los pacientes

## De uso
<a name="purge-usage"></a>

La `$purge` operación se puede invocar en los recursos del paciente:

```
POST [base]/Patient/[ID]/$purge?deleteAuditEvent=true
```

## Parameters
<a name="purge-parameters"></a>


| Parámetro | Tipo | Obligatorio/a | Predeterminado | Description (Descripción) | 
| --- | --- | --- | --- | --- | 
| deleteAuditEvent | booleano | No | false | Si es verdadero, elimina los eventos de auditoría asociados | 
| \$1since | cadena | No | Hora de creación del almacén de datos | Cuando se introduce, selecciona la hora límite de inicio para buscar los recursos en función de su hora de última modificación. No se puede usar ni al principio ni al final | 
| start | cadena | No | Hora de creación del almacén de datos | Cuando se introduce, selecciona la hora límite para buscar los recursos en función de su hora de última modificación. Se puede usar con el final | 
| end | cadena | No | Tiempo de presentación de trabajos | Cuando se introduce, selecciona la hora límite de finalización para buscar los recursos en función de su hora de última modificación | 

## Ejemplos
<a name="purge-examples"></a>

**Solicitud de ejemplo**  


```
POST [base]/Patient/example-patient/$purge?deleteAuditEvent=true
```

**Respuesta de ejemplo**  


```
{
  "resourceType": "OperationOutcome",
  "id": "purge-job",
  "issue": [
    {
      "severity": "information",
      "code": "informational",
      "diagnostics": "Purge job started successfully. Job ID: 12345678-1234-1234-1234-123456789012"
    }
  ]
}
```

## Estado del trabajo
<a name="purge-job-status"></a>

Para comprobar el estado de un trabajo de purga:

```
GET [base]/$purge/[jobId]
```

La operación devuelve información sobre el estado del trabajo:

```
{
      "datastoreId": "36622996b1fcecb7e12ee2ee085308d3",
      "jobId": "3dd1c7a5b6c0ef8c110f566eb87e2ef9",
      "status": "COMPLETED",
      "submittedTime": "2025-10-31T18:43:21.822Z"
    }
```

## Comportamiento
<a name="purge-behavior"></a>

La `$purge` operación:

1. Procesa de forma asíncrona para gestionar varios recursos

1. Mantiene las transacciones ACID para garantizar la integridad de los datos

1. Proporciona un seguimiento del estado de los trabajos con recuentos de eliminaciones de recursos

1. Elimina permanentemente todos los recursos del compartimento del paciente

1. Incluye un registro de auditoría completo de las actividades de eliminación

1. Soporta la eliminación selectiva de eventos de auditoría

## Registro de auditoría
<a name="purge-audit-logging"></a>

La `$purge` operación se registra como Inicio FHIRBulk DeleteJob y Descripción FHIRBulk DeleteJob con información detallada sobre la operación.

## Limitaciones
<a name="purge-limitations"></a>
+ Los recursos purgados no aparecerán en las respuestas de búsqueda
+ Es posible que los recursos que se están purgando estén inaccesibles temporalmente durante el procesamiento
+ Todos los recursos del compartimento del paciente se retiran permanentemente

# `$questionnaire-package`Operación FHIR para HealthLake
<a name="reference-fhir-operations-questionnaire-package"></a>

La `$questionnaire-package` operación recupera un paquete completo que contiene un cuestionario del FHIR y todas sus dependencias necesarias para procesar y procesar el cuestionario. Esta operación implementa la [Guía de implementación de las plantillas y reglas de documentación (DTR) de Da Vinci](https://hl7.org/fhir/us/davinci-dtr/OperationDefinition-questionnaire-package.html), que permite la representación dinámica de los formularios para los requisitos de documentación en los flujos de trabajo de atención médica.

## Funcionamiento
<a name="questionnaire-package-how-it-works"></a>
+ **Solicitud**: Usted envía los parámetros que identifican los cuestionarios necesarios, junto con la cobertura y el contexto del pedido
+ **Recuperar**: HealthLake recopila el cuestionario y todas las dependencias (ValueSetsbibliotecas de CQL, etc.)
+ **Paquete**: Todos los recursos se agrupan en un formato estandarizado
+ **Responda**: recibirá un paquete completo listo para su procesamiento y recopilación de datos

**Casos de uso**  

+ **Documentación de autorización previa**: recopile la información clínica requerida para las solicitudes de autorización previa
+ **Requisitos de cobertura**: reúna la documentación necesaria para cumplir con los requisitos de cobertura del pagador
+ **Clinical Data Exchange**: estructura los datos clínicos para enviarlos a los pagadores
+ **Formularios dinámicos**: renderice cuestionarios con datos de pacientes previamente rellenados y lógica condicional

## Punto de conexión de la API
<a name="questionnaire-package-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json
```

## Parámetros de solicitud
<a name="questionnaire-package-request-parameters"></a>

### Parámetros de entrada
<a name="questionnaire-package-input-parameters"></a>

El cuerpo de la solicitud debe contener un recurso de parámetros del FHIR con los siguientes parámetros:


| Parámetro | Tipo | Cardinalidad | Description (Descripción) | 
| --- | --- | --- | --- | 
| coverage | Cobertura | 1.. \$1 (Obligatorio) | Recurso (s) de cobertura para determinar el miembro y cobertura de la documentación | 
| questionnaire | canonical | 0.. \$1 | URL canónicas de cuestionarios específicos a devolver (pueden incluir una versión) | 
| order | Recurso | 0.. \$1 | Solicite recursos (DeviceRequest,, ServiceRequest MedicationRequest, Encuentro, Cita) para establecer el contexto | 
| changedSince | dateTime | 0.1 | Si está presente, devuelva solo los recursos modificados después de esta marca de tiempo | 

### Reglas de validación de parámetros
<a name="questionnaire-package-parameter-validation"></a>

**Debe proporcionarse al menos UNO de los siguientes datos** (además de los obligatorios`coverage`):
+ Uno o más `questionnaire` canónicos URLs
+ Uno o más recursos `order`

**Combinaciones de solicitudes válidas:**  

+ `coverage` \$1 `questionnaire`
+ `coverage` \$1 `order`
+ `coverage` \$1 `questionnaire` \$1 `order`

## Ejemplo de solicitud
<a name="questionnaire-package-example-request"></a>

```
POST /datastore/example-datastore/r4/Questionnaire/$questionnaire-package  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": {  
        "resourceType": "Coverage",  
        "id": "example-coverage",  
        "status": "active",  
        "beneficiary": {  
          "reference": "Patient/example-patient"  
        },  
        "payor": [{  
          "reference": "Organization/example-payer"  
        }],  
        "class": [{  
          "type": {  
            "coding": [{  
              "system": "http://terminology.hl7.org/CodeSystem/coverage-class",  
              "code": "group"  
            }]  
          },  
          "value": "12345"  
        }]  
      }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0"  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "id": "example-service-request",  
        "status": "active",  
        "intent": "order",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660",  
            "display": "Continuous positive airway pressure ventilation (CPAP)"  
          }]  
        },  
        "subject": {  
          "reference": "Patient/example-patient"  
        }  
      }  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-01-01T00:00:00Z"  
    }  
  ]  
}
```

## Formato de las respuestas
<a name="questionnaire-package-response-format"></a>

### Respuesta correcta (200 OK)
<a name="questionnaire-package-success-response"></a>

La operación devuelve un recurso de parámetros FHIR que contiene uno o más **Package Bundles**. Cada Package Bundle incluye:


| Tipo de entrada | Cardinalidad | Description (Descripción) | 
| --- | --- | --- | 
| Cuestionario | 1 | El cuestionario que se va a entregar | 
| QuestionnaireResponse | 0.1.. | Respuesta rellenada previamente o completada parcialmente (si corresponde) | 
| Library | 0.. \$1 | Bibliotecas CQL que contienen lógica condicional y previa a la población | 
| ValueSet | 0.. \$1 | Ampliado ValueSets (para opciones de respuesta con menos de 40 expansiones) | 

**Example Ejemplo de respuesta**  

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "PackageBundle",  
      "resource": {  
        "resourceType": "Bundle",  
        "id": "questionnaire-package-example",  
        "meta": {  
          "profile": ["http://hl7.org/fhir/us/davinci-dtr/StructureDefinition/DTR-QPackageBundle"]  
        },  
        "type": "collection",  
        "timestamp": "2024-03-15T10:30:00Z",  
        "entry": [  
          {  
            "fullUrl": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
            "resource": {  
              "resourceType": "Questionnaire",  
              "id": "home-oxygen-therapy",  
              "url": "http://example.org/fhir/Questionnaire/home-oxygen-therapy",  
              "version": "2.0",  
              "status": "active",  
              "title": "Home Oxygen Therapy Documentation",  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "type": "choice",  
                  "answerValueSet": "http://example.org/fhir/ValueSet/oxygen-diagnoses"  
                }  
              ]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/Library/oxygen-prepopulation",  
            "resource": {  
              "resourceType": "Library",  
              "id": "oxygen-prepopulation",  
              "url": "http://example.org/fhir/Library/oxygen-prepopulation",  
              "version": "1.0",  
              "type": {  
                "coding": [{  
                  "system": "http://terminology.hl7.org/CodeSystem/library-type",  
                  "code": "logic-library"  
                }]  
              },  
              "content": [{  
                "contentType": "text/cql",  
                "data": "bGlicmFyeSBPeHlnZW5QcmVwb3B1bGF0aW9u..."  
              }]  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
            "resource": {  
              "resourceType": "ValueSet",  
              "id": "oxygen-diagnoses",  
              "url": "http://example.org/fhir/ValueSet/oxygen-diagnoses",  
              "status": "active",  
              "expansion": {  
                "timestamp": "2024-03-15T10:30:00Z",  
                "contains": [  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J44.0",  
                    "display": "COPD with acute lower respiratory infection"  
                  },  
                  {  
                    "system": "http://hl7.org/fhir/sid/icd-10",  
                    "code": "J96.01",  
                    "display": "Acute respiratory failure with hypoxia"  
                  }  
                ]  
              }  
            }  
          },  
          {  
            "fullUrl": "http://example.org/fhir/QuestionnaireResponse/example-prepopulated",  
            "resource": {  
              "resourceType": "QuestionnaireResponse",  
              "id": "example-prepopulated",  
              "questionnaire": "http://example.org/fhir/Questionnaire/home-oxygen-therapy|2.0",  
              "status": "in-progress",  
              "subject": {  
                "reference": "Patient/example-patient"  
              },  
              "basedOn": [{  
                "reference": "ServiceRequest/example-service-request"  
              }],  
              "item": [  
                {  
                  "linkId": "1",  
                  "text": "Patient diagnosis",  
                  "answer": [{  
                    "valueCoding": {  
                      "system": "http://hl7.org/fhir/sid/icd-10",  
                      "code": "J44.0",  
                      "display": "COPD with acute lower respiratory infection"  
                    }  
                  }]  
                }  
              ]  
            }  
          }  
        ]  
      }  
    },  
    {  
      "name": "Outcome",  
      "resource": {  
        "resourceType": "OperationOutcome",  
        "issue": [{  
          "severity": "information",  
          "code": "informational",  
          "details": {  
            "text": "Successfully retrieved questionnaire package"  
          }  
        }]  
      }  
    }  
  ]  
}
```

## Flujo de trabajo operativo
<a name="questionnaire-package-operation-workflow"></a>

**¿Cómo HealthLake procesa su solicitud**  
Cuando llames`$questionnaire-package`, HealthLake realiza los siguientes pasos:

1. **Identifique al paciente y al pagador**: extraiga el paciente y la organización de seguros a partir de su `coverage` parámetro.

1. **Encuentre el cuestionario correcto**:
   + **Con `questionnaire`** **el parámetro**: usa la URL canónica que proporcionaste
   + **Con** el `order` **parámetro**: Coincide con el código del pedido (CPT/HCPCS/LOINC) y el pagador para encontrar el cuestionario correspondiente

1. **Reunir dependencias**: recupera automáticamente todo lo necesario para procesar el cuestionario:
   + **Bibliotecas CQL**: lógica para preguntas condicionales y previas al rellenado
   + **ValueSets**- Opciones de respuesta (se amplían automáticamente si hay menos de 40 opciones)
   + **QuestionnaireResponse**- Cualquier respuesta existente, en curso o completada

1. **Package todo junto**:
   + Agrupa todos los recursos (cada recurso se incluye solo una vez)
   + Filtra por `changedSince` marca de tiempo si se proporciona
   + Añade advertencias en `Outcome` caso de que falte algún recurso

**Resultado**: un paquete completo e independiente listo para renderizarse.

## Respuestas de error
<a name="questionnaire-package-error-responses"></a>

### 400: solicitud maligna
<a name="questionnaire-package-400-error"></a>

Se devuelve cuando la validación de la solicitud falla.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "required",  
    "details": {  
      "text": "At least one of 'questionnaire' or 'order' must be provided along with 'coverage'"  
    }  
  }]  
}
```

### 4.2.4 Dependencia fallida
<a name="questionnaire-package-424-error"></a>

Se devuelve cuando no se puede recuperar un recurso dependiente.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "warning",  
    "code": "not-found",  
    "details": {  
      "text": "Referenced Library 'http://example.org/fhir/Library/missing-library' could not be retrieved"  
    }  
  }]  
}
```

### 401 sin autorización
<a name="questionnaire-package-401-error"></a>

Se devuelve cuando faltan credenciales de autenticación o no son válidas.

### 403: prohibido
<a name="questionnaire-package-403-error"></a>

Se devuelve cuando el usuario autenticado no tiene permiso para acceder a los recursos solicitados.

### 406 No es aceptable
<a name="questionnaire-package-406-error"></a>

Se devuelve cuando no se puede proporcionar el tipo de contenido solicitado.

### Conflicto, 409
<a name="questionnaire-package-409-error"></a>

Se devuelve cuando hay un conflicto de versiones o de simultaneidad.

### 410 Se ha ido
<a name="questionnaire-package-410-error"></a>

Se devuelve cuando el recurso solicitado se ha eliminado permanentemente.

### 429 Demasiadas solicitudes
<a name="questionnaire-package-429-error"></a>

Se devuelve cuando se superan los límites de velocidad.

### 500 Error de servidor interno
<a name="questionnaire-package-500-error"></a>

Se devuelve cuando se produce un error inesperado en el servidor.

### 501 No implementado
<a name="questionnaire-package-501-error"></a>

Se devuelve cuando la operación solicitada aún no está implementada.

## Reglas de validación
<a name="questionnaire-package-validation-rules"></a>

### Validación de entradas
<a name="questionnaire-package-input-validation"></a>
+ `coverage`el parámetro es **obligatorio** (1.. \$1 cardinalidad)
+ `order`Debe proporcionarse al menos uno de `questionnaire` ellos
+ Todos los recursos de cobertura deben ser recursos válidos del FHIR
+ Todos los recursos del pedido deben ser recursos válidos del FHIR
+ Canonical URLs debe tener el formato correcto
+ `changedSince`debe ser un DateTime ISO 8601 válido

### QuestionnaireResponse validación
<a name="questionnaire-package-response-validation"></a>
+ `status`debe ser apropiado (`in-progress`,`completed`,`amended`)
+ La estructura debe coincidir con el cuestionario al que se hace referencia
+ `basedOn`debe hacer referencia a los recursos del pedido válidos
+ `subject`debe hacer referencia a recursos válidos para pacientes

### Deduplicación de recursos
<a name="questionnaire-package-resource-dedup"></a>
+ Cada recurso aparece solo una vez en el paquete
+ Excepción: es posible que se incluyan diferentes versiones del mismo recurso
+ Los recursos se identifican por su URL y versión canónicas

## Especificaciones de rendimiento
<a name="questionnaire-package-performance-specs"></a>


| Métrica | Especificación  | 
| --- | --- | 
| Límite de recuento de recursos | 500 recursos por paquete | 
| Límite de tamaño del paquete | 5 MB como máximo | 

## Permisos necesarios
<a name="questionnaire-package-required-permissions"></a>

Para utilizar la `$questionnaire-package` operación, asegúrese de que su función de IAM tenga:
+ `healthlake:QuestionnairePackage`- Para convocar a la operación
+ `healthlake:ReadResource`- Para recuperar el cuestionario y los recursos dependientes
+ `healthlake:SearchWithPost`- Para buscar recursos QuestionnaireResponse y recursos relacionados

**SMART en FHIR Scopes**  
**Alcances mínimos requeridos:**
+ **SMART v1**: `user/Questionnaire.read user/Library.read user/ValueSet.read user/QuestionnaireResponse.read`
+ **SMART v2**: `user/Questionnaire.rs user/Library.rs user/ValueSet.rs user/QuestionnaireResponse.rs`

## Notas importantes sobre la implementación
<a name="questionnaire-package-implementation-notes"></a>

### Estrategia de recuperación de recursos
<a name="questionnaire-package-retrieval-strategy"></a>

**Prioridad de identificación del cuestionario:**  

+ **URL canónica** (si se proporciona el `questionnaire` parámetro): prioridad máxima
+ **Análisis de pedidos** (si se proporciona `order` el parámetro):
  + Haga coincidir los códigos de pedido (CPT, HCPCS, LOINC) con las pólizas médicas del pagador
  + Use el pagador de cobertura para filtrar los cuestionarios específicos del pagador
  + Tenga en cuenta los códigos de motivo para obtener un contexto adicional

### Resolución de dependencias
<a name="questionnaire-package-dependency-resolution"></a>

**Bibliotecas CQL:**  

+ Recuperado a través de la `cqf-library` extensión sobre los recursos del cuestionario
+ Busca de forma recursiva las bibliotecas dependientes mediante `Library.relatedArtifact` el tipo `depends-on`
+ Todas las dependencias de la biblioteca están incluidas en el paquete

**ValueSets:**  

+ Se expanden automáticamente si contienen menos de 40 conceptos
+  ValueSets Los más grandes se incluyen sin expansión
+ ValueSets Se incluyen los recursos referenciados tanto en el cuestionario como en la biblioteca

### QuestionnaireResponse prepoblación
<a name="questionnaire-package-prepopulation"></a>

La operación puede devolver un QuestionnaireResponse con datos rellenados previamente cuando:
+ Se encuentra una respuesta ya finalizada o en curso
+ La lógica CQL de las bibliotecas asociadas puede extraer datos de los registros de los pacientes
+ La respuesta está vinculada al pedido y la cobertura pertinentes

**Criterios de búsqueda para QuestionnaireResponse:**  



| Parámetro de búsqueda | Ruta FHIR | Description (Descripción) | 
| --- | --- | --- | 
| based-on | QuestionnaireResponse.basedOn | Enlaces a ServiceRequest o CarePlan | 
| patient | QuestionnaireResponse.subject | El paciente que es el sujeto | 
| questionnaire | QuestionnaireResponse.questionnaire | El cuestionario que se está respondiendo | 

### Se modificó el filtrado de recursos
<a name="questionnaire-package-changed-filtering"></a>

Cuando se proporciona el `changedSince` parámetro:
+ Solo se incluyen los recursos modificados **después** de la marca de tiempo especificada
+ Si ningún recurso ha cambiado, regresa `200 OK` con un paquete vacío
+ Útil para actualizaciones incrementales y estrategias de almacenamiento en caché
+ La comparación de marcas de tiempo utiliza el campo de recursos `meta.lastUpdated`

### Múltiples paquetes
<a name="questionnaire-package-multiple-bundles"></a>

La operación puede devolver **varios Package Bundles** cuando:
+ Se solicitan varios cuestionarios a través de Canonical URLs
+ Los pedidos múltiples requieren cuestionarios diferentes
+ Se aplican diferentes versiones del mismo cuestionario

Cada Package Bundle es autónomo y cuenta con todas las dependencias necesarias.

## Casos de uso comunes
<a name="questionnaire-package-common-use-cases"></a>

### Caso de uso 1: documentación de autorización previa
<a name="questionnaire-package-use-case-1"></a>

**Escenario**: un proveedor debe recopilar la documentación necesaria para obtener una autorización previa para la oxigenoterapia domiciliaria.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Patient's insurance coverage */ }  
    },  
    {  
      "name": "order",  
      "resource": {  
        "resourceType": "ServiceRequest",  
        "code": {  
          "coding": [{  
            "system": "http://www.ama-assn.org/go/cpt",  
            "code": "94660"  
          }]  
        }  
      }  
    }  
  ]  
}
```

**Resultado**: devuelve un paquete con el cuestionario de oxigenoterapia, rellenado previamente con los datos vitales del paciente y los códigos de diagnóstico del EHR.

### Caso de uso 2: recupere una versión específica del cuestionario
<a name="questionnaire-package-use-case-2"></a>

**Escenario**: un proveedor necesita una versión específica de un cuestionario para cumplir con los requisitos.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/dme-request|3.1.0"  
    }  
  ]  
}
```

**Resultado**: devuelve exactamente la versión 3.1.0 del cuestionario de solicitud del DME con todas las dependencias.

### Caso de uso 3: comprobar si hay actualizaciones
<a name="questionnaire-package-use-case-3"></a>

**Escenario**: un proveedor quiere comprobar si algún recurso del cuestionario se ha actualizado desde la última consulta.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "questionnaire",  
      "valueCanonical": "http://example.org/fhir/Questionnaire/medication-request"  
    },  
    {  
      "name": "changedSince",  
      "valueDateTime": "2024-03-01T00:00:00Z"  
    }  
  ]  
}
```

**Resultado**: devuelve solo los recursos que se hayan modificado después del 1 de marzo de 2024 o un paquete vacío si no ha cambiado nada.

### Caso de uso 4: pedidos múltiples
<a name="questionnaire-package-use-case-4"></a>

**Escenario**: un proveedor envía varias solicitudes de servicio que pueden requerir cuestionarios diferentes.

```
{  
  "resourceType": "Parameters",  
  "parameter": [  
    {  
      "name": "coverage",  
      "resource": { /* Coverage resource */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for imaging */ }  
    },  
    {  
      "name": "order",  
      "resource": { /* ServiceRequest for DME */ }  
    }  
  ]  
}
```

**Resultado**: devuelve varios Package Bundles, uno para cada cuestionario aplicable.

## Integración con otros Da Vinci IGs
<a name="questionnaire-package-integration"></a>

### Descubrimiento de requisitos de cobertura (CRD)
<a name="questionnaire-package-crd-integration"></a>

**Integración del flujo de trabajo:**  

+ El proveedor solicita un servicio en su registro electrónico electrónico
+ El CRD Hook se dispara, comprobando los requisitos de cobertura
+ El pagador responde indicando que necesita documentación
+ El proveedor llama `$questionnaire-package` para recuperar el formulario de documentación
+ El proveedor completa el cuestionario
+ La documentación se envía a través del PAS o CDex

### Soporte de autorización previa (PAS)
<a name="questionnaire-package-pas-integration"></a>

**Integración del flujo de trabajo:**  

+ Se utiliza `$questionnaire-package` para recuperar los requisitos de documentación
+ Complete el formulario QuestionnaireResponse con los datos clínicos requeridos
+ Envíe la autorización previa `Claim/$submit` junto con la cumplimentada QuestionnaireResponse
+ Compruebe el estado utilizando `Claim/$inquire`

### Intercambio de datos clínicos (CDex)
<a name="questionnaire-package-cdex-integration"></a>

**Integración del flujo de trabajo:**  

+ El pagador solicita documentación adicional para una reclamación
+ El proveedor utiliza `$questionnaire-package` para recuperar el formulario de recopilación de datos estructurados
+ El proveedor completa el QuestionnaireResponse
+ La documentación se envía al pagador a través del flujo de trabajo CDex adjunto

## Guía para solucionar problemas
<a name="questionnaire-package-troubleshooting"></a>

### Problema: No se devolvió el cuestionario
<a name="questionnaire-package-no-questionnaire"></a>

**Posibles causas:**  

+ La URL canónica no coincide con ningún cuestionario del almacén de datos
+ El código del pedido no se corresponde con ningún cuestionario de la política médica del pagador
+ El pagador de la cobertura no tiene cuestionarios asociados

**Soluciones:**  

+ Verifica que la URL canónica sea correcta y que el cuestionario exista
+ Comprueba que los códigos de pedido (CPT/HCPCS) estén correctamente especificados
+ Confirme que la organización pagadora tenga configurados los cuestionarios

### Problema: Faltan dependencias en el paquete
<a name="questionnaire-package-missing-dependencies"></a>

**Posibles causas:**  

+ Biblioteca a la que se hace referencia o ValueSet no existe en el almacén de datos
+ Las referencias a la biblioteca están rotas o son incorrectas
+ ValueSet la expansión ha fallado

**Soluciones:**  

+ Compruebe el `Outcome` parámetro para ver si hay advertencias sobre la falta de recursos
+ Compruebe que todos los recursos a los que se hace referencia existan en el banco de datos
+ Asegúrese de que ValueSet URLs son correctos y se pueden resolver

### Problema: Empty Package con ChangedSince
<a name="questionnaire-package-empty-package"></a>

**Posibles causas:**  

+ Este es el comportamiento esperado: no se ha modificado ningún recurso desde la marca de tiempo especificada

**Soluciones:**  

+ Utilice la versión en caché del paquete
+ Elimine `changedSince` el parámetro para recuperar el paquete completo

### Problema: QuestionnaireResponse no se ha rellenado previamente
<a name="questionnaire-package-not-prepopulated"></a>

**Posibles causas:**  

+ No se QuestionnaireResponse encontró ningún elemento existente
+ La lógica de la biblioteca CQL no pudo extraer los datos necesarios
+ Faltan datos del paciente o están incompletos

**Soluciones:**  

+ Esto es de esperar: no todos los cuestionarios tienen una lógica previa a la población
+ Compruebe que los datos del paciente existan en el almacén de datos
+ Revise la lógica de la biblioteca CQL para conocer los requisitos de extracción de datos

## Prácticas recomendadas
<a name="questionnaire-package-best-practices"></a>

### 1. Utilice Canonical URLs con las versiones
<a name="questionnaire-package-bp-versions"></a>

Especifique siempre los números de versión cuando solicite cuestionarios específicos:

```
{  
  "name": "questionnaire",  
  "valueCanonical": "http://example.org/fhir/Questionnaire/dme|2.1.0"  
}
```

**Por qué**: Garantiza la coherencia y evita cambios inesperados cuando se actualizan los cuestionarios.

### 2. Aproveche los cambios desde entonces para mejorar el rendimiento
<a name="questionnaire-package-bp-changed-since"></a>

Para los cuestionarios a los que se accede con frecuencia, utilícelos `changedSince` para minimizar la transferencia de datos:

```
{  
  "name": "changedSince",  
  "valueDateTime": "2024-03-10T15:30:00Z"  
}
```

**Por qué**: reduce la latencia y el uso de ancho de banda al recuperar solo los recursos actualizados.

### 3. Incluya información completa sobre la cobertura
<a name="questionnaire-package-bp-coverage"></a>

Proporcione detalles de cobertura completos para garantizar la correcta selección del cuestionario:

```
{  
  "name": "coverage",  
  "resource": {  
    "resourceType": "Coverage",  
    "beneficiary": { "reference": "Patient/123" },  
    "payor": [{ "reference": "Organization/payer-abc" }],  
    "class": [{ /* Group/plan information */ }]  
  }  
}
```

**Por qué**: Ayuda a HealthLake identificar los cuestionarios y requisitos específicos del pagador.

## Operaciones de relacionadas
<a name="questionnaire-package-related-operations"></a>
+ `Claim/$submit`- Presente las solicitudes de autorización previa con la documentación completa
+ `Claim/$inquire`- Verificar el estado de las autorizaciones previas presentadas
+ `ValueSet/$expand`- Ampliar ValueSets para ver las opciones de respuesta

# `$submit`Operación FHIR para HealthLake
<a name="reference-fhir-operations-submit"></a>

La `$submit` operación le permite enviar electrónicamente solicitudes de autorización previa a los pagadores para su aprobación. Esta operación implementa la [Guía de implementación de Da Vinci Prior Authorization Support (PAS)](https://hl7.org/fhir/us/davinci-pas/), que proporciona un flujo de trabajo estandarizado basado en el FHIR para la presentación de autorizaciones previas.

## Funcionamiento
<a name="submit-how-it-works"></a>
+ **Enviar**: envía un paquete FHIR que contiene su solicitud de autorización previa y los datos clínicos de respaldo
+ **Validar**: HealthLake valida la presentación según los requisitos del PAS
+ **Persistir**: todos los recursos se almacenan en su almacén HealthLake de datos
+ **Responder**: recibirá una respuesta inmediata con el estado de «en cola»
+ **Proceso**: el pagador procesa la decisión de autorización de forma asíncrona

## Punto de conexión de la API
<a name="submit-api-endpoint"></a>

```
POST /datastore/{datastoreId}/r4/Claim/$submit  
Content-Type: application/fhir+json
```

## Estructura de la solicitud
<a name="submit-request-structure"></a>

### Requisitos del paquete
<a name="submit-bundle-requirements"></a>

Su solicitud debe ser un recurso del paquete FHIR con:
+ **Tipo de paquete: debe ser** `"collection"`
+ **Bundle.entry****: debe contener exactamente un recurso de reclamación con** `use = "preauthorization"`
+ **Recursos de referencia**: todos los recursos a los que se hace referencia en la reclamación deben incluirse en el paquete

### Recursos necesarios de
<a name="submit-required-resources"></a>


| Recurso | Cardinalidad | Perfil | Description (Descripción) | 
| --- | --- | --- | --- | 
| Reclamación | 1 | Reclamación PAS | La solicitud de autorización previa | 
| Paciente | 1 | Paciente PAS | Información demográfica del paciente | 
| Organización (aseguradora) | 1 | Aseguradora PAS | Compañía de seguros | 
| Organización (proveedor) | 1 | Solicitante del PAS | Proveedor de atención médica que presenta la solicitud | 
| Cobertura | 1 o más | Cobertura PAS | Detalles de la cobertura del seguro | 

### Recursos opcionales
<a name="submit-optional-resources"></a>


| Recurso | Cardinalidad | Perfil | Description (Descripción) | 
| --- | --- | --- | --- | 
| Práctico | 0 o más | Profesional de PAS | Profesionales de la salud | 
| PractitionerRole | 0 o más | PAS PractitionerRole | Funciones de los profesionales | 
| ServiceRequest | 0 o más | PAS ServiceRequest | Servicios médicos solicitados | 
| DeviceRequest | 0 o más | PAS DeviceRequest | Dispositivos médicos solicitados | 
| MedicationRequest | 0 o más | PAS MedicationRequest | Medicamentos solicitados | 
| DocumentReference | 0 o más | PAS DocumentReference | Documentación clínica de apoyo | 

## Ejemplo de solicitud
<a name="submit-example-request"></a>

```
POST /datastore/example-datastore/r4/Claim/$submit  
Content-Type: application/fhir+json  
Authorization: Bearer <your-token>  
  
{  
  "resourceType" : "Bundle",  
  "id" : "MedicalServicesAuthorizationBundleExample",  
  "meta" : {  
    "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-pas-request-bundle"]  
  },  
  "identifier" : {  
    "system" : "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
    "value" : "5269367"  
  },  
  "type" : "collection",  
  "timestamp" : "2005-05-02T11:01:00+05:00",  
  "entry" : [{  
    "fullUrl" : "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
    "resource" : {  
      "resourceType" : "Claim",  
      "id" : "MedicalServicesAuthorizationExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim"]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"   
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:01:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "provider" : {  
        "reference" : "Organization/UMOExample"  
      },  
      "priority" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/processpriority",  
          "code" : "normal"  
        }]  
      },  
      "insurance" : [{  
        "sequence" : 1,  
        "focal" : true,  
        "coverage" : {  
          "reference" : "Coverage/InsuranceExample"  
        }  
      }],  
      "item" : [{  
        "extension" : [{  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1525",  
              "code" : "IN",  
              "display" : "Initial Medical Services Reservation"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1322",  
              "code" : "I",  
              "display" : "Initial"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber",  
          "valueString" : "1122344"  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber",  
          "valueString" : "33441122"  
        }],  
        "sequence" : 1,  
        "category" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/1365",  
            "code" : "1",  
            "display" : "Medical Care"  
          }]  
        },  
        "productOrService" : {  
          "coding" : [{  
            "system" : "http://www.cms.gov/Medicare/Coding/HCPCS​ReleaseCodeSets",  
            "code" : "99212",  
            "display" : "Established Office Visit"  
          }]  
        },  
        "servicedDate" : "2005-05-10",  
        "locationCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set",  
            "code" : "11"  
          }]  
        }  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/UMOExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "UMOExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor"]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "8189991234"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "X3"  
        }]  
      }],  
      "name" : "DR. JOE SMITH CORPORATION",  
      "address" : [{  
        "line" : ["111 1ST STREET"],  
        "city" : "SAN DIEGO",  
        "state" : "CA",  
        "postalCode" : "92101",  
        "country" : "US"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/InsurerExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "InsurerExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer"]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "1234567893"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "PR"  
        }]  
      }],  
      "name" : "MARYLAND CAPITAL INSURANCE COMPANY"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Coverage/InsuranceExample",  
    "resource" : {  
      "resourceType" : "Coverage",  
      "id" : "InsuranceExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage"]  
      },  
      "status" : "active",  
      "subscriberId" : "1122334455",  
      "beneficiary" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "relationship" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/subscriber-relationship",  
          "code" : "self"  
        },  
        {  
          "system" : "https://codesystem.x12.org/005010/1069",  
          "code" : "18"  
        }]  
      },  
      "payor" : [{  
        "reference" : "Organization/InsurerExample"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Patient/SubscriberExample",  
    "resource" : {  
      "resourceType" : "Patient",  
      "id" : "SubscriberExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-subscriber"]  
      },  
      "extension" : [{  
        "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-militaryStatus",  
        "valueCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/584",  
            "code" : "RU"  
          }]  
        }  
      }],  
      "identifier" : [{  
        "type" : {  
          "coding" : [{  
            "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",  
            "code" : "MB"  
          }]  
        },  
        "system" : "http://example.org/MIN",  
        "value" : "12345678901"  
      }],  
      "name" : [{  
        "family" : "SMITH",  
        "given" : ["JOE"]  
      }],  
      "gender" : "male"  
    }  
  }]  
}
```

## Formato de las respuestas
<a name="submit-response-format"></a>

### Respuesta satisfactoria (200 OK)
<a name="submit-success-response"></a>

Recibirá un paquete de respuesta del PAS que contiene:
+ **ClaimResponse**con `outcome: "queued"` y `status: "active"`
+ Todos los recursos originales de su solicitud
+ Marca de tiempo que confirma la recepción

```
{  
  "resourceType" : "Bundle",  
  "identifier": {  
        "system": "http://example.org/SUBMITTER_TRANSACTION_IDENTIFIER",  
        "value": "5269367"  
  },  
  "type" : "collection",  
  "timestamp" : "2005-05-02T11:02:00+05:00",  
  "entry" : [{  
    "fullUrl" : "http://example.org/fhir/ClaimResponse/PractitionerRequestorPendingResponseExample",  
    "resource" : {  
      "resourceType" : "ClaimResponse",  
      "id" : "PractitionerRequestorPendingResponseExample",  
      "meta" : {  
        "profile" : ["http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claimresponse"]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"  
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:02:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "requestor" : {  
        "reference" : "PractitionerRole/ReferralPractitionerRoleExample"  
      },  
      "request" : {  
        "reference" : "Claim/MedicalServicesAuthorizationExample"  
      },  
      "outcome" : "queued"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Claim/MedicalServicesAuthorizationExample",  
    "resource" : {  
      "resourceType" : "Claim",  
      "id" : "MedicalServicesAuthorizationExample",  
      "meta" : {  
        "profile": [  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim",  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-claim|2.1.0"  
        ]  
      },  
      "identifier" : [{  
        "system" : "http://example.org/PATIENT_EVENT_TRACE_NUMBER",  
        "value" : "111099"  
        }  
      }],  
      "status" : "active",  
      "type" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/claim-type",  
          "code" : "professional"  
        }]  
      },  
      "use" : "preauthorization",  
      "patient" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "created" : "2005-05-02T11:01:00+05:00",  
      "insurer" : {  
        "reference" : "Organization/InsurerExample"  
      },  
      "provider" : {  
        "reference" : "Organization/UMOExample"  
      },  
      "priority" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/processpriority",  
          "code" : "normal"  
        }]  
      },  
      "insurance" : [{  
        "sequence" : 1,  
        "focal" : true,  
        "coverage" : {  
          "reference" : "Coverage/InsuranceExample"  
        }  
      }],  
      "item" : [{  
        "extension" : [{  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-serviceItemRequestType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1525",  
              "code" : "IN",  
              "display" : "Initial Medical Services Reservation"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-certificationType",  
          "valueCodeableConcept" : {  
            "coding" : [{  
              "system" : "https://codesystem.x12.org/005010/1322",  
              "code" : "I",  
              "display" : "Initial"  
            }]  
          }  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-authorizationNumber",  
          "valueString" : "1122344"  
        },  
        {  
          "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-administrationReferenceNumber",  
          "valueString" : "33441122"  
        }],  
        "sequence" : 1,  
        "category" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/1365",  
            "code" : "1",  
            "display" : "Medical Care"  
          }]  
        },  
        "productOrService" : {  
          "coding" : [{  
            "system" : "http://www.cms.gov/Medicare/Coding/HCPCS​ReleaseCodeSets",  
            "code" : "99212",  
            "display" : "Established Office Visit"  
          }]  
        },  
        "servicedDate" : "2005-05-10",  
        "locationCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://www.cms.gov/Medicare/Coding/place-of-service-codes/Place_of_Service_Code_Set",  
            "code" : "11"  
          }]  
        }  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/UMOExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "UMOExample",  
      "meta" : {  
        "profile": [  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor",  
            "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-requestor|2.1.0"  
        ]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "8189991234"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "X3"  
        }]  
      }],  
      "name" : "DR. JOE SMITH CORPORATION",  
      "address" : [{  
        "line" : ["111 1ST STREET"],  
        "city" : "SAN DIEGO",  
        "state" : "CA",  
        "postalCode" : "92101",  
        "country" : "US"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Organization/InsurerExample",  
    "resource" : {  
      "resourceType" : "Organization",  
      "id" : "InsurerExample",  
      "meta" : {  
           "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-insurer|2.1.0"  
            ]  
      },  
      "identifier" : [{  
        "system" : "http://hl7.org/fhir/sid/us-npi",  
        "value" : "1234567893"  
      }],  
      "active" : true,  
      "type" : [{  
        "coding" : [{  
          "system" : "https://codesystem.x12.org/005010/98",  
          "code" : "PR"  
        }]  
      }],  
      "name" : "MARYLAND CAPITAL INSURANCE COMPANY"  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Coverage/InsuranceExample",  
    "resource" : {  
      "resourceType" : "Coverage",  
      "id" : "InsuranceExample",  
      "meta": {  
            "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-coverage|2.1.0"  
            ]  
        },  
      "status" : "active",  
      "subscriberId" : "1122334455",  
      "beneficiary" : {  
        "reference" : "Patient/SubscriberExample"  
      },  
      "relationship" : {  
        "coding" : [{  
          "system" : "http://terminology.hl7.org/CodeSystem/subscriber-relationship",  
          "code" : "self"  
        },  
        {  
          "system" : "https://codesystem.x12.org/005010/1069",  
          "code" : "18"  
        }]  
      },  
      "payor" : [{  
        "reference" : "Organization/InsurerExample"  
      }]  
    }  
  },  
  {  
    "fullUrl" : "http://example.org/fhir/Patient/SubscriberExample",  
    "resource" : {  
      "resourceType" : "Patient",  
      "id" : "SubscriberExample",  
      "meta": {  
            "profile": [  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-subscriber",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary",  
                "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/profile-beneficiary|2.1.0"  
            ]  
        },  
      "extension" : [{  
        "url" : "http://hl7.org/fhir/us/davinci-pas/StructureDefinition/extension-militaryStatus",  
        "valueCodeableConcept" : {  
          "coding" : [{  
            "system" : "https://codesystem.x12.org/005010/584",  
            "code" : "RU"  
          }]  
        }  
      }],  
      "identifier" : [{  
        "type" : {  
          "coding" : [{  
            "system" : "http://terminology.hl7.org/CodeSystem/v2-0203",  
            "code" : "MB"  
          }]  
        },  
        "system" : "http://example.org/MIN",  
        "value" : "12345678901"  
      }],  
      "name" : [{  
        "family" : "SMITH",  
        "given" : ["JOE"]  
      }],  
      "gender" : "male"  
    }  
  }]  
}
```

## Respuestas de error
<a name="submit-error-responses"></a>

### 400: solicitud maligna
<a name="submit-400-error"></a>

Se devuelve cuando el formato de la solicitud no es válido o está mal formado.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "invalid",  
    "diagnostics": "The provided payload was invalid and could not be parsed correctly."  
  }]  
}
```

### Condición previa con error, 412
<a name="submit-412-error"></a>

Se devuelve cuando ya se ha presentado la misma solicitud de autorización previa (se ha detectado un envío duplicado).

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "processing",  
    "diagnostics": "PreAuth Claim already exists"  
  }]  
}
```

**Idempotencia**  
La `$submit` operación es idempotente. Si se envía la misma solicitud varias veces, no se duplicarán las solicitudes de autorización previa. En su lugar, recibirás un mensaje de error 412 que te indicará que lo utilices `$inquire` para comprobar el estado del envío original.

### 4.2.2 Entidad inprocesable
<a name="submit-422-error"></a>

Se devuelve cuando la validación del FHIR falla.

```
{  
  "resourceType": "OperationOutcome",  
  "issue": [{  
    "severity": "error",  
    "code": "required",  
    "diagnostics": "Bundle contains more than one preauthorization claim"  
  }]  
}
```

## Reglas de validación
<a name="submit-validation-rules"></a>

HealthLake realiza una validación exhaustiva de su envío:

### Validación del paquete
<a name="submit-bundle-validation"></a>
+ Debe ajustarse al perfil del paquete de solicitud de PAS
+ `Bundle.type`debe ser `"collection"`
+ Puede contener varios recursos de reclamación
+ Sin embargo, debe contener exactamente un recurso de reclamación con uso previo a la autorización
  + Y este recurso de reclamación debe ser la primera entrada del paquete
+ Todos los recursos a los que se hace referencia deben incluirse en el paquete

### Validación de la reclamación
<a name="submit-claim-validation"></a>
+ Debe ajustarse al perfil de reclamación del PAS
+ `Claim.use`debe ser `"preauthorization"`
+ Campos obligatorios:`patient`,`insurer`,`provider`,`created`, `priority`
+ Los identificadores comerciales deben estar presentes y ser válidos

### Validación de recursos
<a name="submit-resource-validation"></a>
+ Todos los recursos deben ajustarse a sus respectivos perfiles de PAS
+ Deben estar presentes los recursos de apoyo necesarios (paciente, cobertura, organización)
+ Las referencias cruzadas deben ser válidas y poder resolverse dentro del paquete

## Especificaciones de rendimiento
<a name="submit-performance-specs"></a>


| Métrica | Especificación  | 
| --- | --- | 
| Límite de tamaño del paquete | 5 MB como máximo | 
| Límite de recuento de recursos | 500 recursos por paquete | 

## Permisos necesarios
<a name="submit-required-permissions"></a>

Para usar la `$submit` operación, se puede usar AWS Sigv4 o SMART en FHIR:
+ Asegúrese de que su función de IAM tenga: `healthlake:SubmitPreAuthClaim` - Llamar a la operación

**SMART en los osciloscopios FHIR**  
**Alcances mínimos requeridos:**
+ **SMART v1**: `user/Claim.write & <all_resourceTypes_in_Bundle>.write`
+ **SMART v2**: `user/Claim.c & <all_resourceTypes_in_Bundle>.c or system/*.*`

## Notas importantes sobre la implementación
<a name="submit-implementation-notes"></a>

### Persistencia de los recursos
<a name="submit-resource-persistence"></a>
+ Todas las entradas del paquete se conservan como recursos FHIR individuales en su almacén de datos
+ Las suministradas por el cliente se conservan cuando se proporcionan IDs 
+ El historial de versiones se mantiene con fines de auditoría
+ La detección de duplicados evita conflictos de recursos

### Comportamiento de procesamiento
<a name="submit-processing-behavior"></a>
+ Cada envío válido da como resultado exactamente uno ClaimResponse con `"queued"` resultado
+ Los envíos no válidos devuelven 400 o 422 códigos de estado con información de error detallada
+ Los errores del sistema devuelven los códigos de estado 5xx correspondientes
+ Todos los envíos aprobados devuelven el estado 200 con un estado pendiente ClaimResponse

### Requisitos del paquete
<a name="submit-bundle-requirements-impl"></a>
+ `Bundle.entry.fullUrl`los valores deben estar en formato REST URLs o en `"urn:uuid:[guid]"` formato
+ Todos los envíos GUIDs deben ser únicos (excepto las mismas instancias de recursos)
+ Los recursos a los que se hace referencia deben existir en el paquete o ser resolubles

## Operaciones de relacionadas
<a name="submit-related-operations"></a>
+ `Claim/$inquire`- Consulta el estado de una solicitud de autorización previa presentada
+ `Patient/$everything`- Recupere datos completos de los pacientes para utilizarlos en el contexto de la autorización previa

# Validación de los recursos del FHIR con `$validate`
<a name="reference-fhir-operations-validate"></a>

AWS HealthLake ahora admite la `$validate` operación con los recursos del FHIR, lo que le permite validar un recurso según la especificación del FHIR y comprobar su conformidad con un perfil específico o una definición de recurso base sin realizar ninguna operación de almacenamiento. Esta operación resulta especialmente útil cuando se necesita:
+ Validar los requisitos de conformidad con el CMS del FHIR
+ Pruebe los recursos antes de usarlos en producción
+ Proporcione comentarios de validación en tiempo real a medida que los usuarios editan los datos clínicos
+ Reduzca el envío de datos no válidos para crear y actualizar APIs

## De uso
<a name="validate-usage"></a>

La `$validate` operación se puede invocar en los recursos del FHIR mediante los métodos POST:

**Operaciones admitidas**  


```
POST [base]/[type]/[id]/$validate
POST [base]/[type]/$validate
```

## Cargas útiles compatibles
<a name="validate-payloads"></a>

**Recurso de parámetros**  


HealthLake admite los siguientes `$validate` parámetros del FHIR:


| Parámetro | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| resource | Recurso | Sí | El recurso que se va a validar | 
| profile | canonical | No | URL canónica del perfil con el que se va a realizar la validación | 
| mode | code | No | Modo de validación:create, o update | 

**Recurso directo con parámetros de consulta**  



| Parámetro | Tipo | Obligatorio | Description (Descripción) | 
| --- | --- | --- | --- | 
| profile | canonical | No | URL canónica del perfil con el que realizar la validación | 
| mode | code | No | Modo de validación:create, o update | 

## Ejemplos
<a name="validate-examples"></a>

**Solicitud POST de recurso con carga útil de ID y parámetros**  


```
POST [base]/Patient/example-patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "id": "example-patient",
        "name": [
          {
            "family": "Smith",
            "given": ["John"]
          }
        ],
        "gender": "male",
        "birthDate": "1990-01-01"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "create"
    }
  ]
}
```

**Solicitud POST de carga útil sobre el tipo de recurso y los parámetros**  


```
POST [base]/Patient/$validate
Content-Type: application/fhir+json

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "resource",
      "resource": {
        "resourceType": "Patient",
        "name": [
          {
            "family": "Doe",
            "given": ["Jane"]
          }
        ],
        "gender": "female",
        "birthDate": "1985-05-15"
      }
    },
    {
      "name": "profile",
      "valueCanonical": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
    },
    {
      "name": "mode",
      "valueString": "update"
    }
  ]
}
```

**Solicitud POST de recurso con ID y carga útil de recurso directa**  


```
POST [base]/Patient/example-patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**Solicitud POST de tipo de recurso y carga útil directa del recurso**  


```
POST [base]/Patient/$validate?profile=http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient&mode=create
Content-Type: application/fhir+json

{
    "resourceType": "Patient",
    "id": "example-patient",
    "name": [
        {
        "family": "Smith",
        "given": ["John"]
        }
    ],
    "gender": "male",
    "birthDate": "1990-01-01"
}
```

**Respuesta de ejemplo**  
La operación devuelve un OperationOutcome recurso con los resultados de la validación:

```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "information",
      "code": "informational",
      "diagnostics": "Validation successful"
    }
  ]
}
```

**Ejemplo de respuesta con errores de validación**  


```
{
  "resourceType": "OperationOutcome",
  "issue": [
    {
      "severity": "error",
      "code": "required",
      "details": {
        "text": "Missing required element"
      },
      "diagnostics": "Patient.identifier is required by the US Core Patient profile",
      "location": [
        "Patient.identifier"
      ]
    },
    {
      "severity": "warning",
      "code": "code-invalid",
      "details": {
        "text": "Invalid code value"
      },
      "diagnostics": "The provided gender code is not from the required value set",
      "location": [
        "Patient.gender"
      ]
    }
  ]
}
```

## Comportamiento
<a name="validate-behavior"></a>

La `$validate` operación:

1. Valida el recurso según la especificación del FHIR y la definición del recurso base

1. Comprueba la conformidad con los perfiles especificados cuando se proporciona el parámetro `profile`

1. Valida en función del modo (`create`o) especificado `update`

1. Devuelve los resultados de la validación detallados, incluidos los errores, las advertencias y los mensajes informativos

1. No realiza ninguna operación de almacenamiento, solo de validación

1. Devuelve HTTP 200 OK cuando se puede realizar la validación, independientemente de si se han detectado problemas de validación

## Modos de validación
<a name="validate-modes"></a>
+ **crear**: valida el recurso como si se estuviera creando (recurso nuevo)
+ **actualizar**: valida el recurso como si se estuviera actualizando (recurso existente)

## Gestión de errores
<a name="validate-error-handling"></a>

La operación devuelve:
+ 200 OK: La validación se realizó correctamente (independientemente del resultado de la validación)
+ 400 Solicitud errónea: el formato o los parámetros de la solicitud no son válidos
+ 404 No se encontró: no se encontró el tipo de recurso o perfil

Para obtener más información sobre la especificación de la `$validate` operación, consulte la documentación de [recursos `$validate` del FHIR R4](https://www.hl7.org/fhir/R4/operation-resource-validate.html).