Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/hack4impact-umd/breastfeeding-center-gw/llms.txt

Use this file to discover all available pages before exploring further.

Jane does not provide a public API, so appointment and client data must be imported manually by uploading files exported directly from the Jane app.

File types

Two file types can be uploaded during a single import: Appointments file (required) An Excel or CSV export of appointment records from Jane. The file must include the following columns:
  • id — appointment ID
  • patient_number — Jane patient number
  • patient_first_name / patient_last_name — patient name
  • start_at / end_at — appointment start and end times (ISO)
  • treatment_name — service or visit type
  • staff_member_name — assigned clinician
  • first_visit — flag indicating whether this is the patient’s first visit
Clients file (optional) An Excel or CSV export of patient records from Jane. If you omit this file, client matching falls back to records already stored in Firestore. Include this file when the appointments export contains patients not yet in the dashboard.

Upload flow

1

Navigate to Jane

In the BCGW Dashboard sidebar, open the Jane section and click VIEW UPLOADED DATA.
2

Open the upload dialog

On the Jane Data page, click UPLOAD NEW SPREADSHEETS.
3

Select your files

Choose the appointments file (required). Optionally attach the clients file if you need to add new patient records.
4

Submit the upload

Click upload. The server parses both files, matches appointments to client records, and writes the results to Firestore.

Processing logic

After files are submitted, the server performs the following steps:
  1. Parse — the appointments file is converted from .xlsx or .csv into a list of appointment records.
  2. Group — appointments are grouped by start_at timestamp and clinician name. Each group represents a single session that may involve a parent and one or more babies.
  3. Client matching — each appointment is looked up against client records by Jane patient number (patient_number). If a clients file was provided, new records from that file are merged into the lookup. Otherwise, existing Firestore records are used.
  4. Primary client selection — within each appointment group, the primary client is determined by which existing Firestore record has the most appointment history. Associated clients (co-attendees) are linked to the primary client.
  5. Baby matching — baby appointments in a group are matched to Baby records and merged into the primary client’s baby array, avoiding duplicates.
  6. Write — matched clients and appointments are upserted into the Client and JaneAppt Firestore collections. Existing records are merged, not overwritten.

Supported formats

Both .xlsx and .csv are accepted for each file. Files must not be empty and must include all required column headers.

Missing clients

If the appointments file references patients who cannot be matched to any client record in Firestore or the provided clients file, the upload will fail. The response will include a list of unmatched patient names. Re-upload with the clients file to resolve these missing entries.
When missing clients are detected, a tooltip in the dashboard lists their names. No data is written until all patients can be matched.

Build docs developers (and LLMs) love