Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
79 commits
Select commit Hold shift + click to select a range
ecd2fa4
Add ICD-10-AM microservice specification and scaffolding
claude Jan 30, 2026
56e0ab6
Convert ICD10AM queries to LQL - no SQL
claude Jan 30, 2026
23cd895
Add ICD10AM.Api Program.cs with all endpoints
claude Jan 30, 2026
3a5d51b
Add embedding service Docker container
claude Jan 30, 2026
eae6821
Add ASP.NET Core integration tests for ICD10AM.Api
claude Jan 30, 2026
1c39cb8
Add sample data generator for testing
claude Jan 30, 2026
4ba78d3
Add licensing info and gitignore for ICD10AM
claude Jan 30, 2026
051131a
Switch to FREE ICD-10-CM data from CMS.gov
claude Jan 30, 2026
09f389f
Fix ICD-10 import script with CDC fallback and syntax error fix
claude Jan 30, 2026
6ae4635
Rename ICD10AM to ICD10CM - use US Clinical Modification data
claude Jan 30, 2026
ed9db71
Fix ICD10CM microservice build and tests - all 30 E2E tests passing
claude Jan 30, 2026
9552062
Add embedding generation scripts and update SPEC
claude Jan 30, 2026
45ed3ce
Fix RAG search to use icd10cm tables with embeddings
claude Jan 30, 2026
841c125
Add database backup to gitignore
claude Jan 30, 2026
5af1f65
Implement ONNX-based embedding in C# - NO PYTHON AT RUNTIME
claude Jan 30, 2026
1d602dc
Add BERTTokenizers vocabulary files for ONNX tokenization
claude Jan 30, 2026
ba0597e
Add README with quick start guide for ICD-10-CM microservice
claude Jan 30, 2026
f166869
Reorganise the scripts
MelbourneDeveloper Jan 30, 2026
4262481
Fix up the architecture
MelbourneDeveloper Jan 30, 2026
380121b
Fix import process
MelbourneDeveloper Jan 30, 2026
986413b
Fix violations
MelbourneDeveloper Jan 30, 2026
d6705e9
Fix script
MelbourneDeveloper Jan 30, 2026
3e81231
CLI
MelbourneDeveloper Jan 30, 2026
edab112
Mostly working
MelbourneDeveloper Jan 30, 2026
5c36c15
CLI fixes
MelbourneDeveloper Jan 30, 2026
672e2a7
Cleanup
MelbourneDeveloper Jan 30, 2026
bca6e89
Fixes
MelbourneDeveloper Jan 30, 2026
98cf189
Fixes
MelbourneDeveloper Jan 31, 2026
3c9ca4d
Fixes
MelbourneDeveloper Jan 31, 2026
5fd1fcd
Fix search in dashboard
MelbourneDeveloper Jan 31, 2026
25eaf27
fixes
MelbourneDeveloper Jan 31, 2026
920d2ab
Fix the website display of codes
MelbourneDeveloper Jan 31, 2026
2319877
Most stuff works
MelbourneDeveloper Jan 31, 2026
584c63a
Add chapters and categories
MelbourneDeveloper Feb 4, 2026
a5661a9
Rename to get rid of AM/CM specific stuff
MelbourneDeveloper Feb 4, 2026
95d0293
Fixes
MelbourneDeveloper Feb 4, 2026
d0d97b6
Fixes
MelbourneDeveloper Feb 4, 2026
3ba4fce
Get some failing tests finally
MelbourneDeveloper Feb 4, 2026
3e33820
Seems to be working?
MelbourneDeveloper Feb 4, 2026
fad0ff3
Only one database in the api folder
MelbourneDeveloper Feb 5, 2026
6499969
Fix dashboard
MelbourneDeveloper Feb 5, 2026
226b225
fix client
MelbourneDeveloper Feb 5, 2026
278d543
Dockerization
MelbourneDeveloper Feb 5, 2026
aa7607e
Docker config
MelbourneDeveloper Feb 5, 2026
590168f
schema fixes
MelbourneDeveloper Feb 5, 2026
26d2208
dockerization
MelbourneDeveloper Feb 5, 2026
f60e752
fixes
MelbourneDeveloper Feb 5, 2026
a06b27d
Fix container
MelbourneDeveloper Feb 5, 2026
8367800
Use proper vector proximity search
MelbourneDeveloper Feb 5, 2026
897ea5c
Fixed
MelbourneDeveloper Feb 5, 2026
aa2b972
fix sign in
MelbourneDeveloper Feb 6, 2026
845d2f7
Fixes
MelbourneDeveloper Feb 6, 2026
774b01d
fix
MelbourneDeveloper Feb 6, 2026
5722d12
Fixes
MelbourneDeveloper Feb 6, 2026
d3e8fbb
Skillz
MelbourneDeveloper Feb 11, 2026
126dd00
Fixes
MelbourneDeveloper Feb 11, 2026
cf3fe41
Postgres fixes
MelbourneDeveloper Feb 12, 2026
f442218
fix
MelbourneDeveloper Feb 12, 2026
eec35ae
Fix
MelbourneDeveloper Feb 12, 2026
eb931b8
Fixes
MelbourneDeveloper Feb 12, 2026
2cb053e
Fixes
MelbourneDeveloper Feb 12, 2026
6199d92
Fixes
MelbourneDeveloper Feb 12, 2026
621db48
Test fixings
MelbourneDeveloper Feb 12, 2026
3d964ec
fixes
MelbourneDeveloper Feb 12, 2026
cd345e8
Fixes
MelbourneDeveloper Feb 13, 2026
dee1827
Fix
MelbourneDeveloper Feb 13, 2026
e0e0ee6
Fixes
MelbourneDeveloper Feb 13, 2026
ed7cf76
Fixes
MelbourneDeveloper Feb 13, 2026
bde88cc
stuff
MelbourneDeveloper Mar 4, 2026
d58a6d7
Fix CS1587 and CA2007 build errors in ICD10.Api/Program.cs
MelbourneDeveloper Mar 4, 2026
5340bbe
Migrate from .NET 9 to .NET 10 across the solution
MelbourneDeveloper Mar 4, 2026
5fd75d5
Update h5-compiler to 26.3.64893 and h5 libs to 26.x for .NET 10 comp…
MelbourneDeveloper Mar 4, 2026
b78a6e0
It compiles
MelbourneDeveloper Mar 4, 2026
0376dce
fix docker
MelbourneDeveloper Mar 4, 2026
d727c1f
Stuff
MelbourneDeveloper Mar 5, 2026
8a3989d
fix
MelbourneDeveloper Mar 5, 2026
084f0b3
Test timeout
MelbourneDeveloper Mar 5, 2026
cbf4ac0
fix
MelbourneDeveloper Mar 5, 2026
ff78991
Fix
MelbourneDeveloper Mar 5, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions .claude/skills/build/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
name: build
description: Build the DataProvider .NET solution or specific projects. Use when asked to build, compile, or check for compilation errors.
disable-model-invocation: true
allowed-tools: Bash(dotnet build *)
---

# Build

Build the entire solution or a specific project.

## Full solution

```bash
dotnet build /Users/christianfindlay/Documents/Code/DataProvider/DataProvider.sln
```

## Specific project

If `$ARGUMENTS` names a component, build only that project:

| Argument | Project path |
|----------|-------------|
| dataprovider | DataProvider/DataProvider/DataProvider.csproj |
| dataprovider-sqlite | DataProvider/DataProvider.SQLite/DataProvider.SQLite.csproj |
| sqlite-cli | DataProvider/DataProvider.SQLite.Cli/DataProvider.SQLite.Cli.csproj |
| migration | Migration/Migration.Cli/Migration.Cli.csproj |
| lql | Lql/Lql/Lql.csproj |
| sync | Sync/Sync/Sync.csproj |
| gatekeeper | Gatekeeper/Gatekeeper.Api/Gatekeeper.Api.csproj |
| clinical | Samples/Clinical/Clinical.Api/Clinical.Api.csproj |
| scheduling | Samples/Scheduling/Scheduling.Api/Scheduling.Api.csproj |
| icd10 | Samples/ICD10/ICD10.Api/ICD10.Api.csproj |

If no argument is provided, build the full solution.

## Notes

- Generated `.g.cs` files are in `.gitignore` and must be generated at build time
- MSBuild targets in sample projects handle code generation automatically
- If stale `Generated/` folders cause issues, delete them to force regeneration
48 changes: 48 additions & 0 deletions .claude/skills/container-logs/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
name: container-logs
description: View Docker container logs for the Healthcare Samples stack. Use when asked to check logs, debug container issues, or see service output.
disable-model-invocation: true
allowed-tools: Bash(docker compose *), Bash(docker logs *)
argument-hint: "[container-name] [--tail N]"
---

# Container Logs

View logs from the Healthcare Samples Docker stack.

## Usage

`/container-logs` - show recent logs from all containers
`/container-logs app` - show logs from the app container
`/container-logs db` - show logs from the Postgres container

## Commands

All logs (last 100 lines):
```bash
docker compose -f /Users/christianfindlay/Documents/Code/DataProvider/Samples/docker/docker-compose.yml logs --tail 100
```

Specific container:
```bash
docker compose -f /Users/christianfindlay/Documents/Code/DataProvider/Samples/docker/docker-compose.yml logs --tail 100 $ARGUMENTS
```

Follow logs in real-time (use timeout to avoid hanging):
```bash
timeout 10 docker compose -f /Users/christianfindlay/Documents/Code/DataProvider/Samples/docker/docker-compose.yml logs -f $ARGUMENTS
```

## Container names

| Name | Service |
|------|---------|
| app | All .NET APIs + embedding service |
| db | Postgres 16 + pgvector |
| dashboard | nginx serving static files |

## Check container status

```bash
docker compose -f /Users/christianfindlay/Documents/Code/DataProvider/Samples/docker/docker-compose.yml ps
```
20 changes: 20 additions & 0 deletions .claude/skills/format/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
---
name: format
description: Format C# code with CSharpier. Use when asked to format code, fix formatting, or before committing changes.
disable-model-invocation: true
allowed-tools: Bash(dotnet csharpier *)
---

# Format

Run CSharpier to format all C# code in the repository.

```bash
dotnet csharpier /Users/christianfindlay/Documents/Code/DataProvider
```

If formatting a specific directory:

```bash
dotnet csharpier /Users/christianfindlay/Documents/Code/DataProvider/$ARGUMENTS
```
38 changes: 38 additions & 0 deletions .claude/skills/migrate/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
---
name: migrate
description: Run database migrations using the Migration CLI with YAML schemas. Use when asked to create databases, run migrations, or set up schema.
disable-model-invocation: true
allowed-tools: Bash(dotnet run --project *Migration*)
argument-hint: "[schema.yaml] [output.db] [provider]"
---

# Migrate

Run the Migration CLI to create or update databases from YAML schema files.

## Usage

`/migrate` - show help
`/migrate icd10` - create ICD10 SQLite database from its schema

## Shortcuts

| Argument | Schema | Output | Provider |
|----------|--------|--------|----------|
| icd10 | Samples/ICD10/ICD10.Api/icd10-schema.yaml | Samples/ICD10/ICD10.Api/icd10.db | sqlite |

## Manual usage

```bash
dotnet run --project /Users/christianfindlay/Documents/Code/DataProvider/Migration/Migration.Cli -- \
--schema <path-to-schema.yaml> \
--output <output-path> \
--provider <sqlite|postgres>
```

## Notes

- YAML schemas are the ONLY valid way to define database schema (raw SQL DDL is ILLEGAL)
- Schema files live alongside their API projects
- Supported providers: `sqlite`, `postgres`
- The Migration CLI converts YAML to SQL DDL and applies it
52 changes: 52 additions & 0 deletions .claude/skills/run-samples/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
---
name: run-samples
description: Start the Healthcare Samples stack (Postgres, APIs, Dashboard). Use when asked to run, start, or launch the sample applications.
---

# Run Samples

Start the full Healthcare Samples stack. Decide based on `$ARGUMENTS`:

IMPORTANT: Do NOT run in the background. Run in the foreground so the user can see all output streaming in real-time. Set a long timeout (600000ms).

## Default (no args) - keep existing data

Run with existing database volumes intact:

```bash
cd /Users/christianfindlay/Documents/Code/DataProvider/Samples/scripts && ./start.sh
```

## Fresh start - blow away databases

If the user says "fresh", "clean", "reset", or `$ARGUMENTS` contains `--fresh`:

```bash
cd /Users/christianfindlay/Documents/Code/DataProvider/Samples/scripts && ./start.sh --fresh
```

## Force rebuild containers

If the user says "rebuild" or `$ARGUMENTS` contains `--build`:

```bash
cd /Users/christianfindlay/Documents/Code/DataProvider/Samples/scripts && ./start.sh --build
```

## Both fresh + rebuild

```bash
cd /Users/christianfindlay/Documents/Code/DataProvider/Samples/scripts && ./start.sh --fresh --build
```

## Services

| Service | Port |
|---------|------|
| Gatekeeper API | 5002 |
| Clinical API | 5080 |
| Scheduling API | 5001 |
| ICD10 API | 5090 |
| Embedding Service | 8000 |
| Dashboard | 5173 |
| Postgres | 5432 |
54 changes: 54 additions & 0 deletions .claude/skills/submit-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
name: submit-pr
description: Submit a pull request following DataProvider project standards
---

# Submit Pull Request

Create a pull request following project requirements.

## Get Context

Get the diff between main and current branch:

```bash
git diff main...HEAD
```

DO NOT include commit messages or branch names in analysis.

Read the PR template:

```bash
cat .github/PULL_REQUEST_TEMPLATE.md
```

## Write PR Description

The template has three sections (gh will auto-populate structure):

### TLDR
- Few lines maximum
- Bullet points if many changes
- For people who won't read details

### Brief Details
- Keep BRIEF
- May reference code/files
- What changed and why

### How Do The Tests Prove This Works? (CRITICAL)
- Point to specific test files/methods
- Explain WHAT each test verifies
- Show HOW tests prove correctness, not just "tests added"

## Requirements

- TIGHT - no fluff
- ACCURATE - based on actual diff

## Submit

```bash
gh pr create
```
58 changes: 58 additions & 0 deletions .claude/skills/test/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
name: test
description: Run tests for the DataProvider solution or specific test projects. Use when asked to run tests, verify changes, or check test results.
disable-model-invocation: true
allowed-tools: Bash(dotnet test *)
argument-hint: "[component|project-path]"
---

# Test

Run tests for a specific component or the full solution.

## Usage

`/test` - run all tests
`/test dataprovider` - run DataProvider tests
`/test icd10` - run ICD10 API tests

## Test projects by component

| Argument | Test project path |
|----------|------------------|
| dataprovider | DataProvider/DataProvider.Tests |
| dataprovider-example | DataProvider/DataProvider.Example.Tests |
| lql | Lql/Lql.Tests |
| lql-cli | Lql/LqlCli.SQLite.Tests |
| migration | Migration/Migration.Tests |
| sync | Sync/Sync.Tests |
| sync-sqlite | Sync/Sync.SQLite.Tests |
| sync-postgres | Sync/Sync.Postgres.Tests |
| sync-http | Sync/Sync.Http.Tests |
| sync-integration | Sync/Sync.Integration.Tests |
| gatekeeper | Gatekeeper/Gatekeeper.Api.Tests |
| clinical | Samples/Clinical/Clinical.Api.Tests |
| scheduling | Samples/Scheduling/Scheduling.Api.Tests |
| icd10 | Samples/ICD10/ICD10.Api.Tests |
| icd10-cli | Samples/ICD10/ICD10.Cli.Tests |
| dashboard | Samples/Dashboard/Dashboard.Integration.Tests |

## Commands

Run a specific test project:
```bash
dotnet test <project-path> --no-restore --verbosity normal
```

Run all tests in the solution:
```bash
dotnet test /Users/christianfindlay/Documents/Code/DataProvider/DataProvider.sln --no-restore --verbosity normal
```

## Notes

- Tests use xUnit 2.9.2
- Coverage config: `coverlet.runsettings`
- Sync and Gatekeeper tests require a running Postgres instance
- Dashboard tests use Playwright (E2E)
- NEVER skip tests - failing tests are OK, skipped tests are ILLEGAL
2 changes: 1 addition & 1 deletion .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
"rollForward": false
},
"h5-compiler": {
"version": "24.11.53871",
"version": "26.3.64893",
"commands": [
"h5"
],
Expand Down
Loading
Loading