{
  "openapi": "3.0.1",
  "info": {
    "title": "VIRD Service für die Übertragung von Meldungen bzgl. dem Versicherungswechsel von Versicherten sowie dem Abruf von asynchronen Fehlern, die bei der Verarbeitung von Daten aufgetreten sind",
    "contact": {
      "name": "Robert Koch-Institut, Referat VIG - Vertrauensstellen, Nordufer 20, 13353 Berlin",
      "email": "Vertrauensstelle-IRD@rki.de"
    },
	"version": "v1"
  },
  "paths": {
    "/api/v1/insuranceupdatenotification": {
      "post": {
        "summary": "Speichert eine Datenlieferung von Meldungen bzgl. dem Versicherungswechsel von Versicherten",
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InsuranceUpdateNotificationBundle"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Die Operation wurde erfolgreich abgeschlossen"
          },
          "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"
          }
        }
      }
    },
    "/api/v1/insuranceupdatenotification/processingresults": {
      "post": {
        "summary": "Gibt Fehler zurück, die bei der Verarbeitung von Meldungen bzgl. dem Versicherungswechsel von Versicherten auf Seiten der Vertrauensstelle aufgetreten sind",
        "requestBody": {
          "description": "Definiert die Id der Datenlieferung, zu der die Verarbeitungsresultate abgerufen werden sollen",
          "content": {
            "application/json": {          
              "schema": {
                "maxLength": 40,
                "minLength": 3,
                "type": "string"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Die Operation wurde erfolgreich abgeschlossen",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorsBundle"
                }
              }
            }
          },
          "204": {
            "description": "Es sind keine Daten für die angefragte Datenlieferung vorhanden. Entweder wurden die Daten zu dieser Datenlieferung noch nicht durch die Registerstelle verarbeitet, oder die Resultate der Verarbeitung wurden bereits abgerufen."
          },
          "400": {
            "description": "Es wurden ungültige Daten gesendet"
          },
          "401": {
            "description": "Die Authentifizierung an der Schnittstelle ist fehlgeschlagen"
          },
          "403": {
            "description": "Die Anfrage war nicht autorisiert"
          },
          "500": {
            "description": "Es ist ein interner Fehler bei der Verarbeitung aufgetreten"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "InsuranceUpdateNotification": {
        "required": [
          "IdDatensatz",
          "IdVersicherter",
          "IdVersicherterNeu",
          "IkNeu"
        ],
        "type": "object",
        "properties": {
          "IdDatensatz": {
			"maxLength": 40,
            "minLength": 3,
            "type": "string",
            "description": "Definiert die eindeutige Id eines Datensatzes innerhalb dieser Meldung."
          },
          "IdVersicherter": {
            "type": "string",
            "description": "Eindeutiger Identifikator des Versicherten. Für gesetzlich versicherte Patienten ist dies die eGK-Nummer (unveränderbare Teil der Krankenversichertennummer, KVNR). Für die Heilfürsorge Bundeswehr ist diese Angabe die unveränderbare und nach einheitlichen Kriterien gebildete Identifikationsnummer im Format der Steueridentifikationsnummer entsprechend Identifikationsnummerngesetz (IDNrG). Der Wert ist für den Versicherungsträger verschlüsselt.",
            "format": "byte"
          },
          "IdVersicherterNeu": {
            "type": "string",
            "description": "Aktueller, eindeutiger Identifikator des Versicherten beim Versicherungsträger. Bei Beendigung eines Versicherungsverhältnisses ohne Folgeversicherung muss dieses Feld den Wert 'unbekannt' aufweisen (Wert vor der Verschlüsselung). Bei Beginn eines Versicherungsverhältnisses ohne Vorversicherung muss dieser Wert gleich der IdVersicherter sein. Dieser Wert ist für die VST verschlüsselt.",
            "format": "byte"
          },
          "IkNeu": {
            "type": "string",
            "description": "Haupt-IK des aktuellen Versicherungsträgers des Versicherten. Bei Beendigung eines Versicherungsverhältnisses ohne Folgeversicherung muss dieses Feld den Wert 'unbekannt' aufweisen. Bei Beginn eines Versicherungsverhältnisses ohne Vorversicherung muss dieser Wert gleich des IkMelder sein (IkMelder ist die IK, die bei der der Anmeldung angegeben ist)."
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Datensatz zu den Versicherungsdetails eines Versicherten"
      },
      "InsuranceUpdateNotificationBundle": {
        "required": [
          "IdDatenlieferung",
          "Meldungen",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "IdDatenlieferung": {
			"maxLength": 40,
            "minLength": 3,
            "type": "string",
            "description": "Definiert die eindeutige Id der Datenlieferung"
          },
          "Meldungen": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceUpdateNotification"
            },
            "description": "Die Liste der Meldungen"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Liste der Meldungen.",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert eine Datenlieferung von Meldungen bzgl. dem Versicherungswechsel von Versicherten"
      },
      "InsuranceUpdateProcessingErrorResult": {
        "required": [
          "Code",
          "IdDatensatz"
        ],
        "type": "object",
        "properties": {
          "IdDatensatz": {
			"maxLength": 40,
            "minLength": 3,
            "type": "string",
            "description": "Eindeutige Id des Datensatzes innerhalb einer Datenlieferung"
          },
          "Code": {
            "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorResultCode"
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Fehler, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      },
      "InsuranceUpdateProcessingErrorResultCode": {
        "enum": [
          "DecryptionError",
          "WrongFormatIdVersicherter",
          "WrongFormatIkNeu",
          "DuplicateIdVersicherter"
        ],
        "type": "string",
        "description": "Definiert einen Fehlercode, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      },
      "InsuranceUpdateProcessingErrorsBundle": {
        "required": [
          "Fehler",
          "Signatur"
        ],
        "type": "object",
        "properties": {
          "Fehler": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceUpdateProcessingErrorResult"
            },
            "description": "Liste der Fehler"
          },
          "Signatur": {
            "type": "string",
            "description": "Signatur über die Daten des Datenpaketes",
            "format": "byte"
          }
        },
        "additionalProperties": false,
        "description": "Definiert einen Fehler, der bei der Verarbeitung eines Datensatzes aufgetreten ist"
      }
    }
  }
}