Skip to content

Redesign FP Date Shift Architecture#1497

Open
trobanga wants to merge 3 commits intoepic/fhir-pseudonymizerfrom
fp-date-shift
Open

Redesign FP Date Shift Architecture#1497
trobanga wants to merge 3 commits intoepic/fhir-pseudonymizerfrom
fp-date-shift

Conversation

@trobanga
Copy link
Contributor

@trobanga trobanga commented Mar 4, 2026

Summary

  • Move date nullification from TCA to CDA via new DateShiftAnonymizer utility
  • Replace TCA DateShiftController with FpTransportMappingController that consolidates identity tIDs and date mappings in a single call
  • Simplify TransportIdService by removing date-shift-specific logic
  • Add CDA FhirPseudonymizerStep with external FHIR Pseudonymizer integration

@codecov
Copy link

codecov bot commented Mar 10, 2026

Codecov Report

❌ Patch coverage is 97.56944% with 7 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (epic/fhir-pseudonymizer@1139e1e). Learn more about missing BASE report.

Files with missing lines Patch % Lines
.../care/smith/fts/util/fhir/DateShiftAnonymizer.java 91.11% 0 Missing and 4 partials ⚠️
...care/smith/fts/cda/impl/FhirPseudonymizerStep.java 94.73% 0 Missing and 3 partials ⚠️
Additional details and impacted files

Impacted file tree graph

@@                    Coverage Diff                     @@
##             epic/fhir-pseudonymizer    #1497   +/-   ##
==========================================================
  Coverage                           ?   99.18%           
  Complexity                         ?      691           
==========================================================
  Files                              ?      140           
  Lines                              ?     2450           
  Branches                           ?       86           
==========================================================
  Hits                               ?     2430           
  Misses                             ?        2           
  Partials                           ?       18           
Files with missing lines Coverage Δ
...re/smith/fts/cda/impl/FhirPseudonymizerConfig.java 100.00% <100.00%> (ø)
...ith/fts/cda/impl/FhirPseudonymizerStepFactory.java 100.00% <100.00%> (ø)
...s/tca/rest/CdAgentFhirPseudonymizerController.java 100.00% <ø> (ø)
...ith/fts/tca/rest/FpTransportMappingController.java 100.00% <100.00%> (ø)
.../smith/fts/tca/rest/FpTransportMappingRequest.java 100.00% <100.00%> (ø)
...a/care/smith/fts/tca/rest/GpasProxyController.java 100.00% <100.00%> (ø)
...are/smith/fts/tca/services/TransportIdService.java 100.00% <100.00%> (ø)
...care/smith/fts/cda/impl/FhirPseudonymizerStep.java 94.73% <94.73%> (ø)
.../care/smith/fts/util/fhir/DateShiftAnonymizer.java 91.11% <91.11%> (ø)
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Add GpasProxyController that mimics gPAS's $pseudonymizeAllowCreate
but returns transport IDs instead of real pseudonyms. This allows the
external FHIR Pseudonymizer to call TCA (not gPAS directly), maintaining
data isolation via transport IDs.

Also add E2E test infrastructure for the FHIR Pseudonymizer flow:
- FP compose config pointing at TCA proxy with TLS and basic auth
- Anonymization config, project config, and expected results
- CI workflow steps for the fp-example transfer test

Fix server cert generation to include Subject Alternative Names (SANs),
required by .NET's strict TLS hostname validation.
Add agent-level E2E tests for the FHIR Pseudonymizer flow:
- GpasProxyE2E: verifies gPAS proxy returns transport IDs not real pseudonyms
- FpTransportMappingE2E: tests two-phase proxy + consolidation flow
- FhirPseudonymizerE2E: full CDA transfer with FP WireMock, consent, and
  transport mapping consolidation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant