Skip to content

Backend

Korkmatik edited this page Jul 4, 2021 · 1 revision

Technologien

  • Programmiersprache: Java 11
  • Build Tool: Maven
  • Framework: Spring Boot

Getting Started

Der Code für das Backend befindet sich im Repository unter stepupbackend. Um für das Backend zu entwickelt, wird IntelliJ empfohlen. Folgende Schritte sind nötig, um eine Entwicklungsumgebung aufzusetzen.

  1. Öffne das Projekt in IntelliJ image

  2. Warte bis alle Abhängigkeiten durch die IDE aufgelöst wurden

  3. Nun muss du eine Konfiguration erstellen. Dafür solltest du auf "Add Configuration..." klicken image

  4. In dem neuen Fenster, klicke auf das Plus Symbol image

  5. Wähle die Konfiguration "Applikation" image

  6. Gebe der Konfiguration einen Namen und klicke danach auf "Browse..." image

  7. Es wird ein neues Fenster geöffnet. Wechsel in den Reiter "Project". Nun klappe die Struktur src > main > java > de.hskempten.stepupbackend auf. Wähle die Klasse StepupbackendApplication aus. Gehe schließlich auf "Ok". image

  8. Nun kann die Konfiguration mit dem Klick auf "OK" abgschlossen werden image

  9. Nun kannst du mit dem Code beginnen. Alternativ kannst du das Backend über den "Play" Button starten. Nach dem Start sollte der Server Standardmäßig auf Port 8000 laufen image

Swagger UI und API Dokumentation

Du kannst zur Swagger UI navigieren, indem du die URL http://localhost:8000/swagger-ui.html in einem Webbrowser deiner Wahl öffnest.

image

Die Swagger UI enthält auch die aktuellste API Dokumentation. Alternativ ist die OpenAPI Spezifikation Version 3.0 unter http://localhost:8000/api-docs erreichbar.

Package Diagramm

Package Diagram

API Endpoints

Goal Endpoint

PUT - /api/v1/goal/weight/{id}

Beschreibung: Gesundheitsziel Gewicht bearbeiten

Request Body:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-17T15:14:13.599Z",
  "weightGoal": 0
}

Response:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-17T15:14:13.602Z",
  "weightGoal": 0
}

PUT - /api/v1/goal/steps/{id}

Beschreibung: Gesundheitsziel Schritte bearbeiten

Request Body:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-17T15:16:45.795Z",
  "stepsGoal": 0
}

Response:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-17T15:16:45.797Z",
  "stepsGoal": 0
}

POST - /api/v1/goal/weight

Beschreibung: Neues Gesundheitsziel für Gewicht erstellen

Request Body:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-18T19:16:18.212Z",
  "weightGoal": 0
}

Response:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-18T19:16:18.214Z",
  "weightGoal": 0
}

POST - /api/v1/goal/weight/date

Beschreibung: Gewicht Gesundheitsziele für ein bestimmtes Datum abfragen

Request Body:

{
  "date": "2021-06-18",
  "patientId": "string"
}

Response:

{
   "id": "string",
   "description": "string",
   "patientId": "string",
   "dueDate": "2021-06-18T19:19:14.171Z",
   "weightGoal": 0
}

POST - /api/v1/goal/steps

Beschreibung: Gesundheitsziel Schritte anlegen

Request Body:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-18T19:21:54.676Z",
  "stepsGoal": 0
}

Response:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-18T19:21:54.677Z",
  "stepsGoal": 0
}

POST - /api/v1/goal/steps/date

Beschreibung: Gesundheitsziel Schritte für ein bestimmtes Datum abfragen

Request Body:

{
  "date": "2021-06-18",
  "patientId": "string"
}

Response:

{
    "id": "string",
    "description": "string",
    "patientId": "string",
    "dueDate": "2021-06-18T19:23:47.318Z",
    "stepsGoal": 0
}

GET - /api/v1/goal/weight/{id}

Beschreibung: Gewicht Gesundheitsziel anhan der ID abfragen

Response:

{
  "date": "2021-06-18",
  "patientId": "string"
}

GET - /api/v1/goal/weight/patient/{patientId}

Beschreibung: Gewicht Gesundheitsziele für einen Patienten abfragen

Response:

{
    "id": "string",
    "description": "string",
    "patientId": "string",
    "dueDate": "2021-06-18T19:38:08.054Z",
    "weightGoal": 0
}

GET - /api/v1/goal/steps/{id}

Beschreibung: Gesundheitsziel Schritt anhand der ID abfragen

Response:

{
  "id": "string",
  "description": "string",
  "patientId": "string",
  "dueDate": "2021-06-18T19:51:38.356Z",
  "stepsGoal": 0
}

GET - /api/v1/goal/steps/patient/{patientId}

Beschreibung: Gesundheitsziel Schritte für einen Patienten abfragen

Response:

{
   "id": "string",
   "description": "string",
   "patientId": "string",
   "dueDate": "2021-06-18T19:53:10.314Z",
   "stepsGoal": 0
}

Settings Endpoint

Post - /api/v1/settings/fhirserver

Beschreibung: FHIR Server spezifizieren

Request Body:

{
 "fhirUrl": "string"
}

Response:

{
 "fhirUrl": "string"
}

GET - /api/v1/settings/

Beschreibung: Alle Einstellungen zurückliefern

Response:

{
  "fhirUrl": "string"
}

Patient Endpoint

GET - /api/v1/patient

Beschreibung: Alle Patienten zurück liefern

Response:

[
{
    "firstName": "string",
    "lastName": "string",
    "gender": "string",
    "street": "string",
    "postalCode": "string",
    "city": "string",
    "country": "string",
    "fhirServer": "string",
    "id": "string",
    "displayAddress": "string"
}
]

Post - /api/v1/patient

Beschreibung: Patienten erstellen

Request Body:

{
   "firstName": "string",
  "lastName": "string",
  "gender": "string",
  "street": "string",
  "postalCode": "string",
  "city": "string",
  "country": "string",
  "fhirServer": "string",
  "id": "string",
  "displayAddress": "string"
}

Response:

{
  "firstName": "string",
  "lastName": "string",
  "gender": "string",
  "street": "string",
  "postalCode": "string",
  "city": "string",
  "country": "string",
  "fhirServer": "string",
  "id": "string",
  "displayAddress": "string"
}

GET - /api/v1/patient/{id}

Beschreibung: Patient anhand der ID zurückliefern

Response:

{
   "firstName": "string",
  "lastName": "string",
  "gender": "string",
  "street": "string",
  "postalCode": "string",
  "city": "string",
  "country": "string",
  "fhirServer": "string",
  "id": "string",
  "displayAddress": "string"
}

GET - /api/v1/patient/name/{name}

Beschreibung: Patienten nach Name suchen (Vor und Nachname sind möglich)

Response:

{
  "firstName": "string",
  "lastName": "string",
  "gender": "string",
  "street": "string",
  "postalCode": "string",
  "city": "string",
  "country": "string",
  "fhirServer": "string",
  "id": "string",
  "displayAddress": "string"
}

GET - /api/v1/patient/gender/{gender}

Beschreibung: Patienten nach Geschlecht suchen

Response:

{
  "firstName": "string",
    "lastName": "string",
    "gender": "string",
    "street": "string",
    "postalCode": "string",
    "city": "string",
    "country": "string",
    "fhirServer": "string",
    "id": "string",
    "displayAddress": "string"
}

GET - /api/v1/patient/address/{address}

Beschreibung: Patienten anhand der Addresse suchen (Straße, Postleitzahl, Ort, Land)

Response:

{
  "firstName": "string",
    "lastName": "string",
    "gender": "string",
    "street": "string",
    "postalCode": "string",
    "city": "string",
    "country": "string",
    "fhirServer": "string",
    "id": "string",
    "displayAddress": "string"
}

Observation Endpoint

POST - /api/v1/observation/weight

Beschreibung: Gewicht Beobachtung erstellen

Request Body:

{
  "weight": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

Response:

{
  "weight": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

POST - /api/v1/observation/weight/date

Beschreibung: Gewicht Beobachtung anhand des Datums abfragen

Request Body:

{
   "date": "2021-06-18",
  "patientId": "string"
}

Response:

{
  "weight": 0,
    "date": "2021-06-18",
    "patientID": "string",
    "fhirServer": "string",
    "deviceID": "string",
    "goalID": "string",
    "id": "string"
}

POST - /api/v1/observation/steps

Beschreibung: Schritte Beobachtung erstellen

Request Body:

{
   "steps": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

Response:

{
 "steps": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

POST - /api/v1/observation/steps/date

Beschreibung: Schritte Beobachtung anhand des Datums zurückliefern

Request Body:

{
  "date": "2021-06-18",
  "patientId": "string"
}

Response:

{
    "steps": 0,
    "date": "2021-06-18",
    "patientID": "string",
    "fhirServer": "string",
    "deviceID": "string",
    "goalID": "string",
    "id": "string"
}

GET - /api/v1/observation/weight/{id}

Beschreibung: Gewicht Beobachtung anhand der ID zurückliefern

Response:

{
  "weight": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

GET - /api/v1/observation/weight/patient/{patientId}

Beschreibung: Gewicht Beobachtungen für einen bestimmten Patienten zurückliefern

Response:

{
  "weight": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

GET - /api/v1/observation/weight/goal/{goalId}/patient/{patientId}

Beschreibung: Gewicht Beobachtungen die zur einer bestimmten Gesundheitsziel eiens Patienten erstellt wurden, zurückliefern

Response:

{
    "weight": 0,
    "date": "2021-06-18",
    "patientID": "string",
    "fhirServer": "string",
    "deviceID": "string",
    "goalID": "string",
    "id": "string"
}

GET - /api/v1/observation/steps/{id}

Beschreibung: Schritte Beobachtung anhand der ID zurückliefern

Response:

{
    "steps": 0,
  "date": "2021-06-18",
  "patientID": "string",
  "fhirServer": "string",
  "deviceID": "string",
  "goalID": "string",
  "id": "string"
}

GET - /api/v1/observation/steps/patient/{patientId}

Beschreibung: Schritte Beobachtungen von einem bestimmten Patienten zurückliefern

Response:

{
   "steps": 0,
    "date": "2021-06-18",
    "patientID": "string",
    "fhirServer": "string",
    "deviceID": "string",
    "goalID": "string",
    "id": "string"
}

GET - /api/v1/observation/steps/goal/{goalId}/patient/{patientId}

Beschreibung: Gewicht Beobachtungen, die für ein bestimmtes Gesundheitsziel eines Patienten erstellt wurden, zurückliefern

Response:

{
   "steps": 0,
    "date": "2021-06-18",
    "patientID": "string",
    "fhirServer": "string",
    "deviceID": "string",
    "goalID": "string",
    "id": "string"
}

Device Endpoint

GET - /api/v1/device

Beschreibung: Alle Geräte zurückliefern

Response:

[
{
  "id": "string",
    "name": "string",
    "manufacturer": "string",
    "status": "string",
    "type": "string",
    "note": "string",
    "patientID": "string",
    "fhirServer": "string"
}
]

Post - /api/v1/device

Beschreibung: Ein Gerät erstellen

Request Body:

{
  "id": "string",
  "name": "string",
  "manufacturer": "string",
  "status": "string",
  "type": "string",
  "note": "string",
  "patientID": "string",
  "fhirServer": "string"
}

Response:

{
  "id": "string",
  "name": "string",
  "manufacturer": "string",
  "status": "string",
  "type": "string",
  "note": "string",
  "patientID": "string",
  "fhirServer": "string"
}

GET - /api/v1/device/{id}

Beschreibung: Gerät anhand der ID zurückliefern

Response:

{
   "id": "string",
  "name": "string",
  "manufacturer": "string",
  "status": "string",
  "type": "string",
  "note": "string",
  "patientID": "string",
  "fhirServer": "string"
}

Composition Endpoint

POST - /api/v1/composition

Beschreibung: Neues zusammenfassendes Dokument erstellen

Request Body:

{
  "patientId": "string",
  "date": "2021-06-18T20:41:56.782Z",
  "id": "string"
}

Response:

{
  "patientId": "string",
  "date": "2021-06-18T20:41:56.784Z",
  "id": "string"
}

GET - /api/v1/composition/{id}

Beschreibung: Zusammenfassung anhand der ID zurückliefern

Response:

{
  "patientId": "string",
  "date": "2021-06-18T20:43:25.962Z",
  "id": "string"
}

Practitioner Endpoint

GET - /api/v1/practitioner

Beschreibung: Alle Leistungserbringer zurückliefern

Response:

{
  "id": "string",
    "firstName": "string",
    "lastName": "string"
}
Clone this wiki locally