Project: doctolib-doctolib · Branch: .invalid · Mode: ` · **Model:**claude-haiku-4-5-20251001`
Stats: 1 user messages, 28 tool calls, tools used: Bash, Read, Grep.
Conversation
Turn 1 — User
Explore the national-health-records package at /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/.
I need to understand:
1. What files are in mocks/ — return each file's full content
2. What files are in index.ts — return its full content (what is exported publicly)
3. The full NhrDocument type definition — find it in @doctolib/tpf-national-health-records (check .yalc/ at the worktree root or node_modules/)
4. Any existing mock factory/builder patterns in the package (look for files named *factory*, *builder*, *generator*, *fixture*)
5. How nhrMockedDocuments is currently used — grep for its import/usage across the package
Return all file contents and usage sites with line numbers.
Turn 1 — Assistant
I'll help you explore this package. Let me start by examining the directory structure and then gathering the information you need.
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src -type f -name "*.ts" -o -name "*.tsx" -o -name "*.js …(truncated, 12 more chars)
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedColumns.ts /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedDocuments.ts /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/variants/dmp/useDmpDocumentListV …(truncated, 3295 more chars)
Now let me read the mock files and index.ts:
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedDocuments.ts
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedColumns.ts
Tool results:
→ result (ok): 1 import type { ColumnConfig } from '@doctolib/tpf-national-health-records-ui'
2 import type { NhrDocument } from '@doctolib/tpf-national-health-records'
3
4 // Column headers are hardcoded in English for the mock. i18n wiring belongs in a follow-up.
5 // Renders are intentionally plain-text — styled cell components will replace them once
6 // the factory functions are available in the published @doctolib/tpf-national-health-records-ui.
7
8 export const buildMockedColumns = (): ColumnConfig[]
…(truncated, 1516 more chars)
Tool results:
→ result (ok): 1 import type { NhrDocument } from '@doctolib/tpf-national-health-records'
2
3 export const nhrMockedDocuments: NhrDocument[] = [
4 // ── Batch 1: Laboratory reports (6 docs) ──────────────────────────────────
5 {
6 id: 'mock-001',
7 title: 'SOPK hormone panel',
8 creationDate: '2025-01-13',
9 submissionDate: '2025-01-18',
10 status: '1',
11 visibility: '1',
12 format: 'application/pdf',
13 serviceInformation: { startDate: '2025-01-10' },
14 authors: [{ i
…(truncated, 20224 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/index.ts
Tool results:
→ result (ok): 1 export { useNationalHealthRecords, type UseNhrOperations } from './hooks/useNationalHealthRecords'
2 export { useDmpNhr } from './hooks/useDmpNhr'
3 export { useNhrDocumentListVariant } from './variants/useNhrDocumentListVariant'
4 export type { DocumentSearchOptions, NhrDocumentListVariant } from './variants/types'
5 export { actionsBuilder, type NhrActionsBuilder } from './business/builders/actionsBuilder'
6
[result-id: r4]
Now let me search for the NhrDocument type definition and look for factory/builder patterns:
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility -name ".yalc" -type d
Tool results:
→ result (ok): (Bash completed with no output)
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility -name "node_modules" -type d | head -5
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/eslint-plugin-doctolib-custom-rules/tests/files/node_modules
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility -path "*/node_modules/@doctolib/tpf-national-health-records" -type d
Tool results:
→ result (ok): (Bash completed with no output)
Let me check the package.json to understand dependencies:
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/package.json
Tool results:
→ result (ok): 1 {
2 "name": "@doctolib/national-health-records",
3 "version": "1.0.0",
4 "publishConfig": {
5 "registry": "https://doctolib-580698825394.d.codeartifact.eu-west-1.amazonaws.com/npm/npm-internal/"
6 },
7 "repository": {
8 "type": "git",
9 "url": "git+https://github.com/doctolib/doctolib.git"
10 },
11 "keywords": [
12 "upfront",
13 "modular frontend",
14 "in-monolith-package"
15 ],
16 "engines": {
17 "node": ">= 24.8.0",
18 "npm": ">= 11.6.0"
19
…(truncated, 946 more chars)
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src -name "*factory*" -o -name "*builder*" -o -name "*ge …(truncated, 30 more chars)
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/business/builders
Good! Found the builders directory. Let me check those files and search for imports/usages of nhrMockedDocuments:
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/business/builders -type f
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/business/builders/actionsBuilder.ts
Tools used:
Grep:nhrMockedDocumentsin/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records
Tool results:
→ result (ok): Found 3 files /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedDocuments.ts /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.ts /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchD …(truncated, 32 more chars)
Now let me read those files that use nhrMockedDocuments and the actionsBuilder:
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/business/builders/actionsBuilder.ts
Tool results:
→ result (ok): 1 import {
2 createMoreActionsAction as moreActionsActionFactory,
3 createViewDocumentAction as viewDocumentActionFactory,
4 type ActionConfig,
5 } from '@doctolib/tpf-national-health-records-ui'
6 import type { NhrDocument } from '@doctolib/tpf-national-health-records'
7
8 export type NhrActionsBuilder = {
9 createViewDocumentAction: (onDocumentSelected: (document: NhrDocument) => Promise<void>) => NhrActionsBuilder
10 createMoreActionsAction: (onDocumentSelected: (document: NhrDocum
…(truncated, 628 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.ts
Tool results:
→ result (ok): 1 import type { Patient } from 'monolith_DEPRECATED/types/doctor/api/Patient'
2 import { isFeatureEnabled } from '@doctolib/variation_management'
3 import type { NhrDocumentListVariant, MapFiltersToSearchDocumentsParams, ServerFilters } from '../variants/types'
4 import { useNationalHealthRecords } from './useNationalHealthRecords'
5 import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments'
6 import { toNhrPatientInformation } from '../business/mappers/toNhrPatientInformation'
7
8 interf
…(truncated, 1473 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.test.ts
Tool results:
→ result (ok): 1 import { renderHook } from '@testing-library/react' 2 import * as variationManagement from '@doctolib/variation_management' 3 import type { Patient } from 'monolith_DEPRECATED/types/doctor/api/Patient' 4 import type { NhrDocument, NhrDocumentSearchParams } from '@doctolib/tpf-national-health-records' 5 import { useNationalHealthRecords } from './useNationalHealthRecords' 6 import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments' 7 import useSearchDocuments from './useSearchDocuments' 8 …(truncated, 6910 more chars)
Now let me search for the NhrDocument type definition. Let me check if there's a monorepo root with tpf-national-health-records:
Tools used:
Bash:find /Users/USER/workspace/doctolib -path "*/packages/*tpf-national-health-records*" -name "index.ts" | grep -v node_modules | head -5
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrSharedByCell/index.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrStatusCell/index.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/src/components/NhrDocumentList/NhrVisibilityCell/index.ts /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health …(truncated, 232 more chars)
Tools used:
Bash:find /Users/USER/workspace/doctolib/treatment-plan/packages -name "tpf-national-health-records" -type d
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 /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records-ui/dist/.dev-server/compiled-types/packages/tpf-national-health-records /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records [result-id: r11]
Found it! Let me check the tpf-national-health-records package:
Tools used:
Bash:find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src -name "*[Dd]ocument*" -type f | head -10
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts
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, 1005 more chars)
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 } from '#business/types/document' 14 export type { 15 NhrDocumentAuthor, 16 NhrAddress, 17 NhrContact, 18 NhrInstitution,
…(truncated, 290 more chars)
Perfect! Now let me grep for any additional factory, builder, or fixture patterns in the national-health-records package:
Tools used:
Bash:find /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src -type f -name "*.ts" -o -name "*.tsx" | xargs grep - …(truncated, 51 more chars)
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedColumns.ts /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/index.ts [result-id: r14]
Let me check for those files in the variants directory mentioned in the Bash output earlier:
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/variants/dmp/factories/columnsFactory.ts
Tool results:
→ result (ok): 1 import type { ColumnConfig } from '@doctolib/tpf-national-health-records-ui' 2 import { 3 createNhrDocumentCategoryColumn, 4 createNhrDocumentNameColumn, 5 createNhrProcedureDateColumn, 6 createNhrShareDateColumn, 7 createNhrSharedByColumn, 8 createNhrStatusColumn, 9 createNhrVisibilityColumn, 10 } from '@doctolib/tpf-national-health-records-ui' 11 import { DOCUMENT_STATUS } from '@doctolib/dmp' 12 import { 13 getTypeCode, 14 getProcedureDate, 15 getShareDate, 16 getAutho …(truncated, 1312 more chars)
Tools used:
Read:/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/variants/dmp/factories/filtersFactory.ts
Tool results:
→ result (ok): 1 import {
2 type FilterConfig,
3 createNhrDateSelectionFilterConfig,
4 createNhrDocumentCategoryFilterConfig,
5 createNhrDocumentStatusFilterConfig,
6 createNhrDocumentVisibilityFilterConfig,
7 } from '@doctolib/tpf-national-health-records-ui'
8
9 type FiltersOptions = {
10 lastAccessDate?: string
11 }
12
13 export function filtersFactory({ lastAccessDate = '' }: FiltersOptions = {}): FilterConfig[] {
14 return [
15 createNhrDocumentCategoryFilterConfig(),
16 createNhrDa
…(truncated, 1047 more chars)
Perfect! Now let me get the full directory structure and check for any other relevant files:
Tools used:
Bash:ls -la /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/
Tool results:
→ result (ok): drwxr-xr-x clertonra staff 128 B Wed Apr 8 16:48:43 2026 . drwxr-xr-x clertonra staff 256 B Wed Apr 8 16:45:30 2026 .. .rw-r--r-- clertonra staff 1.8 KB Wed Apr 8 16:45:30 2026 nhrMockedColumns.ts .rw-r--r-- clertonra staff 19 KB Wed Apr 8 16:48:43 2026 nhrMockedDocuments.ts [result-id: r17]
Tools used:
Bash:ls -la /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/
Tool results:
→ result (ok): drwxr-xr-x clertonra staff 256 B Wed Apr 8 16:45:30 2026 . drwxr-xr-x clertonra staff 320 B Wed Apr 8 16:45:30 2026 .. drwxr-xr-x clertonra staff 160 B Wed Apr 8 16:45:30 2026 business drwxr-xr-x clertonra staff 256 B Wed Apr 8 16:45:30 2026 hooks .rw-r--r-- clertonra staff 404 B Wed Apr 8 16:45:30 2026 index.ts drwxr-xr-x clertonra staff 128 B Wed Apr 8 16:45:30 2026 locales drwxr-xr-x clertonra staff 128 B Wed Apr 8 16:48:43 2026 mocks drwxr-xr-x clertonra staff 160 B Wed Apr 8 16:45:3 …(truncated, 32 more chars)
Excellent! Now let me get the exact line numbers where nhrMockedDocuments is used:
Tools used:
Grep:nhrMockedDocumentsin/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.ts
Tool results:
→ result (ok): 5:import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments' 24: return { data: nhrMockedDocuments }
Tools used:
Grep:nhrMockedDocumentsin/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.test.ts
Tool results:
→ result (ok): 6:import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments' 33: it('returns nhrMockedDocuments', async () => { 40: await expect(result.current({})).resolves.toEqual({ data: nhrMockedDocuments }) 61: await expect(result.current({})).resolves.toEqual({ data: nhrMockedDocuments }) [result-id: r19]
Perfect! Now let me compile the comprehensive report. Let me get the NhrDocumentAuthor type as well:
Tools used:
Bash:find /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src -name "*participant*" -type f
Tool results:
→ result (ok): /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/participant.ts
Tools used:
Read:/Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/participant.ts
Tool results:
→ result (ok): 1 / Profession of a participant. Ideally used to capture more information about healthcare professionals. */
2 export type NhrProfession = {
3 / Can include national identifiers , oids, etc /
4 identifiers?: Record<string, string>
5 / Optional description of the profession. E.g. HCP, MFA, etc /
6 description?: string
7 / The specialisation of the participant. E.g. cardiology, general medicine, elder care etc */
8 speciality?: string
9 }
10
11 / Geographical locator */
12
…(truncated, 1542 more chars)
Perfect! Now I have all the information needed. Let me compile the comprehensive report:
Exploration Report: National Health Records Package
Based on my exploration of /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/, here's what I found:
1. Files in mocks/ directory
Two mock files exist in this directory:
/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedDocuments.ts (40 documents)
This file exports a constant nhrMockedDocuments array containing 40 mock NhrDocument objects organized into 8 batches:
- Batch 1 (6 docs): Laboratory reports (hormone panel, blood count, urine analysis, thyroid function, lipid profile, HbA1c)
- Batch 2 (6 docs): Imaging (MRI brain, chest X-ray, abdominal CT, knee ultrasound, mammography, cardiac echo)
- Batch 3 (6 docs): Consultation reports (checkup, cardiology, dermatology, pre-operative, neurology, rheumatology)
- Batch 4 (5 docs): Prescriptions (antihypertensive, physiotherapy, antibiotic, insulin, psychiatric)
- Batch 5 (5 docs): Discharge summaries (appendectomy, cardiac catheterisation, knee arthroscopy, maternity, rehabilitation)
- Batch 6 (4 docs): Vaccination certificates (COVID-19, influenza, tetanus/diphtheria/polio, hepatitis B)
- Batch 7 (4 docs): Specialist reports (cardiology stress test, neurology EEG, ophthalmology, endocrinology)
- Batch 8 (4 docs): Edge cases with missing/empty fields (no classification, empty codes array, long title, complete fields)
Documents contain varied combinations of fields (some with undefined values) to test edge cases.
/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/mocks/nhrMockedColumns.ts
Exports a factory function buildMockedColumns() that returns a ColumnConfig[] with 6 columns:
1. documentCategory - renders classification code
2. documentName - renders document title
3. procedureDate - sortable, renders formatted service start date
4. shareDate - sortable, renders formatted submission date
5. sharedBy - renders author name or "Patient"
6. status - renders document status string
2. Public exports from index.ts
File: /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/index.ts
The package exports 5 items publicly:
export { useNationalHealthRecords, type UseNhrOperations } from './hooks/useNationalHealthRecords'
export { useDmpNhr } from './hooks/useDmpNhr'
export { useNhrDocumentListVariant } from './variants/useNhrDocumentListVariant'
export type { DocumentSearchOptions, NhrDocumentListVariant } from './variants/types'
export { actionsBuilder, type NhrActionsBuilder } from './business/builders/actionsBuilder'
Note: Mock exports (nhrMockedDocuments, buildMockedColumns) are NOT publicly exported from index.ts.
3. Full NhrDocument type definition
Source: /Users/USER/workspace/doctolib/treatment-plan/packages/tpf-national-health-records/src/business/types/document.ts
export type NhrDocument = {
id: string
title: string
description?: string
identifiers?: Record<string, string>
creationDate?: string
submissionDate?: string
serviceInformation?: NhrServiceInformation
status?: string
visibility?: string
format?: string
authors?: NhrDocumentAuthor[]
classification?: NhrDocumentClassification
}
Supporting types:
export type NhrServiceInformation = {
startDate?: string
endDate?: string
}
export type NhrDocumentClassification = {
codes: Code[]
}
export type Code = {
system: string
code: string
}
export type NhrDocumentAuthor = {
id: string
identifiers?: Record<string, string>
firstName: string
lastName: string
role: string // patient, healthcare_professional, etc
profession?: NhrProfession
addresses?: NhrAddress[]
contacts?: NhrContact[]
institution?: NhrInstitution
}
export type NhrProfession = {
identifiers?: Record<string, string>
description?: string
speciality?: string
}
export type NhrAddress = {
houseNumber?: string
streetName?: string
streetType?: string
city?: string
postalCode?: string
state?: string
country?: string
additionalInformation?: string
}
export type NhrInstitution = {
name?: string
identifiers?: Record<string, string>
addresses?: NhrAddress[]
contacts?: NhrContact[]
}
4. Existing mock factory/builder patterns in the package
Found in /Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/:
Factories in variants/dmp/factories/:
columnsFactory.ts - Factory function columnsFactory(): ColumnConfig[] that creates column definitions for DMP documents using UI factory functions from @doctolib/tpf-national-health-records-ui:
- Uses helper functions: getTypeCode(), getProcedureDate(), getShareDate(), getAuthorName(), isPatientAuthored(), getVisibility()
- Creates 7 columns with status/visibility mappings
filtersFactory.ts - Factory function filtersFactory(options): FilterConfig[] that creates filter configurations:
- Takes optional lastAccessDate parameter
- Creates 4 filter types: document category, date selection, status, visibility
- Date selection supports "shareDate" and "procedureDate" options
Builders in business/builders/:
actionsBuilder.ts - Fluent builder pattern NhrActionsBuilder for creating actions:
export type NhrActionsBuilder = {
createViewDocumentAction: (onDocumentSelected) => NhrActionsBuilder
createMoreActionsAction: (onDocumentSelected) => NhrActionsBuilder
build: () => ActionConfig[]
}
Exported as actionsBuilder (fluent builder starting point)
Mock builders:
nhrMockedColumns.ts - Mock factory buildMockedColumns(): ColumnConfig[] (similar to DMP columnsFactory but simpler)
5. nhrMockedDocuments usage across the package
Found in 2 files:
/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.ts
- Line 5: Import statement ```typescript import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments'
- **Line 24**: Used when feature flag `nhr_document_list_search_mocked` is enabled
```typescript
if (isFeatureEnabled('nhr_document_list_search_mocked')) {
return { data: nhrMockedDocuments }
}
This is in the useSearchDocuments hook which wraps useNationalHealthRecords and conditionally returns mocked data based on a feature flag.
/Users/USER/workspace/doctolib/worktrees/doctolib/FHIR-2166-fix-nhr-mock-status-visibility/packages/@doctolib/national-health-records/src/hooks/useSearchDocuments.test.ts
- Line 6: Import statement ```typescript import { nhrMockedDocuments } from '../mocks/nhrMockedDocuments'
- **Line 33**: Test description
```typescript
it('returns nhrMockedDocuments', async () => {
- Line 40: Assertion in test "returns nhrMockedDocuments when feature flag enabled" ```typescript await expect(result.current({})).resolves.toEqual({ data: nhrMockedDocuments })
- **Line 61**: Assertion in test "returns mocked documents even when patient has no INS"
```typescript
await expect(result.current({})).resolves.toEqual({ data: nhrMockedDocuments })
Summary
- 2 mock files in
mocks/:nhrMockedDocuments.ts(40 documents) andnhrMockedColumns.ts(column factory) - Not publicly exported - mocks are internal, used only for feature flag testing
- *2 factory patterns …(truncated, 393 more chars)