API: Berechnung der 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://api.wachstum.at/api/xml --data "@@patient.xml"
wobei patient.xml die folgende 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>
<Gender>Male</Gender>
<SizeFatherCm>183</SizeFatherCm>
<SizeMotherCm>170</SizeMotherCm>
<SizeBirthCm>9</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>30</HeadCm>
<SeatCm>66</SeatCm>
</Measurement>
</Measurements>
<Markers>
<Marker>
<Text>Mein Marker</Text>
<Date>2019-05-06</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" encoding="utf-8"?>
<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>
<AgeInYears>11.5</AgeInYears>
<Gender>Male</Gender>
<Diseases />
<SizeFatherCm>183</SizeFatherCm>
<SizeMotherCm>170</SizeMotherCm>
<SizeBirthCm>9</SizeBirthCm>
<WeightBirthG>3500</WeightBirthG>
<WeekBirth>42</WeekBirth>
<DayBirth xsi:nil="true" />
<HeadBirthCm>40</HeadBirthCm>
<TargetSizeCm>183</TargetSizeCm>
<TargetSizeSds accuracy="exact">0.56</TargetSizeSds>
<SizeFatherSds accuracy="exact">0.56</SizeFatherSds>
<SizeMotherSds accuracy="exact">0.75</SizeMotherSds>
<SizeBirthSds accuracy="less_or_equal">-6</SizeBirthSds>
<WeightBirthSds accuracy="exact">-0.41</WeightBirthSds>
<SizeBirthUndersized>true</SizeBirthUndersized>
<Is_Premature>false</Is_Premature>
<Calculated_DateOfBirth>2014-05-21T00:00:00</Calculated_DateOfBirth>
<Validation_Message severity="error" target="birth_size">Geburtslänge ist extrem niedrig und kann nicht übernommen werden.<Severity>Error</Severity><Target>BirthSize</Target></Validation_Message>
<Measurements>
<Measurement>
<Date>2019-05-06T00:00:00</Date>
<BoneAgeYears>4</BoneAgeYears>
<SizeCm>115</SizeCm>
<WeightKg>18</WeightKg>
<HeadCm>30</HeadCm>
<SeatCm>66</SeatCm>
<AgeYears>4.9</AgeYears>
<Is_Premature>false</Is_Premature>
<Premature_Age_Week xsi:nil="true" />
<Premature_Age_Day xsi:nil="true" />
<Premature_Corrected_AgeYears xsi:nil="true" />
<Bmi>13.61</Bmi>
<EquiBmi>18.1</EquiBmi>
<LegCm>49</LegCm>
<SeatLegRatio>1.3</SeatLegRatio>
<SizeSds accuracy="exact">1.03</SizeSds>
<SizePercentile>84.85</SizePercentile>
<WeightSds accuracy="exact">-0.07</WeightSds>
<WeightPercentile>47.21</WeightPercentile>
<SizeTurnerSyndromePercentile xsi:nil="true" />
<SizeNoonanSyndromePercentile xsi:nil="true" />
<BmiSds accuracy="exact">-1.32</BmiSds>
<BmiPercentile>9.34</BmiPercentile>
<HeadSds accuracy="less_or_equal">-6</HeadSds>
<HeadPercentile>0</HeadPercentile>
<SeatSds accuracy="exact">1.64</SeatSds>
<SeatPercentile>94.95</SeatPercentile>
<LegSds accuracy="exact">0.23</LegSds>
<LegPercentile>59.1</LegPercentile>
<SeatLegSds accuracy="exact">1.17</SeatLegSds>
<SeatLegPercentile>87.9</SeatLegPercentile>
<Validation_Message severity="warning" target="head">Kopfumfang ist ungewöhnlich niedrig.<Severity>Warning</Severity><Target>Head</Target></Validation_Message>
</Measurement>
</Measurements>
<Markers>
<Marker>
<Text>Mein Marker</Text>
<Date>2019-05-06T00:00:00</Date>
</Marker>
</Markers>
</Patient>
SD-Scores befinden sich immer im Wertebereich zwischen -6,0 und 6,0. Wenn bei besonders ungewöhnlichen Messdaten ein besonders hoher oder niedriger SD-Score berechnet wird, wird dieser trotzdem auf -6,0 bzw. 6,0 gerundet angegeben, da darüber oder darunter nicht immer zuverlässige SD-Scores berechnet werden können. Über die Information accuracy wird explizit angegeben, wenn SD-Scores entsprechend dergestalt gerundet wurden.
Validierung von Eingabedaten
Alle angegebenen Messdaten werden darüber hinaus automatisch auf Plausibilität validiert. Das Ergebnis dieser Validierung wird in Form von 0-n textuellen Hinweisen angegeben.
Bei der Validierung wird zwischen drei verschiedenen Schweregraden (severity) unterschieden:
error(=kritischer Eingabefehler): Für absolut unmögliche Messdaten, beispielsweise eine Körpergröße von mehr als 300cm.warning(=sehr ungewöhnlicher Wert): Für sehr ungewöhnliche Messdaten, die aber in besonderen Ausnahmefällen noch denkbar sind, beispielsweise eine Körpergröße von 240cm.hint(=relativ ungewöhnlicher Wert): Für relativ ungewöhnliche Messdaten, die aber durchaus vorkommen können, beispielsweise eine Körpergröße von 210cm.
Berechnungen der Parameter eines Patienten mit Wachstumsstörungen
Bei Patienten mit besonderen Voraussetzungen wird für Berechnungen auf teilweise angepasste Referenzwerte zurückgegriffen. Das Vorhandensein kann in der XML-Datenstruktur angegeben werden, indem der Patient um folgende Daten ergänzt wird.
<Patient>
[...]
<Diseases>
<Disease>TurnerSyndrome</Disease>
</Diseases>
[...]
</Patient>
Derzeit werden die folgenden Parameter unterstützt:
TurnerSyndromeNoonanSyndromeAchondroplasia