@moxi.gmbh/moxi-typescriptmodels 0.1.3011-test-server → 0.1.3021-751de24-test-server

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -481,6 +481,7 @@ export namespace com.moxi.api.authentication.common.RefreshTokenService {
481
481
  export interface RefreshTokenData {
482
482
  expiresAt?: string;
483
483
  hashedToken?: string;
484
+ impersonator?: string;
484
485
  userId?: string;
485
486
  }
486
487
 
@@ -642,16 +643,6 @@ export namespace com.moxi.api.common.firebase {
642
643
 
643
644
  }
644
645
 
645
- export namespace com.moxi.api.common.freshdesk {
646
-
647
- export interface SendFreshdeskNewTicket {
648
- email?: string;
649
- message?: string;
650
- subject?: string;
651
- }
652
-
653
- }
654
-
655
646
  export namespace com.moxi.api.common.mail {
656
647
 
657
648
  export interface Attachment {
@@ -807,15 +798,6 @@ export namespace com.moxi.api.grpc {
807
798
 
808
799
  }
809
800
 
810
- export namespace com.moxi.api.grpc {
811
-
812
- export interface RegisterEinsatz {
813
- einsatzNumber?: string;
814
- rideId?: string;
815
- }
816
-
817
- }
818
-
819
801
  export namespace com.moxi.api.grpc {
820
802
 
821
803
  export interface StartCeliosStream {
@@ -978,26 +960,46 @@ export namespace com.moxi.api.longpoll.common {
978
960
 
979
961
  }
980
962
 
981
- export namespace com.moxi.api.optimization {
963
+ export namespace com.moxi.api.optimizer {
982
964
 
983
- export interface CreateOptimizationPlan extends com.moxi.api.optimization.OptimizerMessage {
984
- accountOrTeam?: com.moxi.api.permissions.common.AccountOrTeamRef;
985
- timeRange?: com.moxi.api.common.InstantRange;
965
+ export interface CancelOptimization {
966
+ problemId?: string;
967
+ }
968
+
969
+ }
970
+
971
+ export namespace com.moxi.api.optimizer {
972
+
973
+ export interface GetOptimizationStatus {
974
+ problemId?: string;
975
+ }
976
+
977
+ }
978
+
979
+ export namespace com.moxi.api.optimizer {
980
+
981
+ export interface PollOptimizerSchedule {
982
+ failures?: number;
983
+ problemId?: string;
984
+ target?: string;
986
985
  }
987
986
 
988
987
  }
989
988
 
990
- export namespace com.moxi.api.optimization {
989
+ export namespace com.moxi.api.optimizer {
991
990
 
992
- export interface CreateSqueezeInPlan extends com.moxi.api.optimization.OptimizerMessage {
993
- accountOrTeam?: com.moxi.api.permissions.common.AccountOrTeamRef;
991
+ export interface StartOptimizationCommand {
992
+ optimizationRequest?: health.moxi.optimizer.common.api.OptimizationRequest;
994
993
  }
995
994
 
996
995
  }
997
996
 
998
- export namespace com.moxi.api.optimization {
997
+ export namespace com.moxi.api.optimizer {
999
998
 
1000
- export interface OptimizerMessage {
999
+ export interface TriggerCeliosOptimization {
1000
+ eplanRequestJson?: any;
1001
+ target?: string;
1002
+ type?: com.moxi.api.grpc.common.GrpcStreamType;
1001
1003
  }
1002
1004
 
1003
1005
  }
@@ -1379,14 +1381,11 @@ export namespace com.moxi.api.refdata {
1379
1381
 
1380
1382
  export namespace com.moxi.api.refdata.common {
1381
1383
 
1382
- /**
1383
- * Address info of a google-validated address, including geolocation and district code
1384
- */
1385
1384
  export interface AddressInfo {
1386
1385
  addition?: string;
1387
1386
  city?: string;
1388
1387
  /**
1389
- * Derived from districtNutsCode
1388
+ * The NUTS country code, derived from districtNutsCode
1390
1389
  */
1391
1390
  country?: string;
1392
1391
  districtNutsCode?: string;
@@ -1395,12 +1394,12 @@ export namespace com.moxi.api.refdata.common {
1395
1394
  number?: string;
1396
1395
  placeName?: string;
1397
1396
  /**
1398
- * Derived from districtNutsCode
1397
+ * The NUTS level 1 code, derived from districtNutsCode
1399
1398
  */
1400
1399
  state?: string;
1401
1400
  street?: string;
1402
1401
  /**
1403
- * Derived from districtNutsCode
1402
+ * The NUTS level 2 code, derived from districtNutsCode
1404
1403
  */
1405
1404
  subState?: string;
1406
1405
  zipCode?: string;
@@ -1779,22 +1778,22 @@ export namespace com.moxi.api.ride {
1779
1778
  export namespace com.moxi.api.ride.common {
1780
1779
 
1781
1780
  /**
1782
- * Filled if (and only if) vehicleType == ambulance
1781
+ * Mandatory if the vehicleType is ambulance, forbidden if taxi
1783
1782
  */
1784
1783
  export interface AmbulanceInfo {
1785
1784
  /**
1786
- * Derived from infectionDescription != blank
1785
+ * True if infectionDescription is given
1787
1786
  */
1788
1787
  hasInfection?: boolean;
1789
1788
  infectionDescription?: string;
1790
1789
  monitoringDescription?: string;
1791
1790
  oxygenLiterPerHour?: number;
1792
1791
  /**
1793
- * Derived from monitoringDescription != blank
1792
+ * True if monitoringDescription is given
1794
1793
  */
1795
1794
  requiresMonitoring?: boolean;
1796
1795
  /**
1797
- * Derived from oxygenLiterPerHour != null
1796
+ * True if oxygenLiterPerHour is given
1798
1797
  */
1799
1798
  requiresOxygen?: boolean;
1800
1799
  requiresSuctionAspirator?: boolean;
@@ -1834,76 +1833,6 @@ export namespace com.moxi.api.ride.common {
1834
1833
 
1835
1834
  }
1836
1835
 
1837
- export namespace com.moxi.api.ride.common {
1838
-
1839
- /**
1840
- * Ride information specific for intensive care rides.
1841
- */
1842
- export interface IntensiveCareRideInfo extends com.moxi.api.ride.common.RideInfo {
1843
- medicalData?: com.moxi.api.ride.common.MedicalData;
1844
- patientMedicalCondition?: string;
1845
- vehicleType: "intensiveCareAmbulance";
1846
- }
1847
-
1848
- }
1849
-
1850
- export namespace com.moxi.api.ride.common {
1851
-
1852
- export interface MedicalData {
1853
- activeSubstances?: com.moxi.api.ride.common.MonitoredValue;
1854
- administrativeJourney?: string;
1855
- alarmNumber?: number;
1856
- analogueSedated?: boolean;
1857
- catecholamines?: boolean;
1858
- cpapAsb?: boolean;
1859
- dkvBipap?: boolean;
1860
- ecmo?: boolean;
1861
- fio2AboveZeroPointFive?: boolean;
1862
- highFlowOxygenTherapy?: boolean;
1863
- iabp?: boolean;
1864
- ibpMonitoring?: boolean;
1865
- incubator?: boolean;
1866
- infection?: com.moxi.api.ride.common.MonitoredValue;
1867
- infusomats?: com.moxi.api.ride.common.MonitoredValue;
1868
- intubated?: boolean;
1869
- ippvCppv?: boolean;
1870
- niv?: boolean;
1871
- oriented?: boolean;
1872
- otherMonitoring?: com.moxi.api.ride.common.MonitoredValue;
1873
- otherVentilation?: com.moxi.api.ride.common.MonitoredValue;
1874
- oxygen?: com.moxi.api.ride.common.MonitoredValue;
1875
- pacemaker?: boolean;
1876
- patientWeightAbove100Kg?: boolean;
1877
- peep?: boolean;
1878
- perfusor?: com.moxi.api.ride.common.MonitoredValue;
1879
- powerSupply?: boolean;
1880
- remark?: string;
1881
- resources?: string;
1882
- simvAsb?: boolean;
1883
- sleepy?: boolean;
1884
- spontaneous?: boolean;
1885
- stable?: boolean;
1886
- standardMonitoring?: boolean;
1887
- thoraxDrainage?: boolean;
1888
- tracheostomized?: boolean;
1889
- unconscious?: boolean;
1890
- unstable?: boolean;
1891
- vacuumMattress?: boolean;
1892
- veinCatheter?: boolean;
1893
- ventilated?: boolean;
1894
- }
1895
-
1896
- }
1897
-
1898
- export namespace com.moxi.api.ride.common {
1899
-
1900
- export interface MonitoredValue {
1901
- enabled?: boolean;
1902
- value?: string;
1903
- }
1904
-
1905
- }
1906
-
1907
1836
  export namespace com.moxi.api.ride.common {
1908
1837
 
1909
1838
  export interface Person {
@@ -1923,7 +1852,7 @@ export namespace com.moxi.api.ride.common {
1923
1852
  export namespace com.moxi.api.ride.common {
1924
1853
 
1925
1854
  /**
1926
- * Filled if (and only if) patient exceeds 130 kg
1855
+ * Mandatory if weight exceeds 130 kg, otherwise forbidden
1927
1856
  */
1928
1857
  export interface PersonDimensions {
1929
1858
  heightInCm?: number;
@@ -1957,18 +1886,18 @@ export namespace com.moxi.api.ride.common {
1957
1886
 
1958
1887
  export interface Ride extends com.moxi.api.rideseries.combined.common.RideOrSeries, com.moxi.api.rideseries.combined.common.RideOrMinimizedSeries {
1959
1888
  /**
1960
- * Derived from driver != null
1889
+ * 'accepted' is true if a driver has accepted the ride.
1961
1890
  */
1962
1891
  accepted?: boolean;
1963
1892
  acceptedTime?: string;
1964
1893
  actualEndTime?: string;
1965
1894
  actualStartTime?: string;
1966
1895
  /**
1967
- * Derived from driveStatus != null
1896
+ * 'arrived' is true if the driver has reported driveStatus is 'arrived_at_origin'.
1968
1897
  */
1969
1898
  arrived?: boolean;
1970
1899
  /**
1971
- * Derived from bookedTime != null
1900
+ * 'booked' is false if the ride has only been saved.
1972
1901
  */
1973
1902
  booked?: boolean;
1974
1903
  booker?: com.moxi.api.permissions.common.AccountOrTeamRef;
@@ -1976,15 +1905,15 @@ export namespace com.moxi.api.ride.common {
1976
1905
  cancelReason?: string;
1977
1906
  cancelled?: boolean;
1978
1907
  /**
1979
- * Derived from driveStatus == completed
1908
+ * 'completed' is true if the driver has reported driveStatus is 'completed'.
1980
1909
  */
1981
1910
  completed?: boolean;
1982
1911
  /**
1983
- * Desired Time of Arrival at the Destination/Drop-off location. Derived from info.appointment and info.plannedDuration
1912
+ * The booker determines the desiredEndTime via 'info.appointment' and 'info.plannedDuration'. It means the desired time of arrival at the 'to' or 'drop-off' location.
1984
1913
  */
1985
1914
  desiredEndTime?: string;
1986
1915
  /**
1987
- * Desired Time of Arrival at the Origin/Pick-up location. Derived from info.appointment and info.plannedDuration
1916
+ * The booker determines the desiredStartTime via 'info.appointment' and 'info.plannedDuration'. It means the desired time of arrival at the 'from' or 'pick-up' location.
1988
1917
  */
1989
1918
  desiredStartTime?: string;
1990
1919
  driveStatus?: com.moxi.api.ride.common.DriveStatus;
@@ -1992,20 +1921,20 @@ export namespace com.moxi.api.ride.common {
1992
1921
  driverSyncStatus?: com.moxi.api.ride.common.SyncStatus;
1993
1922
  endTimeDelay?: number;
1994
1923
  /**
1995
- * Expected Time of Arrival at the Destination/Drop-off location.
1924
+ * The driver determines the expectedEndTime when indicating delays. It means the expected time of arrival at the 'to' or 'drop-off' location.
1996
1925
  */
1997
1926
  expectedEndTime?: string;
1998
1927
  /**
1999
- * Expected Time of Arrival at the Origin/Pick-up location.
1928
+ * The driver determines the expectedEndTime when indicating delays. It means the expected time of arrival at the 'from' or 'pick-up' location.
2000
1929
  */
2001
1930
  expectedStartTime?: string;
2002
1931
  info?: com.moxi.api.ride.common.RideInfoUnion;
2003
1932
  /**
2004
- * Derived from plannedStartTime != null
1933
+ * 'planned' is true if the driver has reported a planned time for the ride.
2005
1934
  */
2006
1935
  planned?: boolean;
2007
1936
  /**
2008
- * Planned Time of Arrival at the Destination/Drop-off location, reported by the driver.
1937
+ * The driver determines the plannedEndTime. It means the planned time of arrival at the 'to' or 'drop-off' location.
2009
1938
  */
2010
1939
  plannedEndTime?: string;
2011
1940
  plannedStartTime?: string;
@@ -2013,7 +1942,7 @@ export namespace com.moxi.api.ride.common {
2013
1942
  seriesInfo?: com.moxi.api.ride.common.SeriesInfo;
2014
1943
  startTimeDelay?: number;
2015
1944
  /**
2016
- * Derived from driveStatus != null
1945
+ * 'started' is true if the driver has reported a driveStatus.
2017
1946
  */
2018
1947
  started?: boolean;
2019
1948
  }
@@ -2022,13 +1951,19 @@ export namespace com.moxi.api.ride.common {
2022
1951
 
2023
1952
  export namespace com.moxi.api.ride.common {
2024
1953
 
2025
- /**
2026
- * All durations in seconds
2027
- */
2028
1954
  export interface RideDuration {
2029
1955
  driving?: number;
1956
+ /**
1957
+ * Seconds of slack for dropping off the patient, currently hardcoded to 15 minutes
1958
+ */
2030
1959
  droppingOff?: number;
1960
+ /**
1961
+ * Seconds of slack for picking up the patient, currently hardcoded to 15 minutes
1962
+ */
2031
1963
  pickingUp?: number;
1964
+ /**
1965
+ * Seconds of driving time plus the pick-up and drop-off slack times
1966
+ */
2032
1967
  total?: number;
2033
1968
  }
2034
1969
 
@@ -2091,14 +2026,15 @@ export namespace com.moxi.api.ride.common {
2091
2026
 
2092
2027
  export namespace com.moxi.api.ride.common {
2093
2028
 
2094
- /**
2095
- * Common information shared across all rides in a series. Similar to RideInfo but without appointment-specific details that vary per ride.
2096
-
2097
- */
2098
2029
  export interface RideInfo extends com.moxi.api.rideseries.common.GenericRideInfo<com.moxi.api.ride.common.RideInfoUnion> {
2099
2030
  appointment?: com.moxi.api.ride.common.Appointment;
2031
+ /**
2032
+ * Returns custom billing code if provided, otherwise auto-generates it from ride details
2033
+ */
2034
+ billingCode?: string;
2035
+ customBillingCode?: string;
2100
2036
  purpose?: com.moxi.api.ride.common.RidePurpose;
2101
- vehicleType: "intensiveCareAmbulance" | "taxi";
2037
+ vehicleType: "taxi" | "intensiveCareAmbulance";
2102
2038
  }
2103
2039
 
2104
2040
  }
@@ -2126,7 +2062,7 @@ export namespace com.moxi.api.ride.common {
2126
2062
  export namespace com.moxi.api.ride.common {
2127
2063
 
2128
2064
  /**
2129
- * Information about a ride that is part of series.
2065
+ * If the ride is part of a series, seriesInfo will contain context about the position of the ride within the series.
2130
2066
  */
2131
2067
  export interface SeriesInfo {
2132
2068
  desyncedFromSeries?: boolean;
@@ -2138,6 +2074,252 @@ export namespace com.moxi.api.ride.common {
2138
2074
 
2139
2075
  }
2140
2076
 
2077
+ export namespace com.moxi.api.ride.intensivecare {
2078
+
2079
+ export interface Breathing {
2080
+ breathingDelivery?: com.moxi.api.ride.intensivecare.BreathingDeliveryUnion;
2081
+ spontaneous?: boolean;
2082
+ }
2083
+
2084
+ }
2085
+
2086
+ export namespace com.moxi.api.ride.intensivecare {
2087
+
2088
+ export interface BreathingDelivery {
2089
+ oxygenLiterPerMin?: number;
2090
+ type: "intubated" | "mask" | "tracheotomized";
2091
+ }
2092
+
2093
+ }
2094
+
2095
+ export namespace com.moxi.api.ride.intensivecare {
2096
+
2097
+ export interface Circulation {
2098
+ catecholamines?: string[];
2099
+ type?: com.moxi.api.ride.intensivecare.CirculationType;
2100
+ }
2101
+
2102
+ }
2103
+
2104
+ export namespace com.moxi.api.ride.intensivecare {
2105
+
2106
+ export interface Consciousness {
2107
+ gcs?: number;
2108
+ type?: com.moxi.api.ride.intensivecare.ConsciousnessType;
2109
+ }
2110
+
2111
+ }
2112
+
2113
+ export namespace com.moxi.api.ride.intensivecare {
2114
+
2115
+ export interface Equipment {
2116
+ cprDevice?: boolean;
2117
+ ecmo?: boolean;
2118
+ /**
2119
+ * Derived from infusionTherapy != blank
2120
+ */
2121
+ hasInfusionTherapy?: boolean;
2122
+ /**
2123
+ * Derived from perfusorDescription != blank
2124
+ */
2125
+ hasPerfusor?: boolean;
2126
+ /**
2127
+ * Derived from secondPerfusorDescription != blank
2128
+ */
2129
+ hasSecondPerfusor?: boolean;
2130
+ /**
2131
+ * Derived from thoraxDrainageLeft != null or thoraxDrainageRight != null
2132
+ */
2133
+ hasThoraxDrainage?: boolean;
2134
+ iabp?: boolean;
2135
+ infusionTherapy?: string;
2136
+ pacemaker?: boolean;
2137
+ perfusorDescription?: string;
2138
+ powerSupply?: boolean;
2139
+ secondPerfusorDescription?: string;
2140
+ thoraxDrainageLeft?: number;
2141
+ thoraxDrainageRight?: number;
2142
+ vacuumMattress?: boolean;
2143
+ }
2144
+
2145
+ }
2146
+
2147
+ export namespace com.moxi.api.ride.intensivecare {
2148
+
2149
+ export interface Infection {
2150
+ esbl?: boolean;
2151
+ furtherActions?: string;
2152
+ /**
2153
+ * Derived from furtherActions != blank
2154
+ */
2155
+ hasFurtherActions?: boolean;
2156
+ /**
2157
+ * Derived from infectionDescription != blank
2158
+ */
2159
+ hasInfection?: boolean;
2160
+ /**
2161
+ * Derived from otherGerms != blank
2162
+ */
2163
+ hasOtherGerms?: boolean;
2164
+ infectionDescription?: string;
2165
+ isolationNecessary?: boolean;
2166
+ mrgn?: boolean;
2167
+ mrsa?: boolean;
2168
+ otherGerms?: string;
2169
+ reverseIsolation?: boolean;
2170
+ vre_cre?: boolean;
2171
+ }
2172
+
2173
+ }
2174
+
2175
+ export namespace com.moxi.api.ride.intensivecare {
2176
+
2177
+ export interface IntensiveCareInfo {
2178
+ ageCategory?: com.moxi.api.ride.intensivecare.AgeCategory;
2179
+ babyPod?: boolean;
2180
+ babyWeighs3to8kg?: boolean;
2181
+ breathing?: com.moxi.api.ride.intensivecare.Breathing;
2182
+ circulation?: com.moxi.api.ride.intensivecare.Circulation;
2183
+ consciousness?: com.moxi.api.ride.intensivecare.Consciousness;
2184
+ diagnosis?: string;
2185
+ equipment?: com.moxi.api.ride.intensivecare.Equipment;
2186
+ infection?: com.moxi.api.ride.intensivecare.Infection;
2187
+ monitoring?: com.moxi.api.ride.intensivecare.Monitoring;
2188
+ otherRemarks?: string;
2189
+ overweightCategory?: com.moxi.api.ride.intensivecare.OverweightCategory;
2190
+ ventilation?: com.moxi.api.ride.intensivecare.Ventilation;
2191
+ }
2192
+
2193
+ }
2194
+
2195
+ export namespace com.moxi.api.ride.intensivecare {
2196
+
2197
+ /**
2198
+ * Ride information specific for intensive care rides.
2199
+ */
2200
+ export interface IntensiveCareRideInfo extends com.moxi.api.ride.common.RideInfo {
2201
+ costCenter?: string;
2202
+ /**
2203
+ * Derived from costCenter != blank
2204
+ */
2205
+ hasInternalBilling?: boolean;
2206
+ intensiveCareInfo?: com.moxi.api.ride.intensivecare.IntensiveCareInfo;
2207
+ requestingDoctorName?: string;
2208
+ requestingDoctorPhoneNr?: com.moxi.api.common.PhoneNumber;
2209
+ requestingStationName?: string;
2210
+ requestingStationPhoneNr?: com.moxi.api.common.PhoneNumber;
2211
+ respondingDoctorName?: string;
2212
+ respondingDoctorPhoneNr?: com.moxi.api.common.PhoneNumber;
2213
+ respondingStationName?: string;
2214
+ respondingStationPhoneNr?: com.moxi.api.common.PhoneNumber;
2215
+ urgency?: com.moxi.api.ride.intensivecare.Urgency;
2216
+ vehicleType: "intensiveCareAmbulance";
2217
+ }
2218
+
2219
+ }
2220
+
2221
+ export namespace com.moxi.api.ride.intensivecare {
2222
+
2223
+ /**
2224
+ * Intubated means a tube in the nose or mouth
2225
+ */
2226
+ export interface Intubated extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2227
+ fixationInCm?: number;
2228
+ oralOrNasal?: com.moxi.api.ride.intensivecare.OralOrNasal;
2229
+ tubeDiameterInMm?: number;
2230
+ type: "intubated";
2231
+ }
2232
+
2233
+ }
2234
+
2235
+ export namespace com.moxi.api.ride.intensivecare {
2236
+
2237
+ export interface Mask extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2238
+ highflowLiterPerMin?: number;
2239
+ niv?: com.moxi.api.ride.intensivecare.NIV;
2240
+ type: "mask";
2241
+ }
2242
+
2243
+ }
2244
+
2245
+ export namespace com.moxi.api.ride.intensivecare {
2246
+
2247
+ export interface Monitoring {
2248
+ ap?: boolean;
2249
+ arteryCatheterDescription?: string;
2250
+ capnometry?: boolean;
2251
+ cvlDescription?: string;
2252
+ cvp?: boolean;
2253
+ eeg?: boolean;
2254
+ /**
2255
+ * Derived from arteryCatheterDescription != blank
2256
+ */
2257
+ hasArteryCatheter?: boolean;
2258
+ /**
2259
+ * Derived from cvlDescription != blank
2260
+ */
2261
+ hasCvl?: boolean;
2262
+ /**
2263
+ * Derived from otherMonitoring != blank
2264
+ */
2265
+ hasOtherMonitoring?: boolean;
2266
+ /**
2267
+ * Derived from numberOfVenusLines != null
2268
+ */
2269
+ hasVenusLines?: boolean;
2270
+ icp?: boolean;
2271
+ numberOfVenusLines?: number;
2272
+ otherMonitoring?: string;
2273
+ pap?: boolean;
2274
+ standardMonitoring?: boolean;
2275
+ venusLinesDescription?: string;
2276
+ }
2277
+
2278
+ }
2279
+
2280
+ export namespace com.moxi.api.ride.intensivecare {
2281
+
2282
+ /**
2283
+ * NIV stands for Non Invasive Ventilation.
2284
+ */
2285
+ export interface NIV {
2286
+ fiO2?: number;
2287
+ peep?: number;
2288
+ }
2289
+
2290
+ }
2291
+
2292
+ export namespace com.moxi.api.ride.intensivecare {
2293
+
2294
+ /**
2295
+ * Tracheotomized means a tube through the skin.
2296
+ */
2297
+ export interface Tracheotomized extends com.moxi.api.ride.intensivecare.BreathingDelivery {
2298
+ fixationInCm?: number;
2299
+ tubeDiameterInMm?: number;
2300
+ type: "tracheotomized";
2301
+ }
2302
+
2303
+ }
2304
+
2305
+ export namespace com.moxi.api.ride.intensivecare {
2306
+
2307
+ export interface Ventilation {
2308
+ asb?: number;
2309
+ bf?: number;
2310
+ expiration?: number;
2311
+ fiO2?: number;
2312
+ inspiration?: number;
2313
+ mv?: number;
2314
+ other?: string;
2315
+ peep?: number;
2316
+ pmax?: number;
2317
+ td?: number;
2318
+ type?: com.moxi.api.ride.intensivecare.VentilationType;
2319
+ }
2320
+
2321
+ }
2322
+
2141
2323
  export namespace com.moxi.api.rideseries {
2142
2324
 
2143
2325
  export interface AcceptRideSeries extends com.moxi.api.rideseries.SeriesDriverCommand {
@@ -2425,10 +2607,6 @@ export namespace com.moxi.api.rideseries.combined.common {
2425
2607
 
2426
2608
  export namespace com.moxi.api.rideseries.common {
2427
2609
 
2428
- /**
2429
- * Common information shared across all rides in a series. Similar to RideInfo but without appointment-specific details that vary per ride.
2430
-
2431
- */
2432
2610
  export interface GenericRideInfo<T> {
2433
2611
  ambulanceInfo?: com.moxi.api.ride.common.AmbulanceInfo;
2434
2612
  attendantsPresent?: number;
@@ -2454,7 +2632,7 @@ export namespace com.moxi.api.rideseries.common {
2454
2632
  export namespace com.moxi.api.rideseries.common {
2455
2633
 
2456
2634
  /**
2457
- * RideSeries is a grouped ride series. A singular object, that is later split into individual rides, once a driver has accepted the series as a group.
2635
+ * A series of rides.
2458
2636
  */
2459
2637
  export interface MinimizedRideSeries extends com.moxi.api.rideseries.common.RideSeries, com.moxi.api.rideseries.combined.common.RideOrMinimizedSeries {
2460
2638
  info?: com.moxi.api.rideseries.common.SeriesRideInfo;
@@ -2465,17 +2643,20 @@ export namespace com.moxi.api.rideseries.common {
2465
2643
  export namespace com.moxi.api.rideseries.common {
2466
2644
 
2467
2645
  /**
2468
- * RideSeries is a grouped ride series. A singular object, that is later split into individual rides, once a driver has accepted the series as a group.
2646
+ * A series of rides.
2469
2647
  */
2470
2648
  export interface RideSeries extends com.moxi.api.rideseries.combined.common.RideOrSeries {
2471
2649
  /**
2472
- * Derived from driver != null
2650
+ * 'accepted' is true if a driver has accepted the series.
2473
2651
  */
2474
2652
  accepted?: boolean;
2475
2653
  acceptedTime?: string;
2654
+ /**
2655
+ * The number of rides in the series that are not cancelled.
2656
+ */
2476
2657
  activeRideCount?: number;
2477
2658
  /**
2478
- * Derived from bookedTime != null
2659
+ * 'booked' is false if the series has only been saved.
2479
2660
  */
2480
2661
  booked?: boolean;
2481
2662
  booker?: com.moxi.api.permissions.common.AccountOrTeamRef;
@@ -2485,7 +2666,13 @@ export namespace com.moxi.api.rideseries.common {
2485
2666
  rideSeriesId?: string;
2486
2667
  rides?: com.moxi.api.ride.common.Ride[];
2487
2668
  ridesSummaries?: com.moxi.api.rideseries.common.RideSummary[];
2669
+ /**
2670
+ * searchEndTime is the time from which series can be found in our system. It's the searchEndTime of the last ride in the series.
2671
+ */
2488
2672
  searchEndTime?: string;
2673
+ /**
2674
+ * searchStartTime is the time from which series can be found in our system. It's the searchStartTime of the first ride in the series.
2675
+ */
2489
2676
  searchStartTime?: string;
2490
2677
  }
2491
2678
 
@@ -2502,7 +2689,7 @@ export namespace com.moxi.api.rideseries.common {
2502
2689
  export namespace com.moxi.api.rideseries.common {
2503
2690
 
2504
2691
  /**
2505
- * Individual ride timing within a series. Once a ride series is split, you cannot add rides, only remove
2692
+ * Individual ride timing within a series. Once a ride series is accepted, you cannot add rides, only remove
2506
2693
  */
2507
2694
  export interface RideSummary {
2508
2695
  appointmentTime?: string;
@@ -2514,10 +2701,6 @@ export namespace com.moxi.api.rideseries.common {
2514
2701
 
2515
2702
  export namespace com.moxi.api.rideseries.common {
2516
2703
 
2517
- /**
2518
- * Common information shared across all rides in a series. Similar to RideInfo but without appointment-specific details that vary per ride.
2519
-
2520
- */
2521
2704
  export interface SeriesRideInfo extends com.moxi.api.rideseries.common.GenericRideInfo<com.moxi.api.rideseries.common.SeriesRideInfo> {
2522
2705
  purpose?: com.moxi.api.rideseries.common.SeriesPurpose;
2523
2706
  }
@@ -2526,10 +2709,6 @@ export namespace com.moxi.api.rideseries.common {
2526
2709
 
2527
2710
  export namespace com.moxi.api.rideseries.common.SeriesRideInfo {
2528
2711
 
2529
- /**
2530
- * Common information shared across all rides in a series. Similar to RideInfo but without appointment-specific details that vary per ride.
2531
-
2532
- */
2533
2712
  export interface AnonymizedSeriesRideInfo extends com.moxi.api.rideseries.common.SeriesRideInfo {
2534
2713
  }
2535
2714
 
@@ -3025,6 +3204,212 @@ export namespace com.moxi.api.web.common {
3025
3204
 
3026
3205
  }
3027
3206
 
3207
+ export namespace health.moxi.optimizer.common.api {
3208
+
3209
+ /**
3210
+ * Request to optimize fleet schedule
3211
+ */
3212
+ export interface OptimizationRequest {
3213
+ operationalRules?: health.moxi.optimizer.common.domain.OperationalRules;
3214
+ optimizationMode?: health.moxi.optimizer.common.planning.OptimizationMode;
3215
+ parameters?: health.moxi.optimizer.common.planning.OptimizationParameters;
3216
+ problemId?: string;
3217
+ schedule?: health.moxi.optimizer.common.domain.Schedule;
3218
+ useManualWeights?: boolean;
3219
+ weights?: health.moxi.optimizer.common.planning.ConstraintWeights;
3220
+ }
3221
+
3222
+ }
3223
+
3224
+ export namespace health.moxi.optimizer.common.domain {
3225
+
3226
+ /**
3227
+ * Base activity type containing common properties
3228
+ */
3229
+ export interface Activity {
3230
+ desiredStartTime?: string;
3231
+ distanceInMeters?: number;
3232
+ duration?: number;
3233
+ endLocation?: health.moxi.optimizer.common.domain.GeoLocation;
3234
+ id?: string;
3235
+ plannedStartTime?: string;
3236
+ routePinned?: boolean;
3237
+ startLocation?: health.moxi.optimizer.common.domain.GeoLocation;
3238
+ startTimePinned?: boolean;
3239
+ type: "ride" | "break" | "maintenance" | "connectingRide";
3240
+ vehicleType?: health.moxi.optimizer.common.domain.VehicleType;
3241
+ }
3242
+
3243
+ }
3244
+
3245
+ export namespace health.moxi.optimizer.common.domain {
3246
+
3247
+ /**
3248
+ * Driver break period
3249
+ */
3250
+ export interface Break extends health.moxi.optimizer.common.domain.Activity {
3251
+ type: "break";
3252
+ }
3253
+
3254
+ }
3255
+
3256
+ export namespace health.moxi.optimizer.common.domain {
3257
+
3258
+ /**
3259
+ * Dead-head travel between activities
3260
+ */
3261
+ export interface ConnectingRide extends health.moxi.optimizer.common.domain.Activity {
3262
+ idleTimeSeconds?: number;
3263
+ type: "connectingRide";
3264
+ }
3265
+
3266
+ }
3267
+
3268
+ export namespace health.moxi.optimizer.common.domain {
3269
+
3270
+ export interface GeoLocation {
3271
+ /**
3272
+ * Latitude coordinate in decimal degrees
3273
+ */
3274
+ latitude?: number;
3275
+ /**
3276
+ * Longitude coordinate in decimal degrees
3277
+ */
3278
+ longitude?: number;
3279
+ }
3280
+
3281
+ }
3282
+
3283
+ export namespace health.moxi.optimizer.common.domain {
3284
+
3285
+ /**
3286
+ * Scheduled vehicle maintenance activity
3287
+ */
3288
+ export interface Maintenance extends health.moxi.optimizer.common.domain.Activity {
3289
+ type: "maintenance";
3290
+ }
3291
+
3292
+ }
3293
+
3294
+ export namespace health.moxi.optimizer.common.domain {
3295
+
3296
+ /**
3297
+ * Operational rules and constraints
3298
+ */
3299
+ export interface OperationalRules {
3300
+ maxOvertime?: number;
3301
+ maxStartTimeDeviation?: number;
3302
+ minBreakStart?: number;
3303
+ }
3304
+
3305
+ }
3306
+
3307
+ export namespace health.moxi.optimizer.common.domain {
3308
+
3309
+ /**
3310
+ * Ride activity
3311
+ */
3312
+ export interface Ride extends health.moxi.optimizer.common.domain.Activity {
3313
+ infectious?: boolean;
3314
+ overweight?: boolean;
3315
+ type: "ride";
3316
+ }
3317
+
3318
+ }
3319
+
3320
+ export namespace health.moxi.optimizer.common.domain {
3321
+
3322
+ /**
3323
+ * Vehicle route with scheduled activities
3324
+ */
3325
+ export interface Route {
3326
+ activities?: health.moxi.optimizer.common.domain.ActivityUnion[];
3327
+ garage?: health.moxi.optimizer.common.domain.GeoLocation;
3328
+ id?: string;
3329
+ metrics?: health.moxi.optimizer.common.domain.RouteMetrics;
3330
+ overtimeSeconds?: number;
3331
+ shiftEnd?: string;
3332
+ shiftStart?: string;
3333
+ vehicleType?: health.moxi.optimizer.common.domain.VehicleType;
3334
+ }
3335
+
3336
+ }
3337
+
3338
+ export namespace health.moxi.optimizer.common.domain {
3339
+
3340
+ export interface RouteMetrics {
3341
+ averageRideStartTimeDeviation?: number;
3342
+ deadheadDistanceMeters?: number;
3343
+ totalDeadheadTime?: number;
3344
+ totalDistanceMeters?: number;
3345
+ totalIdleTime?: number;
3346
+ totalRideTime?: number;
3347
+ }
3348
+
3349
+ }
3350
+
3351
+ export namespace health.moxi.optimizer.common.domain {
3352
+
3353
+ /**
3354
+ * Schedule containing routes and activities
3355
+ */
3356
+ export interface Schedule {
3357
+ metrics?: health.moxi.optimizer.common.domain.ScheduleMetrics;
3358
+ routes?: health.moxi.optimizer.common.domain.Route[];
3359
+ status?: health.moxi.optimizer.common.domain.OptimizationStatus;
3360
+ unplannedActivities?: health.moxi.optimizer.common.domain.ActivityUnion[];
3361
+ }
3362
+
3363
+ }
3364
+
3365
+ export namespace health.moxi.optimizer.common.domain {
3366
+
3367
+ export interface ScheduleMetrics {
3368
+ ambulanceCount?: number;
3369
+ fleetUtilization?: number;
3370
+ medianRidesPerRoute?: number;
3371
+ overall?: health.moxi.optimizer.common.domain.RouteMetrics;
3372
+ plannedRides?: number;
3373
+ taxiCount?: number;
3374
+ totalOvertimeSeconds?: number;
3375
+ unplannedRides?: number;
3376
+ }
3377
+
3378
+ }
3379
+
3380
+ export namespace health.moxi.optimizer.common.planning {
3381
+
3382
+ /**
3383
+ * Constraint weights for different optimization objectives
3384
+ */
3385
+ export interface ConstraintWeights {
3386
+ balanceWorkload?: number;
3387
+ breakPositioning?: number;
3388
+ deadheadTimePenalty?: number;
3389
+ encourageRideAssignments?: number;
3390
+ idleTimePenalty?: number;
3391
+ minimizeTravelTime?: number;
3392
+ startTimeDeviation?: number;
3393
+ }
3394
+
3395
+ }
3396
+
3397
+ export namespace health.moxi.optimizer.common.planning {
3398
+
3399
+ /**
3400
+ * Solver parameters for tuning the optimization
3401
+ */
3402
+ export interface OptimizationParameters {
3403
+ acceptedCountLimit?: number;
3404
+ constructionStrategy?: health.moxi.optimizer.common.planning.ConstructionStrategy;
3405
+ maxUnimprovedSeconds?: number;
3406
+ searchStrategy?: health.moxi.optimizer.common.planning.SearchStrategy;
3407
+ startingTemperature?: number;
3408
+ tabuRatio?: number;
3409
+ }
3410
+
3411
+ }
3412
+
3028
3413
  export namespace com.moxi.api.authentication.common {
3029
3414
 
3030
3415
  export type AuthenticationResult = "SUCCESS" | "NOT_CONFIRMED" | "ONE_TIME_PASSWORD_NEEDED";
@@ -3057,7 +3442,7 @@ export namespace com.moxi.api.geojson.common.GeoJson {
3057
3442
 
3058
3443
  export namespace com.moxi.api.grpc.common {
3059
3444
 
3060
- export type GrpcStreamType = "get_einsatz_events";
3445
+ export type GrpcStreamType = "get_einsatz_events" | "optimizer_planning";
3061
3446
 
3062
3447
  }
3063
3448
 
@@ -3099,7 +3484,7 @@ export namespace com.moxi.api.permissions.subscription.common {
3099
3484
 
3100
3485
  export namespace com.moxi.api.permissions.subscription.common {
3101
3486
 
3102
- export type Service = "pro_medical" | "pro_fleet" | "pro_operator" | "celios_integration" | "dispolive_integration" | "moxi_operations";
3487
+ export type Service = "pro_medical" | "pro_fleet" | "pro_operator" | "celios_integration" | "dispolive_integration" | "moxi_operations" | "intensive_care";
3103
3488
 
3104
3489
  }
3105
3490
 
@@ -3135,7 +3520,7 @@ export namespace com.moxi.api.ride.common {
3135
3520
 
3136
3521
  export namespace com.moxi.api.ride.common {
3137
3522
 
3138
- export type RideInfoUnion = com.moxi.api.ride.common.RegularRideInfo | com.moxi.api.ride.common.IntensiveCareRideInfo;
3523
+ export type RideInfoUnion = com.moxi.api.ride.common.RegularRideInfo | com.moxi.api.ride.intensivecare.IntensiveCareRideInfo;
3139
3524
 
3140
3525
  }
3141
3526
 
@@ -3157,6 +3542,60 @@ export namespace com.moxi.api.ride.common {
3157
3542
 
3158
3543
  }
3159
3544
 
3545
+ export namespace com.moxi.api.ride.intensivecare {
3546
+
3547
+ export type AgeCategory = "adult" | "child" | "toddler" | "baby";
3548
+
3549
+ }
3550
+
3551
+ export namespace com.moxi.api.ride.intensivecare {
3552
+
3553
+ export type BreathingDeliveryType = "mask" | "intubated" | "tracheotomized";
3554
+
3555
+ }
3556
+
3557
+ export namespace com.moxi.api.ride.intensivecare {
3558
+
3559
+ export type BreathingDeliveryUnion = com.moxi.api.ride.intensivecare.Mask | com.moxi.api.ride.intensivecare.Intubated | com.moxi.api.ride.intensivecare.Tracheotomized;
3560
+
3561
+ }
3562
+
3563
+ export namespace com.moxi.api.ride.intensivecare {
3564
+
3565
+ export type CirculationType = "stable" | "stable_with_catecholamines" | "unstable_with_catecholamines";
3566
+
3567
+ }
3568
+
3569
+ export namespace com.moxi.api.ride.intensivecare {
3570
+
3571
+ export type ConsciousnessType = "oriented" | "sleepy" | "unconscious" | "analgo_sedated";
3572
+
3573
+ }
3574
+
3575
+ export namespace com.moxi.api.ride.intensivecare {
3576
+
3577
+ export type OralOrNasal = "oral" | "nasal";
3578
+
3579
+ }
3580
+
3581
+ export namespace com.moxi.api.ride.intensivecare {
3582
+
3583
+ export type OverweightCategory = "under_100" | "under_120" | "under_130" | "under_150" | "over_150";
3584
+
3585
+ }
3586
+
3587
+ export namespace com.moxi.api.ride.intensivecare {
3588
+
3589
+ export type Urgency = "immediate" | "urgent" | "plannable";
3590
+
3591
+ }
3592
+
3593
+ export namespace com.moxi.api.ride.intensivecare {
3594
+
3595
+ export type VentilationType = "pc_cmv" | "vc_cmv" | "bipap_duopap" | "ippv_cppv" | "simv" | "cpap";
3596
+
3597
+ }
3598
+
3160
3599
  export namespace com.moxi.api.rideseries.common {
3161
3600
 
3162
3601
  export type SeriesPurpose = "consultation";
@@ -3186,3 +3625,45 @@ export namespace com.moxi.api.web.common {
3186
3625
  export type WebsocketUpdateUnion = com.moxi.api.web.common.WebsocketSingleUpdate | com.moxi.api.web.common.WebsocketMultipleUpdates;
3187
3626
 
3188
3627
  }
3628
+
3629
+ export namespace health.moxi.optimizer.common.domain {
3630
+
3631
+ export type ActivityType = "ride" | "break" | "maintenance" | "connectingRide";
3632
+
3633
+ }
3634
+
3635
+ export namespace health.moxi.optimizer.common.domain {
3636
+
3637
+ export type ActivityUnion = health.moxi.optimizer.common.domain.Ride | health.moxi.optimizer.common.domain.Break | health.moxi.optimizer.common.domain.Maintenance | health.moxi.optimizer.common.domain.ConnectingRide;
3638
+
3639
+ }
3640
+
3641
+ export namespace health.moxi.optimizer.common.domain {
3642
+
3643
+ export type OptimizationStatus = "queued" | "in_progress" | "completed" | "failed" | "cancelled";
3644
+
3645
+ }
3646
+
3647
+ export namespace health.moxi.optimizer.common.domain {
3648
+
3649
+ export type VehicleType = "taxi" | "ambulance";
3650
+
3651
+ }
3652
+
3653
+ export namespace health.moxi.optimizer.common.planning {
3654
+
3655
+ export type ConstructionStrategy = "first_fit" | "cheapest_insertion";
3656
+
3657
+ }
3658
+
3659
+ export namespace health.moxi.optimizer.common.planning {
3660
+
3661
+ export type OptimizationMode = "full_optimization" | "magic_squeeze_in";
3662
+
3663
+ }
3664
+
3665
+ export namespace health.moxi.optimizer.common.planning {
3666
+
3667
+ export type SearchStrategy = "vnd" | "tabu_search" | "simulated_annealing";
3668
+
3669
+ }