paul1956/CareLink
49.6
Weak · 20 September 2026
34.2k
lines of production code
VB.NET
primary language
4
measurements over time
What this system is
CareLink is a Windows desktop application designed to interface with the Medtronic CareLink API and MiniMed Flex pump devices for diabetes management. It retrieves and visualizes patient health data, including sensor glucose history, basal rates, and active insulin, while providing tools to parse and display device configuration settings from PDF reports. The system supports user authentication via OAuth, manages multiple patient profiles, and offers customizable data grids and charts for monitoring therapy metrics.
How it got here
2021–2023 — Initial scaffolding and core infrastructure
21 changes.
This period established the foundational structure for the CareLink Windows application, focusing on project scaffolding, environment configuration, and the implementation of core application startup logic. It introduced essential utility modules, custom UI controls, and data handling infrastructure to support pump records and user data management. The work also involved consolidating global state and constants while upgrading the framework to .NET 11.
2025 — CareLink integration and data modeling
12 changes.
This period focused on building the CareLink integration by introducing comprehensive data models for record discovery, SSO configuration, authorization, and patient data. It also established a robust API communication layer with improved token handling and refactored helper modules to standardize data processing, UI presentation, and PDF report generation.
2026 — CareLink Flex support and UI modernization
11 changes.
This period focused on integrating support for the CareLink Flex API and device PDF reports, including new OAuth authentication flows and data models. The work also involved modernizing the user interface with dark mode and high-DPI support, updating the WebView2 runtime distribution, and expanding test coverage for client and UI components.
Features
Add PDF record models for MiniMed Flex device settings
The PdfRecords directory now includes a comprehensive set of data classes (e.g., PdfSettingsRecord, LowAlertsRecord, NamedBasalRecord) to parse and represent device configuration data from PDF files. This addition introduces support for the MiniMed Flex device family, enabling the application to extract and structure settings such as basal rates, alerts, and sensor configurations.
src/CareLink/Records/PdfRecords · high confidence
Added JSON model classes for MarkersData
New Visual Basic classes (Content, Data, DataValues, Item, Marker, View) have been added to the MarkersData folder to define the structure for deserializing marker-related JSON data. These models map JSON fields like 'type', 'timestamp', 'dataValues', and 'views' to strongly-typed properties, enabling the application to parse and handle marker data records from the CareLink service.
src/CareLink/Records/PatientData/MarkersData · high confidence
Added Unicode-aware line splitting helper
A new helper module, UnicodeNewline, has been introduced to provide robust string processing capabilities. It includes a SplitLines extension method that correctly identifies and splits text based on various Unicode newline delimiters (such as LF, CR, CRLF, NEL, VT, FF, LS, and PS), with an optional parameter to trim whitespace from the resulting lines.
src/CareLink/Helpers/UnicodeHelpers · high confidence
Added data models for CareLink record authorization
New classes have been introduced in the CareLink Records module to represent the authorization response structure, including the provider details (ID, authentication URL, and polling URL) and the top-level authorization object containing the identity provider and list of providers. These models support the deserialization of authorization data for CareLink record access.
src/CareLink/Records/AuthorizeRecords · high confidence
Added data models for CareLink record discovery configuration
New classes (CPEntry, CertificateInfo, ConfigRecord, CountryInfo, DiscoveryRoot) were added to the DiscoverRecords module to represent the structure of the discovery configuration response, including support for SSO configurations, base URLs, and country-specific data.
src/CareLink/Records/DiscoverRecords · high confidence
Added data models for patient personal and user information
New classes \PatientPersonalInfo\ and \UserInfo\ have been added to the \CommunicationRecords\ area to map patient profile and user account data. These models define the structure for deserializing JSON responses from the CareLink API, including fields such as login dates, account IDs, roles, and MFA status, enabling the application to correctly parse and display user-specific information.
src/CareLink/Records/CommunicationRecords · high confidence
Added empty Class1 placeholder in JsonDeserializationWithException
A new empty class file (Class1.cs) was added to the JsonDeserializationWithException project. The class contains no members or logic, serving only as a structural placeholder within the namespace.
JsonDeserializationWithException · high confidence
Added scripts to download country flag images
New PowerShell scripts have been added to the repository to download country flag images (PNGs) from FlagCDN, with a fallback to Twemoji for unavailable sources. The \download-all-flags.ps1\ script downloads the full set of ISO 3166-1 alpha-2 country flags to \src\\CareLink\\Images\\Flags\, while \download-flags.ps1\ allows downloading specific flags based on provided codes or a \codes.txt\ file. These scripts support configurable image sizes and can optionally copy the downloaded assets to the runtime output folder.
scripts · high confidence
Initial project scaffolding and configuration for CareLink
The application project has been initialized with core configuration files, including the application entry point, assembly metadata, and user settings. This setup establishes the runtime behavior (such as high-DPI support and single-instance mode), defines the main form, and configures user-scoped settings for CareLink credentials, country codes, and system preferences like audio alerts and speech recognition thresholds. Additionally, resource definitions for UI assets (icons, images) and alarm sounds are included to support the application's visual and auditory interface.
src/CareLink/My Project · high confidence
Initial project scaffolding and development environment configuration
This change establishes the foundational structure for the CareLink Windows application repository. It introduces a comprehensive .editorconfig file to enforce consistent C\# and VB.NET coding styles, including naming conventions, indentation, and null-checking preferences. The solution is configured with Directory.Build.props and Directory.Build.targets to centrally manage Roslyn analyzers and resolve duplicate WebView2 native DLL packaging conflicts. Additionally, the repository includes essential documentation (README, GettingStarted, License), a .gitignore tailored for Visual Studio and .NET artifacts, and configuration files for Visual Studio extensions, Copilot instructions, and code coverage testing.
(repo-wide) · high confidence
Introduction of Client2 for improved CareLink API communication
A new internal Client2 class has been added to handle CareLink API interactions, featuring a robust retry loop for transient failures, centralized HTTP client management, and improved token handling using JsonElement for better parsing of access token payloads. This change replaces previous implementation patterns with a more reliable and maintainable approach to data retrieval and authentication flows.
src/CareLink/CareLinkCommunications · high confidence
New About dialog and control position debugging tool
The application now includes a new About box that displays the product name, version, copyright, company details, and description, along with the specific .NET runtime version being used. Additionally, a new Control Positions form has been added, which presents a read-only DataGridView listing the layout coordinates of application controls, serving as a diagnostic tool for UI positioning issues.
src/CareLink/Forms · high confidence
New CareLink user data management and current user record structures
The application introduces new internal structures to manage CareLink user credentials and current session state. A new \CareLinkUserDataList\ class provides a data-binding-capable collection for storing and editing multiple user profiles, while \CareLinkUserDataRecord\ handles individual user settings such as login credentials, country codes, and time zone preferences, including persistence to application settings and CSV export. Additionally, a \CurrentUserRecord\ class now encapsulates the active user's context, including insulin type, carb ratios, and active insulin calculations, with specific logic to disable advanced AIT decay options for Flex insulin pumps.
src/CareLink/Records/UserDataRecords/CareLinkUserData · high confidence
New DataGridView helper modules for consistent styling and export
This change introduces a new set of helper modules in the DataGrivView Helpers directory to standardize and improve the presentation and usability of data grids. DgvCellStyleHelpers provides extension methods for formatting cell values, including handling zero values, applying bold styles, and coloring cells based on content (such as URIs). DgvColumnEventArgsExtensions and DgvInitializationExtensions centralize the configuration of DataGridView columns and controls, ensuring consistent appearance and behavior across the application. DgvDataTableHelpers simplifies the process of binding DataTables to grids within TableLayoutPanels, while DgvEmptyHelpers manages the display of 'No records found' states. Additionally, DgvExportHelpers adds support for exporting grid data to Excel with formatting and copying data to the clipboard, enhancing the user's ability to interact with and share data.
src/CareLink/DataGrivView Helpers · high confidence
New DataGridViewNumericUpDown custom control for numeric data entry
A new custom control set has been added to the CareLink application, introducing \DataGridViewNumericUpDownCell\, \DataGridViewNumericUpDownColumn\, and \DataGridViewNumericUpDownEditingControl\. This allows users to edit numeric values directly within DataGridView columns using a familiar up-down spinner interface, supporting configurable properties such as decimal places, increment steps, and minimum/maximum bounds. This replaces the need for standard text-box editing in numeric fields, providing a more intuitive and robust data entry experience for quantitative data.
src/CareLink/CustomControls/DataGridViewNumericUpDown · high confidence
New Form1 helper modules for image caching, data collection, and UI updates
The Form1Helpers directory now includes several new modules that support the main application form: BitmapCache and CompositeGenerators manage preloaded and dynamically generated composite images (such as battery indicators) with a bounded temporary cache; Form1CollectMarkersHelper processes and scales glucose/insulin markers from JSON data; Form1SummaryTabHelpers and Form1TransmitterBatteryHelper update the summary DataGridView and sensor status displays; Form1UpdateHelpers handles date parsing, time-zone logic, and SG list ordering; ImageHelper coordinates composite image creation; LoggingHelpers provides a fallback disk-log mechanism when the logger window is hidden; MenuHelpers cleans up menu separators; and TabLocation, FileNameStruct, FlagHelpers, and ControlInspector provide supporting structures and utilities.
src/CareLink/Helpers/Form1Helpers · high confidence
New PDF parser support for Flex pump alert and delivery settings
The PumpSetup module now includes new VB.NET modules (AlertSettings.vb and DeliverySettings.vb) to parse and format Flex-specific pump data into PDF reports. AlertSettings handles high/low alerts, reminders, and sensor ending alerts, with specific logic to detect Flex devices (via \pdf.IsFlex\ and \l1.ValueUnits Is Nothing\) to display Carb/BG units as 'Grams' and 'mg/dL' respectively, and to omit legacy properties like 'Time Before High' and 'Resume Basal Alert'. DeliverySettings parses bolus wizard setup (carbohydrate ratios, insulin sensitivity, blood glucose targets), basal patterns, max basal/bolus, dual/square wave settings, bolus increment/speed, and preset bolus configurations, ensuring all these details are correctly rendered in the generated PDF.
src/CareLink/Extensions/PumpSetup · high confidence
New PatientData record models for CareLink integration
The PatientData directory now includes a comprehensive set of new VB.NET classes (e.g., ActiveInsulin, Basal, LastSG, TherapyAlgorithmState) that map directly to the CareLink JSON payload structure. These models enable the application to correctly parse and display detailed pump and sensor data, including basal rates, active insulin, sensor glucose history, and therapy algorithm states.
src/CareLink/Records/PatientData · high confidence
New SSO configuration data models for CareLink
Added a set of new VB.NET classes in the SsoConfig namespace to represent the structure of Single Sign-On configuration data. These models, including SsoConfig, Server, Client, SystemEndpoints, OAuth, MagConfig, and related types, map JSON fields (such as endpoint paths, token lifetimes, and BLE service UUIDs) to strongly-typed properties using System.Text.Json.Serialization, enabling the application to parse and handle the new SSO protocol configuration.
src/CareLink/Records/SsoConfig · high confidence
New color management helpers for graph lines and UI contrast
The application introduces a new set of helper modules in the ColorHelpers directory to standardize how colors are managed and displayed. ColorDictionaryHelpers defines a persistent dictionary mapping graph legend items (such as Active Insulin, Basal Series, and SG Target) to specific KnownColors, supporting loading and saving these preferences to a file. NearestKnownColor provides algorithms to find the closest standard color to any arbitrary RGB value, enabling more intuitive color picking. Additionally, ColorHelpers offers utility functions to calculate contrasting text colors (black or white) based on background brightness and to determine if a color is dark, ensuring that text remains readable against colored backgrounds in tables and charts.
src/CareLink/Helpers/ColorHelpers · high confidence
New custom UI controls for color selection and percentage input
Added three new custom controls to the CareLink interface: KnownColorComboBox, which provides a dropdown for selecting from a list of known colors with visual swatches; NameColorComboBox, which displays a list of specific graph colors with their names and associated values; and PercentUpDown, a numeric up-down control that automatically formats its input and output with a percentage sign. These controls enhance the user experience for color editing and percentage-based data entry within the application.
src/CareLink/CustomControls · high confidence
New dialogs for cleanup, exception handling, and initialization
Added three new Windows Forms dialogs to the application: a 'Cleanup Stale Files' dialog that allows users to selectively delete error report files via a tree view; an 'Unhandled Exception' dialog that captures crash details, generates a report file, and guides users to report issues on GitHub; and an 'Initialize' dialog for configuring pump settings such as AIT, carb ratios, and targets.
src/CareLink/Dialogs · high confidence
New enum definitions for UI assets, server data, and system constants
Added several new enumeration modules to the CareLink application to support UI resource management, data serialization, and system constants. The new \ImageEnums\ module defines identifiers for various pump and sensor status icons (such as battery levels, connectivity states, and calibration indicators), including support for dark/light themes. \ServerDataEnum\ provides a structured list of fields for mapping server-side health data responses. Additionally, \CursorInfoVisibilityEnums\ defines bitmasks for cursor visibility states, \FileEnum\ specifies options for file loading during login or initialization, and \UnicodeEnums\ standardizes newline character handling.
src/CareLink/Enums · high confidence
New extension methods for asynchronous tasks, UI controls, and data handling
The application introduces a suite of new extension methods in the Extensions module to improve code consistency and usability. Asynchronous operations now use a dedicated ConfigureAwaitFalse helper to standardize context handling. UI controls benefit from new methods to manage visibility, center forms and labels on their parents, and auto-adjust font sizes to fit available width. Data handling is enhanced with extensions to search ComboBox collections by key or value, validate CareLink access tokens for expiration, and robustly parse dictionary data into strongly-typed class objects.
src/CareLink/Extensions · high confidence
New marker data models for pump records
Added new data classes in the MarkerrTypes folder to represent specific pump marker records, including AutoBasalDelivery, AutoModeStatus, BgReading, Calibration, Insulin, LowGlucoseSuspended, Meal, and TimeChange. These classes standardize how timestamp, display time, and specific event data (such as insulin amounts, glucose readings, and basal rates) are parsed and exposed for downstream processing and display.
src/CareLink/Records/PatientData/MarkersData/MarkerrTypes · high confidence
New pump record models and data handling infrastructure
This change introduces several new data record classes for pump data, including AcknowledgedRecord, CarbRatioRecord, InsulinActivationRecord, SnoozedRecord, and SummaryRecord, along with supporting utilities like OADate and ItemIndexesModule. These additions enable the application to parse, store, and display specific pump settings (like carbohydrate ratios), activation events, and summary data with improved type safety and formatting.
src/CareLink/Records/Pump Records · high confidence
New support classes for control metadata, indexed enumeration, and time formatting
Added three new support classes to the CareLink application: ControlInfo, which stores UI control metadata and formats anchor styles; IndexClass, which provides indexed enumeration context for iterating sequences; and TimeSpanParts, which formats time durations into human-readable day and hour strings.
src/CareLink/SupportClasses · high confidence
New test helper utilities for HTTP mocking and test data resolution
Added three new helper classes to the test project to improve test reliability and maintainability. CapturingHandler and SimpleResponseHandler provide lightweight HTTP message handlers for mocking responses in tests, allowing tests to intercept and verify HTTP requests without external dependencies. FileHelpers introduces a robust, multi-strategy path resolution system for locating TestData directories, walking up the directory tree to find test data relative to the calling file or solution root, which simplifies test setup and reduces brittle path assumptions.
src/TestProject/TestHelpers · high confidence
New utility modules for browser launching, discovery, and update checking
The application introduces several new utility modules in the Utilities folder to support core functionality. BrowserUtilities provides a method to open URLs in the user's default web browser with cursor feedback. Discover handles fetching and caching configuration data for supported countries and server regions. UpdateChecker asynchronously checks for new application versions on GitHub, ignoring pre-release builds, and notifies the user via the status strip. FileUtilities manages login data files, including validation and sanitization of token JSON by removing deprecated fields like client\_secret. CertificateSigningRequest (now deprecated) and RandomFunctions provide utilities for generating CSRs and random identifiers. DllImports centralizes Windows API calls used for window attributes and formatting.
src/CareLink/Utilities · high confidence
Support for parsing CareLink Flex device PDF reports
The PDF Device Settings parser now supports extracting configuration data from CareLink Flex device reports in addition to the existing legacy format. This change introduces a new \FlexPdfParser\ module and updates the main \PdfSettingsParserRoot\ to automatically detect Flex PDFs (by checking for 'MiniMed Flex' in the text) and route them to the new parser, while legacy reports continue to use the \LegacyPdfParser\. The new parser handles Flex-specific settings such as basal rates, bolus wizard, and SmartGuard reminders.
src/CareLink/Helpers/PDF DeviceSettings · high confidence
Architecture
Centralized constants for charts, time, messages, and system settings
The application now uses a dedicated set of constant modules in the Constants folder to manage configuration and display data. This includes definitions for chart series names (e.g., Basal, ActiveInsulin), time spans and formats, power broadcast codes, server region locations (US, EU, Clinical), and user-facing notification messages for both standard and Flex pump modes. System constants also define insulin activation times, blood glucose unit conversions (mg/dL to mmol/L), and HTTP headers, providing a single source of truth for these values across the application.
src/CareLink/ProgramVariables/Constants · high confidence
Consolidate global variables into dedicated modules
The application's global state management has been refactored by introducing three new modules—NativeMmolLSupport, PumpVariables, and SystemVariables—to replace scattered global fields. This change centralizes blood glucose unit handling (mmol/L vs. mg/dL), pump-specific data structures (such as basal lists and markers), and system-wide settings (including cached fonts and user preferences) into organized, maintainable components.
src/CareLink/ProgramVariables · high confidence
Refactored charting logic into modular helper modules
The charting implementation in src/CareLink/Helpers/Charting has been reorganized into distinct, focused modules to improve maintainability and readability. New files include CalloutHelpers for managing chart annotations, ChartingHelpers for utility functions like minimum basal detection, CreateChartItems for series and chart area configuration, GetManualBasalPoints for extracting manual basal data, PaintMarkerExtensions for rendering markers and limit rectangles, PlotMarkers for handling marker data points, PlotSeriesBasal for basal insulin plotting, PlotSeriesLimits for target and limit lines, PlotSeriesSg for sensor glucose plotting, and PlotSuspend for low-glucose suspension areas. This refactoring consolidates related logic, removes unused parameters, and standardizes chart rendering behavior.
src/CareLink/Helpers/Charting · high confidence
Behavioural changes
Added application configuration file
The project now includes an Application.myapp file that defines the startup behavior, setting Form1 as the main form, enabling visual styles, and configuring single-instance and shutdown modes.
src/TestProject/My Project · high confidence
CareLink application initialization and configuration infrastructure
This change introduces the core application startup and configuration files for the CareLink client. It adds an App.config defining user settings such as country code (defaulting to US), auto-login, and Time-in-Tight-Range (TiTR) thresholds. ApplicationEvents.vb implements startup logic to prefetch discovery data based on the configured region and configures the application for high-DPI support, dark mode, and deferred form reveal. Additionally, a runtimeconfig.template.json enables the AnchorLayoutV2 Windows Forms feature, and sample JSON files are added to provide test data structures for user profiles and server discovery.
src/CareLink · high confidence
Pump Setup dialog now supports dark mode and high-DPI displays
The Pump Setup application window now adapts to the system's dark color scheme and scales correctly on high-DPI monitors. This is achieved by configuring the application to use PerMonitorV2 high-DPI handling and enforcing a dark system color mode at startup, ensuring the interface remains readable and properly sized regardless of the user's display settings.
src/PumpSetup · high confidence
Refactor OAuth token handling and model definitions
The CareLink application introduces new model classes to standardize OAuth token processing and configuration. AccessTokenDetails and TokenData now explicitly map JSON fields (such as access\_token, refresh\_token, and user profile claims) for improved parsing reliability, while EndpointConfig and RedirectResult provide structured handling for SSO configuration and redirect states. This change supports a more robust token refresh flow and browser-based OAuth handling, ensuring that access tokens and associated user data are stored and processed consistently.
src/CareLink/Models · high confidence
Refactored helper utilities and introduced new diagnostic tools
The \src/CareLink/Helpers\ directory has been reorganized into distinct modules to improve maintainability and add new capabilities. New helper modules include \ClassHelpers\ and \DataTableHelpers\ for mapping class properties to \DataGridViewCellStyle\ and \DataTable\ structures, \CultureHelpers\ for managing date formatting cultures, and \FileIoHelpers\ for standardizing file path resolution and I/O operations. A new \NewMessageBox\ module replaces standard dialogs with \TaskDialog\-based messages that support auto-close timers and verification checkboxes. Additionally, \ExtensionDataAuditScanner\ was added to recursively scan and log unexpected JSON fields for debugging, while \SpeechSupport\ (formerly \SpeechRecognition1\) and \TimeInRangeHelpers\ provide refined speech synthesis, error handling, and Time In Range calculations.
src/CareLink/Helpers · high confidence
Refactored patient data helpers with new modules for basal, notifications, and data cleaning
The PatientDataHelpers directory has been reorganized into dedicated helper modules: ActiveBasalHelpers now extracts active basal rate records from the current PDF; NotificationHelpers manages DataGridView event handlers, cell formatting (including background color and colon spacing), and layout for notification tables; PatientDataHelpers provides a CleanPatientData function that sanitizes serialized patient data by replacing personal information (name, serial numbers) with placeholders; RunningActiveInsulinHelpers adds extension methods to adjust and conditionally sum active insulin levels; and SummaryHelpers handles notification message translation, variable extraction from parentheses, and sensor update time mapping. This refactoring improves code maintainability and separates concerns for basal rates, notifications, insulin calculations, and data privacy.
src/CareLink/Helpers/PatientDataHelpers · high confidence
Restructured login flow to support new CareLink API and Flex features
The login helper components have been restructured to support the new CareLink™ API changes, including Flex PDF report generation and other Flex-specific features. This update introduces a new OAuth browser form using WebView2 for authentication, improves OAuth token handling and refresh flows, and adds support for region-specific endpoint discovery (US/EU). The changes also include fixes for login crashes, deadlock prevention, and improved reliability in token parsing and storage.
src/CareLink/Helpers/LoginHelpers · high confidence
WebView2 runtime distribution updated to use bootstrapper installer
The application now includes the Microsoft Edge WebView2 runtime bootstrapper (MicrosoftEdgeWebView2RuntimeInstallerX64.exe) in its build output and ZIP deployments, replacing the previous NuGet-package-only distribution method. This change ensures that end-users can install the required WebView2 runtime automatically if it is not already present on their system, while the build process continues to target Microsoft.Web.WebView2 version 1.0.818.41 for the managed wrapper and native loader.
BuildAssets · high confidence
Fixes
Added CareLinkUserDataList data source configuration
A new data source configuration file for the CareLinkUserDataList has been added to the project. This file defines the generic object data source settings used by the Visual Studio designer to bind to the CareLinkUserDataList type, enabling the editing of CareLink user file data within the application's UI.
src/CareLink/My Project/DataSources · medium confidence
Test coverage
Added unit and integration tests for CareLink client and UI utilities
New test files have been added to the \src/TestProject/Tests\ directory to cover various components of the CareLink application. These include \BasalListExtensionsTests\ for basal list logic, \Client2IntegrationTests\ for endpoint resolution, \Client2RefreshTests\ for token refresh flows (including handling of legacy \client\_secret\ and \mag-identifier\ fields), and \Client2TransientErrorsTests\ for HTTP error resilience. Additional tests cover UI extensions (\ComboBoxExtensionsTests\, \ControlExtensionsTests\), data helpers (\DateHelperTests\, \MathExtensionsTests\, \NativeMmolLSupportTests\), file utilities (\FileUtilitiesTests\), PDF parsing (\LegacyPdfTests\), and configuration parsing (\DiscoverySsoParsingTests\, \ColorDictionaryHelpersTests\).
src/TestProject/Tests · high confidence
Dependencies
Upgrade to .NET 11 and update test dependencies
The CareLink application, PumpSetup utility, and TestProject have been upgraded to target the .NET 11.0 framework (specifically net11.0-windows10.0.17763.0). Additionally, the test project has updated its dependencies to use xunit v4.0.1, FluentAssertions 8.11.0, and Microsoft.NET.Test.Sdk 18.10.0.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 49 → 50 (+0.1)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 80 → 65 (-15.0)
- Architecture 61 → 66 (+5.5)
- Maturity 55 → 59 (+4.4)
- Readiness 33 → 33 (+0.0)
- Security 100 → 87 (-13.3)
Resolved (54)
- Build did not complete in the analyzer
- Change coupling: ControlExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/ControlExtensions.vb)
- Change coupling: CountryCodes.vb ↔ Form1.vb (src/CareLink/Extensions/CountryCodes.vb)
- Change coupling: DrawingExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/DrawingExtensions.vb)
- Change coupling: Form1.vb ↔ ColorDictionaryHelpers.vb (src/CareLink/Forms/Form1.vb)
- Change coupling: Form1.vb ↔ CountrySettingsRecord.vb (src/CareLink/Forms/Form1.vb)
- Change coupling: Form1.vb ↔ ExceptionHelpers.vb (src/CareLink/Forms/Form1.vb)
- Change coupling: Form1.vb ↔ ItemIndexesModule.vb (src/CareLink/Forms/Form1.vb)
- Change coupling: Form1.vb ↔ PumpVariables.vb (src/CareLink/Forms/Form1.vb)
- Change coupling: MathExtensions.vb ↔ Form1.vb (src/CareLink/Extensions/MathExtensions.vb)
- Change coupling: SensorRecord.vb ↔ UtilitiesRecord.vb (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/SensorRecord.vb)
- Coverage not measured — test suite did not build
- DeviceSettingsExtensions.GetSingleLineValue (cognitive 53) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/DeviceSettingsExtensions.vb)
- DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 22) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/DeviceSettingsExtensions.vb)
- Discover.GetDiscoveryData (cognitive 19) (src/CareLink/Utilities/Discover.vb)
- Duplicated block (12 lines × 2) (src/CareLink/Forms/Form1.vb)
- Duplicated block (13 lines × 2) (src/CareLink/Extensions/SgExtensions.vb)
- Duplicated block (17–85 lines × 2) (src/CareLink/Extensions/JsonExtensions.vb)
- Duplicated block (20 lines × 2) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/HighAlertRecord.vb)
- Duplicated block (6 lines × 2) (src/CareLink/Records/UserDataRecords/PDF DeviceSettings/PresetBolusRecord.vb)
- …and 34 more
New (183)
- BitmapCache.ReplaceTempBitmap (cognitive 22) (src/CareLink/Helpers/Form1Helpers/BitmapCache.vb)
- CareLinkService.ResolveEndpointConfigFromDiscoveryAsync (cognitive 18) (src/CareLink/Helpers/LoginHelpers/CareLinkService.vb)
- Change coupling: ActiveInsulin.vb ↔ Limit.vb (src/CareLink/Records/PatientData/ActiveInsulin.vb)
- Change-coupling hub: Form1.vb → DgvCellStyleHelpers.vb, DgvColumnEventArgsExtensions.vb, InitializeDialog.vb, ControlExtensions.vb, DateTimeExtensions.vb, DrawingExtensions.vb, MathExtensions.vb, StringExtensions.vb, TimeZoneExtensions.vb, CalloutHelpers.vb, PaintMarkerExtensions.vb, PlotSeriesBasal.vb, ColorDictionaryHelpers.vb, ExceptionHelpers.vb, FileIoHelpers.vb, Form1CollectMarkersHelper.vb, CareLinkService.vb, OAuthBrowserForm.vb, LegacyPdfParser.vb, RunningActiveInsulinHelpers.vb, SummaryHelpers.vb, TimeConstants.vb, PumpVariables.vb, SystemVariables.vb, ItemIndexesModule.vb, Discover.vb, FileUtilities.vb (src/CareLink/Forms/Form1.vb)
- ClassTooLong: LoginDialog (src/CareLink/Dialogs/LoginDialog.vb)
- ClassTooLong: LoginHelpers (src/CareLink/Helpers/LoginHelpers/LoginHelpers.vb)
- ClassTooLong: RegionCountryLists (src/CareLink/Extensions/CountryCodes.vb)
- ClassTooLong: SummaryHelpers (src/CareLink/Helpers/PatientDataHelpers/SummaryHelpers.vb)
- Client2.DoRefreshAsync (cognitive 24) (src/CareLink/CareLinkCommunications/Client2.vb)
- Client2.DoRefreshAsync (cyclomatic 18) (src/CareLink/CareLinkCommunications/Client2.vb)
- Client2.internalInit (cyclomatic 16) (src/CareLink/CareLinkCommunications/Client2.vb)
- Coverage not measured — test suite did not build
- DeviceSettingsExtensions.GetSingleLineValue (cognitive 40) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
- DeviceSettingsExtensions.GetSingleLineValue (cognitive 53) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
- DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 19) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
- DeviceSettingsExtensions.GetSingleLineValue (cyclomatic 22) (src/CareLink/Extensions/PdfParseExtensions/DeviceSettingsExtensions.vb)
- Discover.GetConfigJson (cognitive 20) (src/CareLink/Utilities/Discover.vb)
- Discover.GetDiscoveryDataAsync (cognitive 20) (src/CareLink/Utilities/Discover.vb)
- Documentation: no installation or build instructions (README.md)
- Documentation: no usage examples (README.md)
- …and 163 more
Changes since last survey
- 111 commits — 80 feature/other, 31 fixes
By area
- src/CareLink — 94 commits
- (root) — 8 commits
- src/TestProject — 7 commits
- (repo) — 2 commits
Notable commits
- fix: Add Flag support to login Fix ActiveInsulin Estimate to for FLex
- fix: Add URL display WebView2 Form Fix logic for now US/Clinical servers
- fix: Add support for e.VisualStylesMode Add .Net Version to Status Bar Fix a few Buttons that were clipped with VisualStylesMode.Net11
- fix: Adjust Text Position on Shield Update all PUmp Battery Images Fix Crash in Image Helper Fully decode Json and use <JsonExtensionData> Public Property AdditionalProperties As Dictionary(Of String, JsonElement)
- fix: Cache most of the fonts Fix issue with new login process that broke login for some users. Fixed formating of Time where : was separed by a space in addation colon. Added new message to support new CareLink™ API.
- fix: Cleanup MenuStartHere_DropDownOpening Move LoginHelper to propper Folder Fix UpdateSeparators to use Avaiable not Visible.
- fix: Finally fix refresh issue
- fix: Fix CursorPanel positioning
- fix: Fix CursorPictureBox Visible with InfusionSet
- fix: Fix HitTest to properly show the Infusion Set State.
- fix: Fix Simplera Like Display
- fix: Fix SummaryChart Y1 Axis formating
- fix: Fix Token Logging Fix Advnaced AIT messages
- fix: Fix ToolStringSeparator Name Hide unneeded Separators
- fix: Fix access token expiration message
- fix: Fix capitalization of Type names
- fix: Fix crash in LoginDialog.Show when its already visible
- fix: Fix crash in second login or login from Menu. Remove Panels that are causing issue is control positioning
- fix: Fix deadlocks
- fix: Fix messaging and logginf for Token Expiration Improve WebView2 Deployment.
- …and 91 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
paul1956/CareLink was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 20 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 37eb449636f0a1d053f357e3e046ff52fdc7886f — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-b51f968c9b10.