API (Programmierschnittstelle)

wachstum.at bietet eine API (Programmierschnittstelle), die es erlaubt, wichtige Funktionen von wachstum.at in andere Software-Anwendungen (zB Krankenhausinformationssysteme, Praxissoftware etc.) zu integrieren. Die wichtigsten Funktionen sind dabei:

Für eine einfachere Lesbarkeit wird im Folgenden überall dort die vereinfachende Bezeichnung "Patient" anstelle von "Kinder, Patientinnen und Patienten) verwendet

Bitte kontaktieren Sie uns, um für den API-Zugriff freigeschalten zu werden und um Ihren API-Schlüssel zu erhalten. Loggen Sie sich dann in Folge ein, um die angezeigten Beispiele zu personalisieren und mit Ihrem konkreten API-Schlüssel anzuzeigen.

Inhaltsverzeichnis

Authentifizierung

Jeder Aufruf der API muss per API-Schlüssel authentifiziert sein. Jeder registrierte Benutzer hat automatisch einen API-Schlüssel, der über die Seite Einstellungen des entsprechenden Benutzers angezeigt wird.

Dieser API-Schlüssel muss bei jedem API-Aufruf übergeben werden. Dazu sind zwei Varianten möglich:

  1. Per HTTP-Header: Ihre API-Aufrufe inkludieren den HTTP-Header API-Key mit dem entsprechenden API-Schlüssel als Wert.
    curl -X GET -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patients/xml
  2. Per Query (URL): Ihre API-Aufrufe inkludieren den Query-Parameter key mit dem entsprechenden API-Schlüssel als Wert.
    curl -X GET https://www.wachstum.at/api/patients/xml?key={API_KEY}

Ad-hoc Berechnung aller Parameter eines Patienten

Erlaubt die Berechnung aller Parameter eines Patienten anhand der übergebenen Messdaten. Dabei werden keinerlei Messdaten oder Parameter gespeichert, die übergebenen Messdaten werden zur einmaligen Berechnung der Parameter verwendet und dann unmittelbar verworfen.

curl -X PUT -H "API-Key: {API_KEY}" https://www.wachstum.at/api/xml --data "@patient.xml"

wobei patient.xml diese Struktur umfasst (beispielhaft):

<?xml version="1.0"?>
<Patient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Mario</FirstName>
  <LastName>Musterkind</LastName>
  <DateOfBirth>2014-06-04</DateOfBirth>
  <AgeInYears>5.1</AgeInYears>
  <Gender>Male</Gender>
  <SizeFatherCm>183</SizeFatherCm>
  <SizeMotherCm>170</SizeMotherCm>
  <SizeBirthCm>52</SizeBirthCm>
  <WeightBirthG>3500</WeightBirthG>
  <WeekBirth>42</WeekBirth>
  <HeadBirthCm>40</HeadBirthCm>
  <Measurements>
    <Measurement>
      <Date>2019-05-06T00:00:00</Date>
      <AgeInYears>4.9</AgeInYears>
      <BoneAgeYears>4</BoneAgeYears>
      <SizeCm>115</SizeCm>
      <WeightKg>18</WeightKg>
      <HeadCm>50</HeadCm>
      <SeatCm>66</SeatCm>
      <CreatedUtc>2019-06-02T11:09:37.4492857</CreatedUtc>
      <UpdatedUtc>2019-06-02T11:10:00.8097257</UpdatedUtc>
    </Measurement>
  </Measurements>
  <Markers>
    <Marker>
      <Text>Marker X</Text>
      <Date>2019-05-06T00:00:00</Date>
    </Marker>
  </Markers>
</Patient>
    

Die Ausgabedaten entsprechen jener Datenstruktur, die auch beim manuellen Export eines Patienten über die Benutzeroberfläche zurückgegeben wird (beispielhaft):

<?xml version="1.0"?>
<Patient xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <FirstName>Mario</FirstName>
  <LastName>Musterkind</LastName>
  <DateOfBirth>2014-06-04T00:00:00</DateOfBirth>
  <Gender>Male</Gender>
  <SizeFatherCm>183</SizeFatherCm>
  <SizeMotherCm>170</SizeMotherCm>
  <SizeBirthCm>52</SizeBirthCm>
  <WeightBirthG>3500</WeightBirthG>
  <WeekBirth>42</WeekBirth>
  <HeadBirthCm>40</HeadBirthCm>
  <TargetSizeCm>183</TargetSizeCm>
  <TargetSizeSds>0.56</TargetSizeSds>
  <SizeFatherSds>0.56</SizeFatherSds>
  <SizeMotherSds>0.75</SizeMotherSds>
  <SizeBirthSds>-0.24</SizeBirthSds>
  <WeightBirthSds>-0.41</WeightBirthSds>
  <SizeBirthTooSmall>false</SizeBirthTooSmall>
  <Measurements>
    <Measurement>
      <Date>2019-05-06T00:00:00</Date>
      <BoneAgeYears>4</BoneAgeYears>
      <SizeCm>115</SizeCm>
      <WeightKg>18</WeightKg>
      <HeadCm>50</HeadCm>
      <SeatCm>66</SeatCm>
      <WarningHiddenUtc xsi:nil="true" />
      <CreatedUtc>2019-06-02T11:09:37.4492857</CreatedUtc>
      <UpdatedUtc>2019-06-02T11:10:00.8097257</UpdatedUtc>
      <AgeYears>5</AgeYears>
      <Bmi>13.61</Bmi>
      <EquiBmi>18.1</EquiBmi>
      <LegCm>49</LegCm>
      <SizeSds>1.03</SizeSds>
      <BmiSds>-1.32</BmiSds>
      <HeadSds>-1.05</HeadSds>
      <SeatSds>1.64</SeatSds>
      <LegSds>0.23</LegSds>
      <SeatLegSds>1.17</SeatLegSds>
    </Measurement>
  </Measurements>
  <Markers>
    <Marker>
      <Id>caee2f3d-02b7-4166-a00c-68372564ea82</Id>
      <Text>Marker X</Text>
      <Date>2019-05-06T00:00:00</Date>
    </Marker>
  </Markers>
</Patient>

Ad-hoc Generierung von PDF oder Bild für eine Perzentilenkurve

Erlaubt die Generierung einer Perzentilenkurve des gewünschten Typs und Formats anhand der übergebenen Messdaten. Dabei werden keinerlei Messdaten oder Parameter gespeichert, die übergebenen Messdaten werden unmittelbar wieder verworfen.

curl -X PUT -H "API-Key: {API_KEY}" https://www.wachstum.at/api/chart/{TYP}/{FORMAT} --data "@patient.xml"

Der Parameter Typ steuert den Typ der Perzentilenkurve muss einen der folgenden Werte umfassen:

Der Parameter Format steuert den das Datenformat des Ergebnisses und muss einen der folgenden Werte umfassen:

Im Übrigen wird die selbe Datenstruktur erwartet wie auch bei der ad-hoc Berechnung der Parameter.

Alle gespeicherten Patienten abrufen

Gibt eine Liste aller gespeicherten Patienten mit Basis-Informationen pro Patient zurück. Dieser Aufruf dient dazu, um alle Patienten eines Benutzers abrufen, die Messdaten und Parameter eines einzelnen Patienten können über die entsprechenden Funktionen abgerufen werden.

curl -X GET -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patients/xml

resultiert in einem Ergebnis dieser Struktur (beispielhaft):

<?xml version="1.0" ?>
<Patients xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Patient>
          <Id>00000000-1111-2222-3333-444444444444</Id>
          <FirstName>Mario</FirstName>
          <LastName>Musterkind</LastName>
          <PatientCode>1234 4567 abcd</PatientCode>
          <Gender>Male</Gender>
          <DateOfBirth>2014-02-06T00:00:00</DateOfBirth>
    </Patient>
</Patients>

Gespeicherten Patienten abrufen

Gibt alle Messwerte und Parameter eines einzelnen Patienten zurück. Das Ergebnis entspricht jener XML-Datenstruktur, die auch beim Export über die Benutzeroberfläche erstellt wird. Gewisse Parameter können nur dann berechnet werden, wenn die notwendigen Messdaten vorliegen. Kann ein Parameter nicht berechnet werden, dann wird dies explizit als nil angegeben.

curl -X GET -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patient/{PATIENT_ID}/xml

resultiert in einem Ergebnis wie bei der ad-hoc Berechnung eines Patienten.

Perzentilenkurven eines gespeicherten Patienten abrufen

Gibt die gewünschte Perzentilenkurve des angegebenen Patienten im gewünschten Dateiformat zurück

curl -X GET -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patient/{PATIENT_ID}/chart/{TYP}/{FORMAT}

Der Parameter Typ steuert den Typ der Perzentilenkurve muss einen der folgenden Werte umfassen:

Der Parameter Format steuert den das Datenformat des Ergebnisses und muss einen der folgenden Werte umfassen:

Neuen Patienten speichern

Erstellt einen neuen Patienten, mit den angegebenen Messdaten und Markern. Für jeden Aufruf wird ein neuer Patient erstellt. Die erwartete XML-Struktur entspricht jener, die auch beim manuellen Import über die Benutzeroberfläche erwartet wird.

curl -X POST -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patient/xml --data "@patient.xml" 

wobei patient.xml die selbe Datenstruktur umfasst wie bei der ad-hoc Berechnung eines Patienten.

Gespeicherten Patienten verändern

Aktualisiert den angegebenen Patienten mit den übergebenen Daten. Dabei werden alle bestehenden Informationen überschrieben. Das heißt, dass zB existierende Messdaten des Patienten gelöscht werden, wenn diese nicht in der übergebenen Datenstruktur enthalten sind.

curl -X PUT -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patient/{PATIENT_ID}/xml --data "@patient.xml" 

wobei patient.xml die selbe Struktur umfasst, die auch beim Anlegen eines neuen Patienten verwendet wird

Gespeicherten Patienten löschen

Löscht den angegebenen Patienten inklusive aller Messdaten und Parameter.

Wie auch beim manuellen Löschen des Patienten über die Benutzeroberfläche werden diese Daten nicht sofort gelöscht, sondern für einige Tage als "zu löschen" markiert, bevor sie dauerhaft und unwiederbringlich entfernt werden. Dies hilft dabei, ungewollten Datenverlust zu verhindern.

curl -X DELETE -H "API-Key: {API_KEY}" https://www.wachstum.at/api/patient/{PATIENT_ID}"