> ## Documentation Index
> Fetch the complete documentation index at: https://docs.rxscale.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Rezepte

> Rezeptdetails über die Management API anzeigen

# Rezepte

Rufen Sie Rezeptinformationen ab, einschließlich Arztdaten und Status.

## Rezeptdetails abrufen

```bash theme={null}
GET /v1/management/prescriptions/{prescription_uid}
```

<ParamField path="prescription_uid" type="string" required>
  Die Rezept-UID
</ParamField>

**Erforderliche Berechtigung:** `prescription:read`

### Beispielanfrage

```bash theme={null}
curl -X GET "https://api.rxscale.com/v1/management/prescriptions/px-abc123" \
  -H "X-API-Key: your-api-key-here"
```

### Antwort

```json theme={null}
{
  "uid": "px-abc123",
  "status": "signed",
  "doctor": {
    "uid": "doc-456",
    "display_name": "Dr. Schmidt"
  },
  "rendered": true
}
```

### Antwortfelder

| Feld                  | Typ     | Beschreibung                                                                       |
| --------------------- | ------- | ---------------------------------------------------------------------------------- |
| `uid`                 | string  | Eindeutiger Bezeichner für das Rezept                                              |
| `status`              | string  | Aktueller Rezeptstatus (z.B. `signed`, `waiting_for_doctor`)                       |
| `doctor`              | object  | Der verschreibende Arzt                                                            |
| `doctor.uid`          | string  | Arzt-UID                                                                           |
| `doctor.display_name` | string  | Anzeigename des Arztes                                                             |
| `rendered`            | boolean | `true`, wenn ein gerendertes PDF für das Rezept verfügbar ist, andernfalls `false` |

### Fehlerantworten

| Statuscode | Beschreibung                                                    |
| ---------- | --------------------------------------------------------------- |
| `403`      | Fehlende Berechtigung `prescription:read`                       |
| `404`      | Rezept nicht gefunden oder gehört zu einer anderen Organisation |

## Extern signierte Rezepte

Rezepte, deren Items mit `_skip_validation` (oder `_rxscale_skip_validation`) auf Shopify-Line-Item-Ebene oder in den zusätzlichen Details auf Bestellebene angelegt wurden – also Items ohne angehängte Anamnese – können *außerhalb* der rxscale-Plattform signiert und anschließend über die Management API zur Belieferung registriert werden. Wenn beide Ebenen gesetzt sind, hat der Wert auf Line-Item-Ebene Vorrang vor dem Wert auf Bestellebene.

Der Ablauf besteht aus **zwei API-Aufrufen**:

1. `POST /v1/management/prescriptions/{prescription_uid}/render` – fordert rxscale auf, das unsignierte Rezept-PDF zu rendern. Der Endpoint kehrt sofort zurück; das PDF wird asynchron erzeugt und steht anschließend als `prescription.file` zur Verfügung.
2. `POST /v1/management/prescriptions/{prescription_uid}/external-sign` – sobald das PDF verfügbar ist, wird das Rezept als `EXTERNALLY_SIGNED` markiert, das PDF in den Signed-Bucket kopiert und an die Apotheke übermittelt.

<Note>
  Beide Endpoints erfordern die Berechtigung `prescription:external_sign`.
</Note>

<Warning>
  Nur Rezepte, bei denen **alle** Items keine `anamnesis_uid` besitzen, können extern signiert werden. Gemischte Rezepte werden mit `409 Conflict` abgelehnt.
</Warning>

## Rezept-PDF rendern

```bash theme={null}
POST /v1/management/prescriptions/{prescription_uid}/render
```

<ParamField path="prescription_uid" type="string" required>
  Die Rezept-UID
</ParamField>

**Erforderliche Berechtigung:** `prescription:external_sign`

Stößt das asynchrone Rendern des unsignierten Rezept-PDFs an. Der Endpoint veröffentlicht ein `prescription.render`-Event und antwortet mit `202 Accepted`. Pollen Sie `GET /v1/management/prescriptions/{prescription_uid}` (oder warten Sie auf einen Webhook), bis `file` befüllt ist, bevor Sie External-Sign aufrufen.

### Beispielanfrage

```bash theme={null}
curl -X POST "https://api.rxscale.com/v1/management/prescriptions/px-abc123/render" \
  -H "X-API-Key: your-api-key-here"
```

### Antwort (202 Accepted)

```json theme={null}
{
  "uid": "px-abc123",
  "message": "Prescription rendering triggered"
}
```

### Fehlerantworten

| Statuscode | Beschreibung                                                    |
| ---------- | --------------------------------------------------------------- |
| `403`      | Fehlende Berechtigung `prescription:external_sign`              |
| `404`      | Rezept nicht gefunden oder gehört zu einer anderen Organisation |

## Rezept extern signieren

```bash theme={null}
POST /v1/management/prescriptions/{prescription_uid}/external-sign
```

<ParamField path="prescription_uid" type="string" required>
  Die Rezept-UID
</ParamField>

**Erforderliche Berechtigung:** `prescription:external_sign`

Markiert ein bereits gerendertes Rezept als `EXTERNALLY_SIGNED`. Der Endpoint:

1. Prüft, dass das Rezept den Status `WAITING_FOR_DOCTOR` hat, alle Items keine Anamnese besitzen und das gerenderte `file` vorhanden ist.
2. Kopiert das PDF vom Unsigned-Bucket in den Signed-Prescription-Bucket.
3. Setzt den Rezeptstatus auf `EXTERNALLY_SIGNED` und schreibt einen `PrescriptionLog`-Eintrag, der dem aufrufenden API-Key zugeordnet ist.
4. Veröffentlicht ein `pharmacy_manager.send_prescription`-Event, damit das Rezept an die Apotheke übermittelt wird.

### Beispielanfrage

```bash theme={null}
curl -X POST "https://api.rxscale.com/v1/management/prescriptions/px-abc123/external-sign" \
  -H "X-API-Key: your-api-key-here"
```

### Antwort (200 OK)

```json theme={null}
{
  "uid": "px-abc123",
  "status": "EXTERNALLY_SIGNED"
}
```

### Fehlerantworten

| Statuscode | Beschreibung                                                                                                                             |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| `403`      | Fehlende Berechtigung `prescription:external_sign`                                                                                       |
| `404`      | Rezept nicht gefunden oder gehört zu einer anderen Organisation                                                                          |
| `409`      | Rezept ist nicht im Status `WAITING_FOR_DOCTOR`, mindestens ein Item hat eine Anamnese, oder das gerenderte PDF ist noch nicht vorhanden |
