> ## 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.

# Review-Anfragen

> Eine Ärztin oder einen Arzt bitten, einen Patienten ohne Bestellung verschreibungspflichtiger Produkte zu prüfen, und das Ergebnis verfolgen

# Review-Anfragen

Mit einer Review-Anfrage bitten Sie eine Ärztin oder einen Arzt Ihrer Organisation, sich einen
Patienten erneut anzusehen, ohne dass der Patient zuvor verschreibungspflichtige Produkte
bestellt. Der typische Fall ist ein Nachkauf: Der Patient füllt einen kurzen Folgefragebogen aus
und bezahlt in Ihrem Shop eine Rezeptgebühr, und eine Ärztin oder ein Arzt entscheidet über das
weitere Vorgehen.

Mit der Anfrage senden Sie die neue Anamnese des Patienten. Der Arzt findet sie in einer eigenen
Liste **Review-Anfragen** im Anamnese-Center und antwortet auf eine von drei Arten:

* **Behandlung erstellen.** Der Arzt legt in Ihrem Shop eine Entwurfsbestellung (Draft Order) an.
  Der Patient bezahlt sie, und das Rezept durchläuft die übliche Prüfung und Signatur.
* **Videotermin anfragen.** Der Arzt sendet dem Patienten einen Buchungslink für einen Termin bei
  sich.
* **Ablehnen**, mit einer Begründung.

Das Ergebnis verfolgen Sie über den Webhook
[`review_request_updated`](https://docs.rxscale.com/de/webhooks/events#review-request-updated). Den aktuellen Stand
können Sie jederzeit abrufen.

Alle Endpoints beziehen sich auf die Organisation, der der API-Schlüssel gehört. Eine
Review-Anfrage, ein Shop, ein Patient oder eine Anamnese einer anderen Organisation wird wie
nicht vorhanden behandelt.

## Der Ablauf im Überblick

**1. Der Patient reicht den Fragebogen ein**

Die Anamnese muss RxScale erreichen, bevor Sie die Prüfung anfragen. Reichen Sie sie über die
[Anamnese-API](https://docs.rxscale.com/de/api-reference/public/anamnesis-v4.md#anamnese-übermitteln) ein und bewahren
Sie die Anamnese-UID auf, die RxScale zurückgibt: Die Review-Anfrage adressiert die Anamnese
ausschließlich über diese UID.

**2. Der Patient bezahlt die Rezeptgebühr**

Zum Beispiel in Ihrem Shopify-Shop.

**3. Sie erstellen die Review-Anfrage**

Rufen Sie `POST /v1/management/review-requests` auf, zum Beispiel aus Shopify Flow, sobald
die Gebührenbestellung bezahlt ist.

**4. Der Arzt entscheidet**

Sie erhalten `review_request_updated` mit der Entscheidung des Arztes.

**5. Sie handeln entsprechend**

Senden Sie dem Patienten den Buchungslink (`video_requested`), senden Sie ihm die Rechnung der
Entwurfsbestellung (`draft_created`), oder erstatten Sie die Gebühr, wenn Ihre Bedingungen das
vorsehen (`declined`).

**6. Der Patient bezahlt die Entwurfsbestellung**

RxScale verknüpft die bezahlte Bestellung mit der Anfrage, und Sie erhalten `completed`.

> [!NOTE]
>
> **RxScale rechnet für Review-Anfragen in Ihren Shops nichts ab.** Ein Buchungslink, den der Arzt
> für einen Ihrer Shops erstellt, trägt in RxScale keinen Preis: Sie entscheiden, ob und wie der
> Patient den Videotermin bezahlt. Lehnt der Arzt ab, meldet RxScale nur `declined`. Ob Sie die
> Rezeptgebühr erstatten, entscheiden Sie, und die Erstattung nehmen Sie in Ihrem Shop vor.

> [!NOTE]
>
> Stellen Sie sicher, dass die Bestellung der Rezeptgebühr keine Apotheke erreicht. Markieren Sie die
> SKU des Gebührenprodukts mit `skip_for_pharmacy_orders: true` (siehe
> [SKUs](https://docs.rxscale.com/de/api-reference/management/skus.md)).

### Wer die Anfrage erhält

Die Anfrage wird dem Arzt zugewiesen, der das jüngste signierte Rezept des Patienten in Ihrer
Organisation ausgestellt hat. Hat der Patient kein signiertes Rezept oder ist das Konto dieses
Arztes archiviert, kommt die Anfrage ohne Zuweisung an, und jeder Arzt Ihrer Organisation kann
sie übernehmen.

Der Arzt kann die Anfrage an einen Kollegen weitergeben, und Ihre Admins können sie im
Admin-Portal zuweisen oder neu zuweisen. Jeder Wechsel des Arztes sendet `assigned`. Eine Anfrage
bleibt bei ihrem Arzt, bis er sie bearbeitet: Keine Frist gibt sie automatisch wieder frei.

### Ob eine asynchrone Prüfung zulässig ist

RxScale entscheidet nicht, ob ein Patient ohne Sprechstunde geprüft werden darf, zum Beispiel ob
zuerst eine Videosprechstunde fällig ist oder ob die letzte weniger als ein Jahr zurückliegt. Das
entscheiden Sie, bevor Sie die Anfrage senden. Der Arzt sieht das Datum des letzten Videotermins
des Patienten und kann statt der Behandlung einen Videotermin anfragen.

## Berechtigungen

* `review_request:write` -- erforderlich, um eine Review-Anfrage zu erstellen und zu stornieren.
* `review_request:read` -- erforderlich, um eine Review-Anfrage abzurufen.

Ein Schlüssel mit `review_request:write` erhält nicht automatisch `review_request:read`; fügen Sie
beide hinzu, wenn Sie schreiben und lesen möchten. Für den Webhook benötigen Sie außerdem die
Berechtigungen `notification_subscription` (siehe
[Webhooks](https://docs.rxscale.com/de/api-reference/management/webhooks.md)). Wenden Sie sich an Ihren
RxScale-Ansprechpartner, um Berechtigungen anzupassen.

Alle Anfragen authentifizieren sich über den Header `X-API-Key`. Details finden Sie unter
[Authentifizierung](https://docs.rxscale.com/de/authentication.md).

## Review-Anfrage erstellen

```bash theme={null}
POST /v1/management/review-requests
```

Bittet einen Arzt, die Anamnese des Patienten zu prüfen.

**Erforderliche Berechtigung:** `review_request:write`

### Anfragekörper

**external\_id** `string` *required*

Ihre ID für diese Anfrage, 1 bis 255 Zeichen. Sie muss innerhalb Ihrer Organisation eindeutig
sein und macht den Aufruf wiederholbar: siehe [Anfrage wiederholen](#repeating-a-request).

**type** `string` *required*

Die Art der Prüfung. Derzeit nur `repurchase` (Nachkauf).

**shop\_identifier** `string` *required*

Identifier des Shops, dessen Kunde der Patient ist. Der Shop muss zu Ihrer Organisation gehören.

**shop\_customer\_id** `string` *required*

Die ID des Kunden in Ihrem Shop.

**anamnesis\_uid** `string` *required*

UID der Anamnese in RxScale, wie RxScale sie beim Einreichen der Anamnese zurückgegeben hat. Die
einzige Art, die Anamnese zu adressieren (siehe unten).

**fee\_shop\_order\_external\_id** `string`

Die ID der Bestellung der Rezeptgebühr in Ihrem Shop, 1 bis 255 Zeichen. Verwenden Sie dieselbe
ID wie beim Filter `shop_order_external_id` unter [Bestellungen](https://docs.rxscale.com/de/api-reference/management/orders.md),
bei Shopify die Bestell-ID. Wird so gespeichert, wie Sie sie senden, zur Nachverfolgung, und beim
Abruf und in Webhooks zurückgegeben. RxScale muss die Bestellung noch nicht kennen: Shopify Flow
kann schneller sein, als die Bestellung RxScale erreicht.

Felder, die oben nicht aufgeführt sind, werden mit `400` abgewiesen.

### Patient und Anamnese identifizieren

* Der Patient über `shop_identifier` und `shop_customer_id`.
* Die Anamnese über `anamnesis_uid`, ihre UID in RxScale. Die Anamnese muss vorher bei RxScale
  eingereicht sein, zum Beispiel mit
  [Anamnese übermitteln](https://docs.rxscale.com/de/api-reference/public/anamnesis-v4.md#anamnese-übermitteln), dessen
  Antwort diese UID enthält.

Anders als bei [Anamnese mit Patient verknüpfen](https://docs.rxscale.com/de/api-reference/management/anamnesis.md) nimmt
eine Review-Anfrage keine externe Einreichung an: `external_submission_uid`, `external_identifier`
und `provider_identifier` werden als unbekannte Felder mit `400` abgewiesen. Die UID, die
[Externe Anamnese übermitteln](https://docs.rxscale.com/de/api-reference/public/anamnesis-v4.md#externe-anamnese-übermitteln)
zurückgibt, ist die UID der Einreichung, keine Anamnese-UID, und wird mit `404` beantwortet.

Ist die Anamnese noch mit keinem Patienten verknüpft, verknüpft die Review-Anfrage sie mit diesem
Patienten, genau wie der Verknüpfungs-Endpoint: Die Antworten füllen die Profilfelder des
Patienten, und die Anamnese erscheint in RxScale beim Patienten. Ist die Anamnese bereits mit
einem **anderen** Patienten verknüpft, wird die Anfrage mit `409` abgewiesen, und es wird nichts
angelegt.

### Beispielanfrage

```bash theme={null}
curl -X POST "https://api.rxscale.com/v1/management/review-requests" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "htv-rr-8f2c",
    "type": "repurchase",
    "shop_identifier": "menopause-de",
    "shop_customer_id": "7321456789012",
    "anamnesis_uid": "an-abc123",
    "fee_shop_order_external_id": "6012345678901"
  }'
```

### Antwort (201 Created)

```json theme={null}
{
  "uid": "rr-abc123",
  "external_id": "htv-rr-8f2c",
  "type": "repurchase",
  "status": "open",
  "created_at": 1794045600
}
```

| Feld | Typ | Beschreibung |
| - | - | - |
| `uid` | string | Die ID der Review-Anfrage bei RxScale. Damit rufen Sie die Anfrage ab oder stornieren sie |
| `external_id` | string | Ihre ID, wie gesendet |
| `type` | string | Die Art der Prüfung, zum Beispiel `repurchase` |
| `status` | string | Der aktuelle Status. Eine neue Anfrage ist `open`. Siehe [Status-Lebenszyklus](#status-lifecycle) |
| `created_at` | integer | Unix-Zeitstempel (Sekunden) der Erstellung |

Die Antwort nennt den Arzt nicht. Rufen Sie die Anfrage ab, um `doctor_uid` zu sehen.

### Anfrage wiederholen

> [!NOTE]
>
> Ein Aufruf mit einer `external_id`, die Sie bereits verwendet haben, legt nichts an. Er antwortet
> mit `200 OK` statt `201` und liefert die bestehende Anfrage in ihrem aktuellen Stand, auch wenn
> sich der übrige Anfragekörper unterscheidet. Eine Wiederholung durch Shopify Flow oder ein Aufruf,
> dessen Antwort Sie nicht erhalten haben, ist daher unschädlich.
>
> Für eine neue Prüfung, zum Beispiel nachdem eine Anfrage abgelehnt oder storniert wurde, senden Sie
> eine neue `external_id`.

### Fehlerantworten

| Code | Bedeutung |
| - | - |
| `400` | Validierungsfehler: Ein Pflichtfeld fehlt (auch `anamnesis_uid`), ein Wert ist ungültig, oder ein Feld ist unbekannt (auch die Felder einer externen Einreichung) |
| `401` | Fehlender oder ungültiger API-Schlüssel |
| `403` | Dem API-Schlüssel fehlt `review_request:write` |
| `404` | Shop, Patient oder Anamnese nicht gefunden oder nicht Teil Ihrer Organisation |
| `409` | Die Anamnese ist bereits mit einem anderen Patienten verknüpft |

Wird eine Anfrage abgewiesen, wird nichts gespeichert.

Ein `400` benennt die betroffenen Felder:

```json theme={null}
{
  "error": {
    "external_id": ["Missing data for required field."],
    "type": ["Must be one of: repurchase."]
  }
}
```

Ein `404` enthält je Ressource eine feste Meldung. Sie ist dieselbe, ob der Datensatz nicht
existiert oder zu einer anderen Organisation gehört, und bestätigt also nie, dass ein Datensatz
real ist. Geprüft wird zuerst der Shop, dann die Anamnese, dann der Patient.

| Meldung | Bedeutung |
| - | - |
| `Shop not found.` | Kein Shop mit diesem `shop_identifier` in Ihrer Organisation |
| `Anamnesis not found.` | Keine Anamnese mit dieser `anamnesis_uid` in Ihrer Organisation |
| `Patient not found.` | Kein Kunde mit dieser `shop_customer_id` in dem Shop |

```json theme={null}
{
  "error": "Patient not found."
}
```

Ein `409`:

```json theme={null}
{
  "error": "This anamnesis is already connected to a different patient."
}
```

## Review-Anfrage abrufen

```bash theme={null}
GET /v1/management/review-requests/{review_request_uid}
```

Liefert den aktuellen Stand einer Review-Anfrage. Der Antwortkörper enthält dieselben Felder wie
der Webhook `review_request_updated` sowie die Zeitstempel. Sie können ihn daher immer verwenden,
wenn Ihnen ein Webhook entgangen ist.

**Erforderliche Berechtigung:** `review_request:read`

**review\_request\_uid** `string` *required*

Die `uid`, die Sie beim Erstellen der Anfrage erhalten haben

### Beispielanfrage

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

### Antwort (200 OK)

```json theme={null}
{
  "uid": "rr-abc123",
  "external_id": "htv-rr-8f2c",
  "type": "repurchase",
  "status": "draft_created",
  "created_at": 1794045600,
  "closed_at": null,
  "shop_identifier": "menopause-de",
  "shop_customer_id": "7321456789012",
  "anamnesis_uid": "an-abc123",
  "doctor_uid": "doc-abc123",
  "decline_reason": null,
  "booking": {
    "launch_url": "https://meet.rxscale.com/booking?launch=blc_Hq4...",
    "expires_at": 1795271400,
    "appointment_type_uid": "at-abc123"
  },
  "appointment": {
    "meeting_uid": "m-abc123",
    "status": "completed",
    "start_date": 1794301200
  },
  "draft_order": {
    "id": "gid://shopify/DraftOrder/1122334455",
    "name": "#D1042",
    "invoice_url": "https://menopause-de.myshopify.com/12345678/invoices/abc123"
  },
  "fee_shop_order_external_id": "6012345678901",
  "shop_order_external_id": null
}
```

| Feld | Typ | Beschreibung |
| - | - | - |
| `uid` | string | Die ID der Review-Anfrage bei RxScale |
| `external_id` | string | Ihre ID, wie beim Erstellen gesendet |
| `type` | string | Die Art der Prüfung, zum Beispiel `repurchase` |
| `status` | string | Der aktuelle Status. Siehe [Status-Lebenszyklus](#status-lifecycle) |
| `created_at` | integer | Unix-Zeitstempel der Erstellung |
| `closed_at` | integer oder null | Unix-Zeitstempel, zu dem die Anfrage einen Endstatus (`completed`, `declined` oder `cancelled`) erreicht hat, sonst `null` |
| `shop_identifier` | string | Der Shop, für den die Anfrage gesendet wurde |
| `shop_customer_id` | string oder null | Die ID des Patienten in Ihrem Shop |
| `anamnesis_uid` | string | UID der Anamnese in RxScale. Bei einer externen Einreichung die Anamnese, die RxScale daraus angelegt hat |
| `doctor_uid` | string oder null | UID des Arztes, der die Anfrage hat, oder `null`, solange sie nicht zugewiesen ist. Lehnt ein Arzt eine nicht zugewiesene Anfrage ab, wird er hier genannt |
| `decline_reason` | string oder null | Die Begründung, die Arzt oder Admin bei der Ablehnung angegeben haben, sonst `null` |
| `booking` | object oder null | Der aktuelle Buchungslink, wenn der Arzt einen Videotermin angefragt hat, sonst `null` |
| `booking.launch_url` | string | Der Link, über den der Patient bucht |
| `booking.expires_at` | integer | Unix-Zeitstempel, bis zu dem der Patient über den Link buchen kann. Wurde die Anfrage storniert, abgelehnt oder abgeschlossen, bevor der Patient den Link verwendet hat, der Zeitpunkt, zu dem der Link ungültig wurde |
| `booking.appointment_type_uid` | string | Die Terminart, die der Arzt gewählt hat |
| `appointment` | object oder null | Der Termin, den der Patient über den aktuellen Buchungslink gebucht hat, sonst `null` |
| `appointment.meeting_uid` | string | Die ID des Termins. Damit stornieren Sie den Termin mit [`POST /v1/management/scheduling/appointments/{meeting_uid}/cancel`](https://docs.rxscale.com/de/api-reference/management/scheduling#einen-termin-stornieren) |
| `appointment.status` | string | Der Status des Termins: `held`, `confirmed`, `cancelled`, `expired`, `completed` oder `no_show` |
| `appointment.start_date` | integer | Unix-Zeitstempel des Terminbeginns |
| `draft_order` | object oder null | Die Entwurfsbestellung, die der Arzt in Ihrem Shop angelegt hat, sonst `null` |
| `draft_order.id` | string | Die Shopify-ID der Entwurfsbestellung |
| `draft_order.name` | string | Der Name der Entwurfsbestellung, zum Beispiel `#D1042` |
| `draft_order.invoice_url` | string | Der Rechnungslink der Entwurfsbestellung, über den der Patient bezahlt |
| `fee_shop_order_external_id` | string oder null | Die ID der Bestellung der Rezeptgebühr in Ihrem Shop, wie Sie sie beim Erstellen gesendet haben, sonst `null` |
| `shop_order_external_id` | string oder null | Die ID der bezahlten Behandlungsbestellung in Ihrem Shop, sobald RxScale sie verknüpft hat (bei Shopify die Bestell-ID, zum Beispiel `6099887766554`), sonst `null` |

> [!NOTE]
>
> Anders als der Webhook, der `booking` nur bei `video_requested` mitsendet, enthält diese Antwort
> immer den aktuellen Buchungslink, sofern es einen gibt. Hat der Arzt einen neuen Link erstellt,
> ist es der neueste.

> [!NOTE]
>
> Bucht der Patient über den Link, erhalten Sie `review_request_updated` mit
> `change: "appointment_booked"` und der `meeting_uid` des Termins in `appointment`. Ab dann ist
> `appointment` in dieser Antwort und in jedem späteren `review_request_updated` gefüllt. Die Buchung
> meldet außerdem der Webhook [`patient_doctor_meeting_updated`](https://docs.rxscale.com/de/webhooks/events#patient_doctor_meeting_updated),
> der auch jede spätere Änderung am Termin meldet.

### Fehlerantworten

| Code | Bedeutung |
| - | - |
| `401` | Fehlender oder ungültiger API-Schlüssel |
| `403` | Dem API-Schlüssel fehlt `review_request:read` |
| `404` | Review-Anfrage nicht gefunden oder nicht Teil Ihrer Organisation |

```json theme={null}
{
  "error": "Resource not found"
}
```

## Review-Anfrage stornieren

```bash theme={null}
POST /v1/management/review-requests/{review_request_uid}/cancel
```

Storniert eine Review-Anfrage, die noch offen ist, zum Beispiel weil der Patient zurückgetreten ist
oder Sie die Gebühr erstattet haben.

**Erforderliche Berechtigung:** `review_request:write`

**review\_request\_uid** `string` *required*

Die `uid`, die Sie beim Erstellen der Anfrage erhalten haben

**reason** `string`

Warum die Anfrage storniert wird, höchstens 2000 Zeichen. Wird im Verlauf der Anfrage
festgehalten, den Ihre Admins im Admin-Portal sehen.

### Was die Stornierung bewirkt

* Der Status wird `cancelled`, `closed_at` wird gesetzt, und Sie erhalten `review_request_updated`
  mit `change: "cancelled"`.
* Die Anfrage verschwindet aus der Liste des Arztes. Ein Arzt, der sie noch geöffnet hat, erfährt
  bei seiner nächsten Aktion, dass der Shop sie storniert hat.
* Ein Buchungslink, den der Patient noch nicht verwendet hat, wird sofort ungültig.
* Ein Termin, den der Patient **bereits gebucht** hat, bleibt bestehen. Entnehmen Sie seine
  `meeting_uid` dem Webhook `appointment_booked` oder beim Abruf der Anfrage
  `appointment.meeting_uid`, und stornieren Sie ihn dann mit
  [`POST /v1/management/scheduling/appointments/{meeting_uid}/cancel`](https://docs.rxscale.com/de/api-reference/management/scheduling#einen-termin-stornieren);
  dabei gelten die Erstattungsregeln dieses Endpoints.
* Eine Entwurfsbestellung, die der Arzt **bereits angelegt** hat, bleibt in Ihrem Shop. Löschen
  Sie sie in Shopify. Bezahlt der Patient sie trotzdem, verarbeitet RxScale die Bestellung wie
  üblich, und die Anfrage bleibt `cancelled`.

Eine Anfrage, die bereits einen Endstatus hat (`completed`, `declined` oder `cancelled`), wird
nicht verändert, und es wird kein Webhook gesendet: Sie wird unverändert mit `200 OK`
zurückgegeben. Eine wiederholte Stornierung ist daher unschädlich.

### Beispielanfrage

```bash theme={null}
curl -X POST "https://api.rxscale.com/v1/management/review-requests/rr-abc123/cancel" \
  -H "X-API-Key: your-api-key-here" \
  -H "Content-Type: application/json" \
  -d '{
    "reason": "Patientin ist zurückgetreten"
  }'
```

### Antwort (200 OK)

```json theme={null}
{
  "uid": "rr-abc123",
  "external_id": "htv-rr-8f2c",
  "type": "repurchase",
  "status": "cancelled",
  "created_at": 1794045600
}
```

Die Felder sind dieselben wie in der Antwort beim Erstellen. `status` ist `cancelled` oder der
Endstatus, den die Anfrage bereits hatte.

### Fehlerantworten

| Code | Bedeutung |
| - | - |
| `400` | Validierungsfehler, zum Beispiel ein `reason` mit mehr als 2000 Zeichen |
| `401` | Fehlender oder ungültiger API-Schlüssel |
| `403` | Dem API-Schlüssel fehlt `review_request:write` |
| `404` | Review-Anfrage nicht gefunden oder nicht Teil Ihrer Organisation |

## Status-Lebenszyklus

```
open ──Behandlung erstellen──▶ draft_created ──Bestellung bezahlt──▶ completed
  │
  ├──Video anfragen──▶ video_requested ──Behandlung erstellen──▶ draft_created
  │
  └──ablehnen──▶ declined

jeder offene Status ──stornieren──▶ cancelled
```

| Status | Offen oder Endstatus | Bedeutung |
| - | - | - |
| `open` | Offen | Wartet auf den Arzt |
| `video_requested` | Offen | Der Arzt hat dem Patienten einen Buchungslink gesendet. Die Anfrage bleibt hier, bis der Arzt die Behandlung erstellt oder ablehnt, in der Regel nach dem Termin |
| `draft_created` | Offen | Der Arzt hat die Behandlung als Entwurfsbestellung in Ihrem Shop angelegt. Wartet darauf, dass der Patient sie bezahlt |
| `completed` | Endstatus | Der Patient hat die Entwurfsbestellung bezahlt, und RxScale hat sie mit der Anfrage verknüpft |
| `declined` | Endstatus | Ein Arzt oder ein Admin hat die Anfrage abgelehnt |
| `cancelled` | Endstatus | Sie oder ein Admin haben die Anfrage storniert |

* Ein Endstatus ändert sich nie wieder.
* Eine offene Anfrage kann aus jedem offenen Status abgelehnt oder storniert werden. Eine
  Ablehnung macht auch einen ungenutzten Buchungslink ungültig.
* Übernehmen oder Weitergeben ändert den Arzt, nicht den Status.
* Bucht der Patient über den Link, ändert sich der Status ebenfalls nicht. Sie erhalten
  `appointment_booked` mit dem Termin.
* Der Arzt kann auch nach dem Anlegen der Entwurfsbestellung einen Videotermin anfragen. Der
  Status bleibt dann `draft_created`, und Sie erhalten `video_requested` mit dem Link.
* Eine Anfrage hat höchstens einen nutzbaren Buchungslink. Einen neuen Link kann der Arzt erst
  anfragen, wenn der aktuelle ungenutzt abgelaufen ist oder der darüber gebuchte Termin nicht mehr
  besteht (abgesagt, abgelaufen, nicht erschienen oder abgeschlossen). Sie erhalten dann ein
  weiteres `video_requested` mit dem neuen Link, der den alten ersetzt. Der Status ändert sich
  nicht.

Ihre Admins sehen die Review-Anfragen Ihrer Organisation im Admin-Portal. Sie können den Arzt
zuweisen oder neu zuweisen, ablehnen und stornieren. Die Behandlung erstellen und einen Videotermin
anfragen kann nur der Arzt.

## Die Anfrage mit der bezahlten Bestellung abschließen

Erstellt der Arzt die Behandlung, trägt die Entwurfsbestellung in Ihrem Shop das
Bestellattribut `_rxscale_review_request_uid` mit der `uid` der Anfrage. Bezahlt der Patient die
Entwurfsbestellung und erreicht die Bestellung RxScale, verknüpft RxScale sie mit der Anfrage,
setzt `completed` und sendet `review_request_updated` mit `change: "completed"` und der ID der
Bestellung in `shop_order_external_id`. Ein Buchungslink, den der Patient noch nicht verwendet
hat, wird ungültig. Das Rezept durchläuft danach die übliche Prüfung und Signatur.

Eine Anfrage wird durch eine Bestellung abgeschlossen. Trägt eine weitere bezahlte Bestellung
dasselbe `_rxscale_review_request_uid`, verarbeitet RxScale diese Bestellung wie gewohnt, die
Anfrage behält aber die erste Bestellung, und es wird kein Webhook gesendet.

> [!WARNING]
>
> Lassen Sie das Attribut `_rxscale_review_request_uid` an der Bestellung. Entfernen oder
> überschreiben Sie es nicht, etwa in Shopify Flow, in einer App oder beim Bearbeiten des Entwurfs.
> Ohne das Attribut kann RxScale die bezahlte Bestellung nicht zuordnen: Die Bestellung wird wie
> üblich verarbeitet, aber die Anfrage bleibt `draft_created`.

RxScale akzeptiert das Attribut nur für eine Anfrage Ihrer Organisation und desselben Patienten.
Jeder andere Wert wird ignoriert, und die Bestellung wird ohne Verknüpfung verarbeitet.

## Verwandte Themen

* [Webhook `review_request_updated`](https://docs.rxscale.com/de/webhooks/events#review-request-updated) -- Die Payload
  und alle `change`-Werte.
* [Anamnese](https://docs.rxscale.com/de/api-reference/management/anamnesis.md) -- Der Verknüpfungs-Endpoint und seine
  Adressierungsarten.
* [Scheduling](https://docs.rxscale.com/de/api-reference/management/scheduling.md) -- Einen gebuchten Termin stornieren.
* [Review-Anfragen für Ärzte](https://docs.rxscale.com/de/for-doctors/review-requests.md) -- Was der Arzt sieht und tut.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.