Skip to content

feat: add logging support and SSE event discrimination#85

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-26T10-04Z
Open

feat: add logging support and SSE event discrimination#85
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-26T10-04Z

Conversation

@fern-api
Copy link
Contributor

@fern-api fern-api bot commented Mar 26, 2026

Version Bump: Removed public parserCreateJob() methods that accept InputStream parameters from LabReportClient and AsyncLabReportClient.

  • The SDK now supports configurable logging through the new logging() method on ClientOptions.Builder. Logging is silent by default and can be configured with a LogConfig instance. Enhanced Server-Sent Events (SSE) streaming now supports event-level discrimination for APIs that use discriminated unions in SSE event payloads via new fromSseWithEventDiscrimination() methods on the Stream class.
  • The SDK removes deprecated file upload methods that accepted InputStream parameters from RawLabReportClient. New optional lab configuration parameters are now available: labAccountId and labSlug fields in CreateLabTestRequest, labSlug parameter in LabTestsGetMarkersRequest, and appointmentNotes field in RequestAppointmentRequest. The lab parameter in LabTestsGetPscAppointmentAvailabilityRequest now uses the AppointmentPscLabs enum instead of a String for better type safety.
  • The SDK now supports additional optional fields for enhanced data capture: SDK version tracking in manual connections, appointment notes for rescheduling requests, access notes for addresses, and granted permissions tracking. A new derived readiness column expression type has been added to aggregation queries.
  • The SDK now supports detailed insulin injection tracking with new optional properties for delivery mode, delivery form, and bolus purpose. Order management is enhanced with a new clinical notes field, and lab results now include optional order transaction information.
  • The getJobId() method has been removed from the ParsingJob class. Existing code that calls this method will need to be updated. The SDK now supports an optional accessNotes field in patient address types (PatientAddress, PatientAddressCompatible, and PatientAddressWithValidation) and adds support for derived readiness column expressions in query operations.
  • The SDK now supports access notes for US addresses through the new optional accessNotes field in the UsAddress class. Address handling in user information has been updated to use the more specific UserAddress type.
  • The getMarkers() method now accepts an optional lab_slug parameter for filtering markers by lab. Method documentation has also been updated to better describe functionality.
  • The SDK now supports filtering markers by lab slug in the getMarkers() method and includes iOS/Android SDK version headers for manual provider connections to improve debugging and analytics.
  • The SDK now supports tracking mobile SDK versions through conditional headers. When creating manual provider links, iOS and Android SDK versions can be specified and will be sent as headers to the server for analytics and debugging purposes.
  • The SDK now supports comprehensive logging with configurable log levels and custom logger implementations. New lab providers SONORA_QUEST and CRL are now supported, along with SAMSUNG_HEALTH for manual data providers and TANDEM_SOURCE for password-based providers. Additional order status tracking includes corrected results and lab processing blocks. New client methods compendium() and labAccount() provide access to expanded API functionality.
  • New compendium API client available with search() and convert() methods for compendium operations. The SDK also includes a new SSE event parser utility for handling Server-Sent Events with discriminated union support.
  • New compendium search and conversion APIs are now available with ConvertCompendiumBody and SearchCompendiumBody request classes. Added LabAccountClient with getTeamLabAccounts() method for managing lab accounts. Enhanced request builders across the SDK with additional property methods.
  • New lab account management capabilities available. The SDK now includes a RawLabAccountClient with getTeamLabAccounts() method for retrieving team lab accounts with filtering by account ID and status. Lab test order creation now supports an optional clinicalNotes field for providing additional clinical context.
  • Request builders now support adding custom properties via new additionalProperty(key, value) and additionalProperties(Map) methods, providing enhanced extensibility for all request types.
  • New builder methods additionalProperty() and additionalProperties() are now available on request builders across the SDK, allowing developers to include custom key-value pairs in API requests.
  • New builder methods additionalProperty() and additionalProperties() are now available on all Vitals request builders. These methods allow passing custom key-value pairs for extended functionality.
  • New additionalProperty() and additionalProperties() methods available on all vitals request builders, enabling flexible extension of requests with custom key-value pairs.
  • The SDK now supports custom additional properties through new additionalProperty() and additionalProperties() methods on builder classes. This enables passing custom fields that are preserved during API communication. The AppointmentBookingRequest class also includes a new optional appointmentNotes field, and a new AppointmentPscLabs enum is available for Quest and Sonora Quest lab providers.
  • New builder methods additionalProperty() and additionalProperties() are available on all data type builders for flexible property handling. The SDK also introduces the new CanonicalCandidate class for laboratory test canonical matching with LOINC code support.
  • New appointmentNotes field available on appointment objects to capture additional context. Enhanced builder patterns with additionalProperty() and additionalProperties() methods for greater flexibility when constructing objects.
  • New builder methods additionalProperty() and additionalProperties() are now available on client-facing type builders, allowing programmatic addition of custom properties during object construction.
  • The SDK now supports insulin pump as a device source type. Additionally, all client-facing model builders now include additionalProperty() and additionalProperties() methods for enhanced extensibility when working with custom fields.
  • New builder methods additionalProperty() and additionalProperties() are now available on all model builders, allowing developers to set custom properties during object construction for better extensibility.
  • New lab account management capabilities with ClientFacingLabAccount class. Enhanced insulin injection data model with detailed enums for bolus purpose, delivery form, and delivery mode. Added support for lab report parsing job events.
  • New additionalProperty() and additionalProperties() methods are now available on builder classes for data types, allowing custom fields to be added to extend the base schema. Also added INSULIN_PUMP as a new source type for menstrual cycle data.
  • New builder methods additionalProperty() and additionalProperties() are now available on all response model builders, providing a fluent API for working with dynamic properties in API responses. The ClientFacingSleepCycleSourceType enum also includes a new INSULIN_PUMP value.
  • New builder methods additionalProperty() and additionalProperties() are now available on all ClientFacing model builders to set custom properties that will be preserved during serialization.
  • New additionalProperty() and additionalProperties() methods are now available on all client-facing type builders. These methods allow you to set custom key-value pairs that will be included when the object is serialized.
  • The SDK now includes builder methods for setting additional properties on response objects and new types for compendium conversion operations. New ConvertCompendiumResponse class and CompendiumSearchLabs enum are available for working with lab test compendiums.
  • New builder methods additionalProperty() and additionalProperties() are now available on model classes for flexible handling of additional JSON properties. A new GetTeamLabAccountsResponse model has also been added.
  • Builder classes now include additionalProperty() and additionalProperties() methods for setting custom key-value pairs on objects that support additional properties.
  • New additionalProperty() and additionalProperties() methods available on all grouped data type builders for handling custom fields in API responses.
  • New builder methods additionalProperty() and additionalProperties() are now available on all data type builders for handling dynamic properties. Additionally, a new DERIVED_READINESS enum value has been added to IndexColumnExprIndex for indexing derived readiness data.
  • Builder classes now support setting additional properties via new additionalProperty(String key, Object value) and additionalProperties(Map<String, Object> additionalProperties) methods. This enables handling of API responses with extra fields not explicitly defined in the model schema.
  • New PerLabCandidate type available for lab test candidate information with LOINC codes, CPT codes, and confidence scoring. Enhanced builder pattern support across existing types with additional property methods.
  • The SDK now supports new provider ID conversion functionality with ProviderIdConversionResponse and RelatedCandidate types. Added support for TANDEM_SOURCE and SAMSUNG_HEALTH providers. Enhanced ResultMetadata with optional gender field. All types now include builder methods for additional properties to improve extensibility.
  • New types for laboratory data search functionality: SearchCompendiumResponse and SearchMode enums are now available for searching medical test compendiums. The SDK also includes a new UsState enum for US geographic filtering.

Add configurable logging through LogConfig on ClientOptions with silent-by-default behavior. 
Implement new SSE event-level discrimination support for streaming APIs with discriminated 
union handling. Remove deprecated InputStream-based file upload methods from LabReportClient.

Key changes:
- Add logging() builder method to ClientOptions with LogConfig support
- Add SSE_EVENT_DISCRIMINATED stream type for discriminated union events
- Add fromSseWithEventDiscrimination() factory methods to Stream class
- Remove parserCreateJob() overloads accepting InputStream parameters
- Update API documentation to reflect multiple file upload support

🌿 Generated with Fern
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants