Project: doctolib-doctolib · Branch: .invalid · Mode: · Model: claude-haiku-4-5-20251001 Stats: 1 user messages, 25 tool calls, tools used: Read, Bash. Conversation Turn 1 — User Explore the data/documents layer and SearchDocumentsFn type in the treatment-plan NHR package. I need to understand how fetchDocuments/searchDocuments currently returns data and how it might return a total count. 1. Read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/data/documents.ts (full content) 2. Read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/types.ts (full content) 3. Read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.tsx (full content) 4. Search for SearchDocumentsFn across the treatment-plan repo: grep -r "SearchDocumentsFn" /Users/USER/workspace/doctolib/treatment-plan/packages/ --include=".ts" --include=".tsx" -l 5. Search for searchDocuments usages in the NhrEntryPoint: read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx 6. Check the @doctolib/tpf-national-health-records package types: read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/index.ts and any types files there 7. Read /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/data/documents.test.ts if it exists Report the FULL content of each file. I'm particularly interested in: - The return type of SearchDocumentsFn — currently Promise<{ data: NhrDocument[] }> - Whether there's a total or totalCount field being returned anywhere - How useDocuments hook processes the return value - The NhrDocumentListModal full implementation details Turn 1 — Assistant I'll explore these files systematically to understand the documents layer and SearchDocumentsFn type. Let me start by reading the core files. Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/data/documents.ts Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/types.ts Tool results: → result (ERROR): File does not exist. Note: your current working directory is /Users/USER/workspace/doctolib/doctolib. Tool results: → result (ok): 1 import type { DesignSystemIconComponent } from '@doctolib/design-system-icons' 2 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 3 import type { ReactNode } from 'react' 4 5 export type NhrPatientInfo = { 6 fullName: string 7 gender: 'male' | 'female' | 'other' 8 birthDate: string 9 age: number 10 } 11 12 export type ColumnConfig = { 13 key: string 14 header: string 15 sortable: boolean 16 / Only required when sortable: true. Returns a string for lo …(truncated, 2024 more chars) Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.tsx Tool results: → result (ok): 1 import { Modal } from '@doctolib/design-system/Modal' 2 import { ModalBody } from '@doctolib/design-system/ModalBody' 3 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 4 import { useEffect, useMemo, useState } from 'react' 5 6 import type { ActionConfig, ColumnConfig, FilterConfig, NhrPatientInfo, SearchDocumentsFn } from '../../types' 7 import { NhrDocumentList } from '../NhrDocumentList/NhrDocumentList' 8 9 export type NhrDocumentListModalProps = { 10 isOpen: boo …(truncated, 2053 more chars) Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx Tool results: → result (ok): 1 import { useState } from 'react' 2 3 import type { ActionConfig, ColumnConfig, FilterConfig, NhrPatientInfo, SearchDocumentsFn } from '../../types' 4 import { NhrDocumentListModal } from '../NhrDocumentListModal/NhrDocumentListModal' 5 import { NhrEntryPointButton } from '../NhrEntryPointButton/NhrEntryPointButton' 6 7 export type NhrEntryPointProps = { 8 patient: { 9 show_ins_features?: boolean 10 } 11 patientInfo: NhrPatientInfo 12 title: string 13 columns: ColumnConfig[] 14 …(truncated, 1179 more chars) Tools used: - Bash: grep -r "SearchDocumentsFn" /Users/USER/workspace/doctolib/treatment-plan/packages/ --include=".ts" --include=".tsx" -l Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/@mf-types/compiled-types/packages/tpf-national-health-records-ui/src/types.d.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/@mf-types/compiled-types/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.d.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/@mf-types/compiled-types/packages/ …(truncated, 2759 more chars) Now let me search for the documents.ts file in the data directory and check for test files and the tpf-national-health-records package: Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src -name "documents.ts" -o -name "documents.test.ts" Tool results: → result (ok): (Bash completed with no output) Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/index.ts Tool results: → result (ok): 1 // bump 2 export { createNhrService } from '#business/nhr-service-factory' 3 export type { NhrAdapter, NhrService, CountryCode } from '#business/types/service' 4 export type { 5 NhrDocumentSearchProps, 6 NhrDocumentSearchResult, 7 NhrDocument, 8 NhrServiceInformation, 9 NhrDocumentSearchParams, 10 NhrDocumentClassification, 11 DateRange, 12 Code, 13 NhrDocumentFile, 14 NhrGetDocumentsContentProps, 15 NhrDocumentContentResult, 16 } from '#business/types/document' 17 export …(truncated, 376 more chars) Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src -type f -name ".ts" -o -name ".tsx" | head -20 Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/locales/loadNamespace.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/i18n.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/entry.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/business/formatters/patientFormatter.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf …(truncated, 2406 more chars) Let me look for the data directory more specifically: Tools used: - Bash: ls -la /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/ Tool results: → result (ok): drwxr-xr-x clertonra staff 416 B Thu Apr 9 16:06:20 2026 . drwxr-xr-x clertonra staff 672 B Thu Apr 9 16:06:20 2026 .. drwxr-xr-x clertonra staff 96 B Tue Feb 24 15:53:39 2026 __tests__ drwxr-xr-x clertonra staff 128 B Wed Apr 1 10:05:06 2026 business drwxr-xr-x clertonra staff 352 B Wed Apr 1 10:05:06 2026 components .rw-r--r-- clertonra staff 105 B Tue Mar 10 17:05:01 2026 entry.ts .rw-r--r-- clertonra staff 1.0 KB Wed Apr 1 10:05:06 2026 i18n.test.ts .rw-r--r-- clertonra staff 332 …(truncated, 392 more chars) Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui -type d -name "data" Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/@mf-types/compiled-types/packages/tpf-national-health-records-ui/src/data /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/.dev-server/compiled-types/packages/tpf-national-health-records-ui/src/data [result-id: r8] I see - the data directory doesn't exist in the source. Let me check what's in the index.ts and look for documents-related files: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/index.ts Tool results: → result (ok): 1 export { NhrDocumentList } from './components/NhrDocumentList/NhrDocumentList' 2 export { NhrDocumentListFilterPanel } from './components/NhrDocumentListFilterPanel/NhrDocumentListFilterPanel' 3 export type { 4 ActionConfig, 5 ActionsFactory, 6 ColumnConfig, 7 FilterConfig, 8 FilterRenderContext, 9 NhrPatientInfo, 10 StatusOption, 11 NhrDocumentStatusFilterProps, 12 VisibilityOption, 13 SearchDocumentsFn, 14 } from './types' 15 export { NhrEntryPoint, type NhrEntryPointProp …(truncated, 2122 more chars) Tools used: - Bash: grep -r "searchDocuments\|fetchDocuments" /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src --include=".ts" --include=".tsx" -n Tools used: - Bash: grep -r "SearchDocumentsFn" /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src --include=".ts" --include=".tsx" -n Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx:15: searchDocuments: SearchDocumentsFn /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx:27: searchDocuments, /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx:47: searchDocuments={searchDocum …(truncated, 5280 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/types.ts:56:export type SearchDocumentsFn = (appliedFilters?: Record) => Promise<{ data: NhrDocument[] }> /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrEntryPoint/NhrEntryPoint.tsx:3:import type { ActionConfig, ColumnConfig, FilterConfig, NhrPatientInfo, SearchDocumentsFn } from '../../types' /Users/USER/workspace/doctolib/treatment- …(truncated, 718 more chars) Now let me look at the NhrDocumentList component to understand how data flows through: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrDocumentList.tsx Tool results: → result (ok): 1 import { SpinnerLoader } from '@doctolib/design-system-b2b/SpinnerLoader' 2 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 3 import { useState } from 'react' 4 5 import type { ActionConfig, ColumnConfig, FilterConfig, NhrPatientInfo } from '../../types' 6 import { NhrDocumentListFilterPanel } from '../NhrDocumentListFilterPanel/NhrDocumentListFilterPanel' 7 import { NhrDocumentListHeader } from '../NhrDocumentListModal/NhrDocumentListHeader/NhrDocumentListHeader' 8 i …(truncated, 2309 more chars) Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages -name ".stories.tsx" -path "NhrDocumentListModal" Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.stories.tsx Tool results: → result (ok): 1 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 2 import type { Meta, StoryObj } from '@storybook/react' 3 import { useState } from 'react' 4 5 import type { FilterConfig, NhrPatientInfo } from '../../types' 6 import { nhrDocumentListColumns } from '../NhrEntryPoint/nhrDocumentListColumns' 7 import { NhrDocumentListModal } from './NhrDocumentListModal' 8 9 const samplePatient: NhrPatientInfo = { 10 fullName: 'Camille Devailly', 11 gender: 'female', 12 birthDate …(truncated, 3074 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.stories.tsx /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.stories.tsx /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTableBody/N …(truncated, 435 more chars) Now let me check the NhrDocumentListTable to see if there's pagination or total count handling: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.tsx Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src -type f \( -name ".ts" -o -name ".tsx" \) -exec grep -l "total\|pagination\|pageSize" {} \; Tool results: → result (ok): 1 import { Pagination } from '@doctolib/design-system/Pagination' 2 import { Table } from '@doctolib/design-system/Table' 3 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 4 5 import type { ActionConfig, ColumnConfig } from '../../../types' 6 import { NhrDocumentListTableBody } from './NhrDocumentListTableBody/NhrDocumentListTableBody' 7 import { NhrDocumentListTableHead } from './NhrDocumentListTableHead/NhrDocumentListTableHead' 8 9 export type NhrDocumentListTablePr …(truncated, 594 more chars) Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.tsx /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTableBody/NhrDocumentListTableBody.tsx /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentLi …(truncated, 54 more chars) Excellent! Now let me check the test file and look at how NhrDocumentSearchResult is defined: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.test.tsx Tool results: → result (ok): 1 import { setup } from '@doctolib/test-helpers' 2 import { screen } from '@testing-library/react' 3 import { describe, expect, it } from 'vitest' 4 5 import { mockColumns, mockRows } from '../../../test-helpers' 6 import { NhrDocumentListTable } from './NhrDocumentListTable' 7 8 describe('NhrDocumentListTable', () => { 9 it('should render a table', () => { 10 setup() 11 12 expect(screen.getByRole('table')).toBeInTheDocument() 13 }) 14 …(truncated, 1653 more chars) Tools used: - Bash: grep -r "NhrDocumentSearchResult" /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records --include=".ts" --include=".tsx" -A 5 Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/dist/business/types/service.d.ts:import type { NhrDocumentSearchProps, NhrDocumentSearchResult } from '#business/types/document'; /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/dist/business/types/service.d.ts-export type CountryCode = 'fr' | 'mock'; /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/dist/business/types/service.d.ts-export type Nh …(truncated, 14170 more chars) Perfect! Now let me read the document types file directly from the source: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts Tool results: → result (ok): 1 import type { NhrDocumentAuthor, NhrPatientInformation } from '#business/types/participant' 2 3 // General types --- 4 / The services/procedures this document is associated with / 5 export type NhrServiceInformation = { 6 startDate?: string 7 endDate?: string 8 } 9 10 export type NhrDocumentClassification = { 11 codes: Code[] 12 } 13 14 export type Code = { 15 system: string 16 code: string 17 } 18 19 export type DateRange = { 20 upperLimit?: string 21 lowerLimit?: string …(truncated, 1366 more chars) Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/service.ts Tool results: → result (ok): 1 import type { 2 NhrDocumentContentResult, 3 NhrDocumentSearchProps, 4 NhrDocumentSearchResult, 5 NhrGetDocumentsContentProps, 6 } from '#business/types/document' 7 8 export type CountryCode = 'fr' | 'mock' 9 10 export type NhrService = { 11 searchDocuments(props: NhrDocumentSearchProps): Promise 12 getDocumentsContent(props: NhrGetDocumentsContentProps): Promise 13 } 14 15 export type NhrAdapter = { 16 searchDocuments(props: …(truncated, 182 more chars) Now let me look at the NhrDocumentListModal test to understand the flow better: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.test.tsx Tool results: → result (ok): 1 import type { DesignSystemIconComponent } from '@doctolib/design-system-icons' 2 import { setup } from '@doctolib/test-helpers' 3 import { screen } from '@testing-library/react' 4 import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest' 5 6 import { mockColumns, mockPatientInfo } from '../../test-helpers' 7 import { nhrDocumentFixtureBuilder } from '../../test-helpers/fixtures/nhrDocumentFixtureBuilder' 8 import type { ActionConfig, FilterConfig } from '../../types' 9 import { …(truncated, 6452 more chars) Tools used: - Bash: find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src -type f -name "NhrDocumentListTable.tsx" Tool results: → result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.tsx Perfect! Now let me check the NhrDocumentListTableBody to see the full picture: Tools used: - Read: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTableBody/NhrDocumentListTableBody.tsx Tool results: → result (ok): 1 import { IconButton } from '@doctolib/design-system/IconButton/v2' 2 import { TableBody } from '@doctolib/design-system/TableBody' 3 import { TableCell } from '@doctolib/design-system/TableCell' 4 import { TableRow } from '@doctolib/design-system/TableRow' 5 import { TableSelectCell } from '@doctolib/design-system/TableSelectCell' 6 import type { NhrDocument } from '@doctolib/tpf-national-health-records' 7 8 import type { ActionConfig, ColumnConfig } from '../../../../types' 9 10 export type …(truncated, 1454 more chars) Excellent! Now I have a complete picture. Let me create a comprehensive summary document with all the findings. Summary: Data/Documents Layer and SearchDocumentsFn Type in Treatment-Plan NHR Package Based on my complete exploration, here's what I found: 1. SearchDocumentsFn Type Definition Location: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/types.ts (line 56) export type SearchDocumentsFn = (appliedFilters?: Record) => Promise<{ data: NhrDocument[] }> Current return structure: - Returns a Promise that resolves to an object with a single property: data: NhrDocument[] - Does NOT currently include a total or totalCount field - Accepts optional appliedFilters parameter for server-side filtering 2. Underlying NhrDocumentSearchResult Type Location: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts (lines 43-45) export type NhrDocumentSearchResult = { documents: NhrDocument[] } Key insight: The core @doctolib/tpf-national-health-records package also does NOT include a total count. The UI layer wraps this as { data: NhrDocument[] } instead of { documents: NhrDocument[] }. 3. Current Data Flow NhrDocumentListModal (/Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.tsx): - Lines 40-42: Calls searchDocuments(appliedFilters) and destructures only the data property const fetchDocuments = async () => { const { data } = await searchDocuments(appliedFilters) setDocumentsState({ rows: data, isLoading: false }) } - Stores documents in local state as rows: NhrDocument[] - Passes data={rows} to NhrDocumentList component NhrDocumentList (/Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrDocumentList.tsx): - Receives data?: NhrDocument[] and isLoading?: boolean - Passes to NhrDocumentListTable NhrDocumentListTable (/Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.tsx): - Line 22: CRITICAL FINDING - Currently renders Pagination with: {}} /> - Problem: Uses rows.length for total (client-side count), hardcoded to page 1, no pagination handler, no page size support 4. Pagination Implementation Issue The pagination component is currently non-functional: - Uses rows.length which only counts items returned in current request (NOT server total) - onPageChange={() => {}} is a no-op (empty handler) - Always shows currentPage={1} (hardcoded) - No way to implement server-side pagination without a total count from the API 5. Test Expectations Tests in NhrDocumentListModal.test.tsx show the expected return format: searchDocuments = vi.fn().mockResolvedValue({ data: [doc] }) // Note: 'data' field, not 'documents' Stories in NhrDocumentListModal.stories.tsx also use: searchDocuments: () => Promise.resolve({ data: sampleDocuments }) 6. What Would Be Needed for Total Count Support To add pagination with a true total count, you would need to: 1. Update SearchDocumentsFn type to include total: export type SearchDocumentsFn = (appliedFilters?: Record) => Promise<{ data: NhrDocument[], total: number }> 2. Update NhrDocumentListModalProps to include pagination state 3. Update NhrDocumentListModal to handle page changes and pass page info to searchDocuments 4. Update NhrDocumentListTable to use the actual total and implement pagination handler 5. Update underlying NhrDocumentSearchResult if needed to include total at the service layer 7. File Locations Reference - Type definition: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/types.ts - Modal component: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListModal.tsx - Document list component: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrDocumentList.tsx - Table component: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentListModal/NhrDocumentListTable/NhrDocumentListTable.tsx - Core types: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts - Service types: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/service.ts