Support terminology syndication feeds as an import source for the local terminology store
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 134
- Forks
- 24
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 8
Description
The local terminology store is populated from files supplied by the user: an RF2 archive or directory via import_snomed, and a JSON file, directory or FHIR NPM package via import_fhir_terminology. Obtaining those files is a manual step outside Pathling.
The Terminology Syndication Feed IG specifies the Atom-based catalogue format used by SNOMED International's MLDS (https://mlds.ihtsdotools.org/api/feed), the Australian NCTS (https://api.healthterminologies.gov.au/syndication/v1/syndication.xml) and Ontoserver deployments. Each entry carries a content item identifier and version (for SNOMED CT, the edition/version URI), a category identifying the content type (SCT_RF2_SNAPSHOT, FHIR_Package, FHIR_CodeSystem, etc.), a download link, and an ncts:sha256Hash of the download.
Support a syndication feed as a source for the import operations, so that a caller can name a feed URL and a content item (identifier, and version or latest), and Pathling resolves the entry, downloads the artefact, verifies it against the published SHA-256, and imports it through the existing RF2 or FHIR path. The verified hash and the entry's identifier and version should be recorded in the store manifest alongside the existing source and imported_at columns, giving the store a verifiable record of where its content came from.
Considerations:
- Feeds generally require authentication for downloads (OAuth 2.0 client credentials for NCTS, MLDS credentials for SNOMED International). The existing
terminology-authclient credentials configuration may be reusable. - The IG specifies the format only; transport, pagination and authentication are out of its scope, so the initial implementation should target the two known public feeds.
- Only
SCT_RF2_SNAPSHOT,FHIR_Package,FHIR_Bundleand the individualFHIR_CodeSystem/FHIR_ValueSet/FHIR_ConceptMapcategories map onto content the store can import; other categories should be reported as unsupported rather than silently skipped.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by tracing the existing import_snomed and import_fhir_terminology operations, the local store manifest, and the terminology-auth client-credentials configuration. Review the Terminology Syndication Feed IG and the two named public feeds first. Done means supported entries are selected, downloaded, hash-verified, imported through the existing paths, unsupported categories are reported, and identifier, version, and hash are recorded in the manifest.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- api, backend, database
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100