Skip to content

feat: add logging support and enhanced SSE handling with event discrimination#83

Open
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-24T17-57Z
Open

feat: add logging support and enhanced SSE handling with event discrimination#83
fern-api[bot] wants to merge 1 commit intomainfrom
fern-bot/2026-03-24T17-57Z

Conversation

@fern-api
Copy link
Contributor

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

Version Bump: Removed public methods parserCreateJob(InputStream, String) and related overloads from AsyncLabReportClient and LabReportClient.

  • The parserCreateJob() methods that accepted InputStream parameters have been removed from AsyncLabReportClient and LabReportClient. Use the File-based overloads instead: replace parserCreateJob(inputStream, filename) with parserCreateJob(file, request) where file is a File object and request contains your parsing configuration.
  • Breaking changes: The parserCreateJob(InputStream, String) methods and related overloads have been removed from RawLabReportClient. Use the parserCreateJob(File, BodyCreateLabReportParserJob) method instead. New features: Added lab-specific configuration fields including labAccountId and labSlug in lab test requests, labSlug in marker requests, and appointmentNotes in appointment requests.
  • The SDK now supports tracking mobile SDK versions through new optional fields vitalIosSdkVersion and vitalAndroidSdkVersion in ManualConnectionData. Additional optional fields have been added including grantedPermissions for permission tracking, appointmentNotes for appointment rescheduling, and accessNotes for address information. The UserInfoCreateRequest class now uses UserAddress type instead of Address. Support for DerivedReadinessColumnExpr has been added to aggregate expressions.
  • New optional fields added to insulin injection samples: delivery_mode (how insulin was delivered), delivery_form (standard or extended bolus), and bolus_purpose (what the bolus was intended for). Order management enhanced with clinical_notes field for storing clinical information and status_detail field for event tracking. Lab results now include order_transaction information for better traceability.
  • The getJobId() method has been removed from the ParsingJob class. This field is no longer provided by the API and existing code referencing this method will need to be updated. The accessNotes field is now available on patient address models to support delivery instructions.
  • The UserInfo class now uses UserAddress instead of Address for the address field, providing better type safety. Additionally, UsAddress now supports an optional accessNotes field for delivery instructions. Existing code using UserInfo.getAddress() may need type updates to handle UserAddress instead of Address.
  • The getMarkers() method now supports filtering by lab slug via the lab_slug query parameter in LabTestsGetMarkersRequest.
  • The SDK now supports sending iOS and Android SDK version headers when connecting manual providers, enabling better platform-specific tracking and debugging.
  • The SDK now supports comprehensive HTTP request/response logging through the new LogConfig API. Configure logging on the client builder with logging(LogConfig.builder().level(LogLevel.DEBUG).silent(false).build()). New client resources compendium() and labAccount() are now available on both sync and async clients. Additional health data providers are supported including Samsung Health, Tandem Source, Sonora Quest, and CRL labs.
  • New SSE event parsing capabilities and compendium API client. The SDK now includes utilities for parsing Server-Sent Events with discriminated unions and a complete client for compendium search and conversion operations.
  • The SDK now supports compendium search and conversion operations through new request body classes. Added lab account management capabilities with the new LabAccountClient. Enhanced builder patterns across multiple request classes now include additionalProperty and additionalProperties methods for flexible request customization.
  • New lab account management capabilities available via RawLabAccountClient.getTeamLabAccounts() for retrieving team lab account configurations. The CreateOrderRequestCompatible now supports an optional clinicalNotes field for enhanced order documentation.
  • Request builders now include additionalProperty() and additionalProperties() methods for setting custom fields beyond the defined schema.
  • New builder methods additionalProperty() and additionalProperties() are now available on request builders for dynamic property handling. These methods enable setting custom key-value pairs on requests using a fluent builder pattern.
  • New additionalProperty() and additionalProperties() methods available on all vitals request builders, allowing dynamic configuration of custom properties alongside standard request parameters.
  • Builder methods for additional properties are now available on all vitals request classes. Use .additionalProperty(key, value) or .additionalProperties(map) to pass custom metadata with vitals requests.
  • The SDK now supports additional properties on request builders through new additionalProperty() and additionalProperties() methods. A new appointmentNotes field is available on AppointmentBookingRequest, and a new AppointmentPscLabs enum has been added with Quest lab options.
  • New builder methods additionalProperty() and additionalProperties() are now available on all SDK data classes, enabling you to set custom properties on API objects. A new CanonicalCandidate class has been added to support lab test normalization features.
  • New optional appointmentNotes field available on ClientFacingAppointment for storing provider and patient notes related to appointments.
  • New additionalProperty() and additionalProperties() builder methods available on client-facing type builders for enhanced extensibility support.
  • The SDK now supports insulin pump as a device source type for health data collection. New builder methods are available for setting additional properties on data models.
  • Builder interfaces now include additionalProperty() and additionalProperties() methods for setting custom properties on client-facing data types during object construction.
  • New event types for lab report parsing job lifecycle (created/updated) and insulin injection sample classification enums (bolus purpose, delivery form/mode) are now available. Enhanced builder pattern support with additional properties methods across lab and insurance related types.
  • New builder methods additionalProperty() and additionalProperties() are now available on all model builders, allowing developers to set custom properties on SDK objects. A new INSULIN_PUMP enum value has been added to ClientFacingMenstrualCycleSourceType.
  • The SDK now provides additionalProperty() and additionalProperties() methods on all model builders, allowing you to set custom fields for forward compatibility. A new INSULIN_PUMP source type is available for sleep cycle data.
  • New builder methods additionalProperty() and additionalProperties() are now available on all client-facing model builders, providing a consistent way to set custom additional properties programmatically.
  • New builder methods additionalProperty() and additionalProperties() are now available across all client-facing type builders, providing enhanced support for dynamic JSON properties.
  • New builder methods additionalProperty() and additionalProperties() are available on all model classes for setting custom properties. New compendium functionality includes CompendiumSearchLabs enum and ConvertCompendiumResponse class for lab test conversion, plus DerivedReadinessColumnExpr for readiness data queries.
  • The SDK now supports dynamic property handling in builder classes. New additionalProperty() and additionalProperties() methods are available on builders for enhanced flexibility when working with model objects. A new GetTeamLabAccountsResponse class has been added for team lab account operations.
  • The SDK now supports additional properties on grouped data types. Builders for GroupedCaloriesActive, GroupedGlucose, GroupedHeartRate, and other grouped response types now include additionalProperty() and additionalProperties() methods for handling extra fields in API responses.
  • New additionalProperty() and additionalProperties() methods available on all grouped data type builders, enabling custom key-value pairs to be set during object construction.
  • New additionalProperty() and additionalProperties() builder methods are now available on model classes for setting custom key-value pairs during object construction. The SDK also adds support for new lab account management enums and derived readiness indexing.
  • Builder classes now support setting additional properties via new additionalProperty() and additionalProperties() methods, enabling more flexible object construction for dynamic fields.
  • New PerLabCandidate class available for representing laboratory test candidates with comprehensive metadata including marker information, LOINC codes, and confidence scoring. Enhanced builder patterns across multiple model classes with additional property setting methods.
  • New providers Tandem Source and Samsung Health are now supported. New data types ProviderIdConversionResponse and RelatedCandidate are available for provider ID conversion operations. Lab result metadata now includes gender information through the new gender field in ResultMetadata.
  • New SearchCompendiumResponse, SearchMode, and UsState types are now available for search functionality. Enhanced builder patterns on existing types now support additional properties.

…mination

Add configurable logging to ClientOptions with LogConfig and LoggingInterceptor support.
Implement new SSE_EVENT_DISCRIMINATED stream type for handling discriminated union payloads
in Server-Sent Events streams. Remove deprecated InputStream-based file upload methods
from lab report clients.

Key changes:
- Add optional logging configuration to ClientOptions builder
- Implement SSE event-level discrimination with SseEventParser integration
- Remove InputStream overloads for parserCreateJob methods
- Add fromSseWithEventDiscrimination factory methods to Stream class
- Update documentation to reflect file(s) upload capability

🌿 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