{
  "openapi": "3.0.1",
  "info": {
    "title": "VIRD Service für ein Auskunftsverlangen",
    "version": "v2.0"
  },
  "paths": {
    "/api/v2.0/informationrequest/generate": {
      "post": {
        "tags": [
          "InformationRequest"
        ],
        "summary": "Generiert für die übergebene Kennung des Versicherten eine Transfernummer und eine Arbeitsnummer, mit dessen Hilfe ein Auskunftsverlangen initiiert wird.",
        "requestBody": {
          "description": "Die Daten für das Auskunftsverlangen",
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InformationRequestDataRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Die Operation wurde erfolgreich abgeschlossen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InformationRequestPersistenceResultResponse"
                }
              }
            }
          },
          "400": {
            "description": "Es wurde eine fehlerhafte Nachricht gesendet"
          },
          "401": {
            "description": "Die Authentifizierung an der Schnittstelle ist fehlgeschlagen"
          },
          "403": {
            "description": "Die Anfrage war nicht autorisiert"
          },
          "415": {
            "description": "Es wurde ein falscher Content-Type gesendet"
          },
          "500": {
            "description": "Es ist ein interner Fehler bei der Verarbeitung aufgetreten"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "InformationRequestData": {
        "required": [
          "IdVersicherter"
        ],
        "type": "object",
        "properties": {
          "IdVersicherter": {
            "type": "string",
            "description": "Definiert den eindeutigen Identifizierer des Patienten. Dieser Wert ist für die VST verschlüsselt.",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert die Kennung des Versicherten für ein Auskunftsverlangen"
      },
      "InformationRequestDataRequest": {
        "required": [
          "Patientendaten",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "Patientendaten": {
            "$ref": "#/components/schemas/InformationRequestData"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Patientendaten",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert die Daten für das Auskunftsverlangen"
      },
      "InformationRequestPersistenceResult": {
        "required": [
          "Arbeitsnummer",
          "Transfernummer"
        ],
        "type": "object",
        "properties": {
          "Transfernummer": {
            "$ref": "#/components/schemas/SignedTransferNumber"
          },
          "Arbeitsnummer": {
            "type": "string",
            "description": "Arbeitsnummer für die meldende Gesundheitseinrichtung für die weitere Verarbeitung als HEX-Repräsentation"
          }
        },
        "additionalProperties": false,
        "description": "Resultat der Speicheroperation zu einem Auskunftsverlangen"
      },
      "InformationRequestPersistenceResultResponse": {
        "required": [
          "Auskunftsverlangen",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "Auskunftsverlangen": {
            "$ref": "#/components/schemas/InformationRequestPersistenceResult"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Antwort auf die Meldung des Auskunftsverlangens",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert die Daten zu einem Auskunftsverlangen nach der Annahme der Meldung"
      },
      "SignedTransferNumber": {
        "required": [
          "Signatur",
          "Wert"
        ],
        "type": "object",
        "properties": {
          "Wert": {
            "type": "string",
            "description": "Für die Registerstelle verschlüsselte Transfernummer als HEX-Repräsentation"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die HEX-Repräsentation der Transfernummer",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert eine für die Registerstelle verschlüsselte Transfernummer als HEX-Repräsentation, sowie die Signatur über den Wert"
      }
    }
  }
}