Health data set upload#234
Open
reanbrenda wants to merge 8 commits into
Open
Conversation
Add a dedicated health upload path in the portal and API, including health metadata capture, blob path routing, timestamped filenames, and sidecar metadata persistence so health uploads are traceable and consistent with existing ingestion behavior. Co-authored-by: Cursor <cursoragent@cursor.com>
brianmusisi
reviewed
May 13, 2026
Collaborator
brianmusisi
left a comment
There was a problem hiding this comment.
- Look at the comments I've shared and ajdust everything related to this. This should be simple: Upload file -> dump into the location. Nothing else
- Remember that we need to select a country because the files need to go into each country's specific folder
| @@ -0,0 +1,266 @@ | |||
| import type { ReactNode } from "react"; | |||
Collaborator
There was a problem hiding this comment.
I'm not clear on what the logic in this file does
| "Unknown", | ||
| ] as const; | ||
|
|
||
| const healthIdTypeOptions = [ |
Collaborator
There was a problem hiding this comment.
Same here, we are only uploading a file, this should not be relevant. It is just a data file dump
| ], | ||
| }; | ||
|
|
||
| /** Same field `name`s as school mapping (Zod / API JSON keys); health-specific labels and section titles. */ |
Collaborator
There was a problem hiding this comment.
Same here, not required
Collaborator
There was a problem hiding this comment.
Care with this file refactor, it's deleting the content of this file which affects other uploads flow that uses this mapping.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What type of PR is this?
build: Commits that affect build components like build tool, dependencies, projectversion
chore: Miscellaneous commits (e.g. modifying.gitignore)ci: Commits are specialbuildcommits that affect the CI/CD pipelinedocs: Commits that affect documentation onlyfeat: Commits that add a new featurefix: Commits that fix a bugperf: Commits are specialrefactorcommits that improve performancerefactor: Commits that rewrite/restructure your code, however does not change anybehaviour
revert: Commits that revert another commit/PR, usually can be autogenerated onGitHub or using
git revertstyle: Commits are specialrefactorcommits that edit the code to comply with acode style, linter, or formatter
test: Commits that add missing tests or correcting existing testsSummary
What does this PR do
This PR adds a dedicated health dataset upload flow to the Giga Data Ingestion portal and API.
What does this PR do:
New health upload UI path — Adds a "Health dataset" button on the upload landing page, routing users through a two-step flow: CSV file selection → health metadata form → submit
Health metadata form — Replicates the school metadata structure with health-specific labels (focal point, data owner, year, dataset description, modality, facility ID type) using a shared base form component
Health-specific facility ID options — Dropdown uses dhis2_id, hims_id, hfml_id, Other, Unknown instead of school ID types (EMIS, Examination code)
API: dedicated health storage path — Files uploaded with portal_dataset: "health" are stored at updated_master_schema/health-master//.csv with sidecar metadata JSON
Health tab on upload list — Health uploads appear under a new "Health" tab filtered by dataset=health
No portal DQ — Health uploads skip in-portal data quality checks (dq_status = SKIPPED); validation and enrichment happen downstream in Dagster
Success screen — Informs users that downstream staging in Azure Data Lake and Dagster will process the file
Copy improvements — Capitalizes "Health Master" as a proper noun; softens metadata prompt wording
Column-mapping refactor — Extracts a reusable BaseUploadMetadataForm component shared between school and health flows
How to test
Link to Jira/Asana/Airtable task (if applicable)
placeholder
Wireframe screenshot/screencap (if applicable)
placeholder
Implementation screenshot/screencap (if applicable)
placeholder