Data Collection
This guide explains how healthcare providers submit de-identified patient data to the MenoTime platform. The data collection process is designed to ensure HIPAA compliance while capturing comprehensive clinical information about menopause.
Data Collection Overview
MenoTime collects de-identified clinical data through multiple channels:
- Single Patient Entry: Submit one patient record via the API
- Batch CSV Upload: Upload multiple patients in a single file
- Provider Web Form: Submit data through the MenoTime portal
- EHR Integration: Automated import from compatible Electronic Health Records
All data is de-identified at the point of submission according to HIPAA Safe Harbor standards.
De-identification Standards
HIPAA Safe Harbor Requirements
MenoTime implements HIPAA Safe Harbor de-identification, which removes 18 categories of identifiers:
| Identifier | Removal Method |
|---|---|
| Names | Removed completely |
| Geographic location | Aggregated to 6 regions |
| Dates (except year) | Day/month removed, year optional |
| Phone numbers | Removed completely |
| Email addresses | Removed completely |
| Social Security numbers | Removed completely |
| Medical record numbers | Removed completely |
| Account numbers | Removed completely |
| Certificate/license numbers | Removed completely |
| Vehicle identifiers | Removed completely |
| URLs | Removed completely |
| IP addresses | Removed completely |
| Biometric identifiers | Removed completely |
| Photographs | Not collected |
| Any other unique identifier | Removed completely |
De-identified Data Example
Original Data (IDENTIFIED):
Patient Name: Jane Doe
Date of Birth: 1971-06-15
Address: 123 Main St, Boston, MA 02101
Phone: 617-555-0123
MRN: 98765432
De-identified Data (STORED):
age_years: 52
age_months: 8
region: "northeast"
patient_id: "pat_a1b2c3d4e5f6"
(no name, address, phone, or MRN)
Provider Form Submission
Healthcare providers can submit patient data through the MenoTime web portal without requiring API integration.
Access the Provider Portal
- Navigate to https://portal.menotime.timelessbiotech.com
- Log in with your provider credentials
- Click "New Patient" or "New Visit"
- Complete the form with de-identified patient information
- Submit and receive confirmation
Required Information
Patient Demographics (required for new patients): - Age (years and months) - Race - Ethnicity - Geographic region - Menopause status
Visit Information (required for visits): - Visit date - Visit type - Any available clinical findings
Optional Information: - BMI, smoking status, medical history - Hormone biomarkers and symptom assessments - Current medications and lifestyle factors - Provider notes
The form validates all fields in real-time and provides clear error messages for invalid data.
Batch CSV Upload
Upload multiple patient records simultaneously via CSV file.
CSV Format
Prepare a CSV file with the following columns:
age_years,age_months,race,ethnicity,region,menopause_status,bmi,smoker,hypertension,diabetes,family_history_breast_cancer,notes
52,0,caucasian,non_hispanic,northeast,perimenopause,26.5,false,false,false,false,"Initial patient intake"
48,6,african_american,non_hispanic,southeast,perimenopause,28.3,true,true,false,true,"Follow-up visit"
55,3,asian,non_hispanic,west,postmenopause,23.1,false,false,true,false,"Annual checkup"
45,9,hispanic,hispanic,southwest,premenopause,24.8,false,false,false,false,"Preventive screening"
CSV Column Reference
| Column | Data Type | Required | Allowed Values |
|---|---|---|---|
| age_years | integer | Yes | 18-120 |
| age_months | integer | No | 0-11 |
| race | string | Yes | caucasian, african_american, asian, hispanic, native_american, pacific_islander, other, unknown |
| ethnicity | string | Yes | hispanic, non_hispanic, unknown |
| region | string | Yes | northeast, southeast, midwest, southwest, west, pacific |
| menopause_status | string | Yes | premenopause, perimenopause, postmenopause, unknown |
| bmi | number | No | 10-60 |
| smoker | boolean | No | true, false |
| hypertension | boolean | No | true, false |
| diabetes | boolean | No | true, false |
| family_history_breast_cancer | boolean | No | true, false |
| notes | string | No | 0-500 characters |
Upload Endpoint
Endpoint: POST /patients/batch
Authentication: Required (provider, admin role)
Request (Multipart Form Data)
curl -X POST https://api.menotime.timelessbiotech.com/v1/patients/batch \
-H "Authorization: Bearer {access_token}" \
-F "file=@patients.csv"
Response (202 Accepted)
{
"status": "success",
"data": {
"batch_id": "batch_m1n2o3p4q5r6",
"file_name": "patients.csv",
"total_records": 100,
"processing": true,
"created_at": "2024-02-15T14:30:00Z"
},
"message": "Batch processing started. Check status with batch_id."
}
Monitor Batch Processing
Endpoint: GET /patients/batch/{batch_id}
Response
{
"status": "success",
"data": {
"batch_id": "batch_m1n2o3p4q5r6",
"file_name": "patients.csv",
"total_records": 100,
"processed": 100,
"successful": 98,
"failed": 2,
"processing": false,
"completed_at": "2024-02-15T14:35:00Z",
"errors": [
{
"row": 15,
"error": "Invalid age_years value: 180. Must be 18-120."
},
{
"row": 47,
"error": "Missing required field: region"
}
]
}
}
Best Practices for Batch Uploads
- Validate locally first: Check your CSV for common errors before uploading
- Use consistent formatting: Ensure all enum values match exactly (case-sensitive)
- Handle large files: Break files >10,000 rows into multiple uploads
- Monitor progress: Check batch status before processing the same data again
- Review errors: Fix any validation errors and retry with corrected data
Data Validation Rules
Patient De-identification Validation
Before submission, the API validates that data is properly de-identified:
- No direct identifiers: Names, addresses, phone numbers, medical record numbers
- No quasi-identifiers with full precision: Exact dates of birth, full ZIP codes
- No biometric data: Fingerprints, photographs, recordings
- Geographic generalization: Only broad regions, not specific locations
Age Validation
age_years: Must be 18-120
age_months: Must be 0-11 when provided
Combined age must be reasonable (not 150 years old)
Race/Ethnicity Validation
race must be one of:
- caucasian
- african_american
- asian
- hispanic
- native_american
- pacific_islander
- other
- unknown
ethnicity must be one of:
- hispanic
- non_hispanic
- unknown
Geographic Region Validation
region must be one of:
- northeast (CT, ME, MA, NH, RI, VT, NJ, NY, PA)
- southeast (DE, FL, GA, KY, MD, NC, SC, VA, WV, AL, AR, LA, MS, TN)
- midwest (IL, IN, MI, OH, WI, IA, KS, MN, MO, NE, ND, SD)
- southwest (OK, TX, AZ, NM)
- west (CO, ID, MT, NV, UT, WY)
- pacific (AK, CA, HI, OR, WA)
Menopause Status Validation
menopause_status must be one of:
- premenopause (regular menstrual cycles)
- perimenopause (irregular cycles, approaching menopause)
- postmenopause (no menstrual cycles for 12+ months)
- unknown (status not confirmed)
BMI Validation
If provided, BMI must be between 10 and 60 kg/m².
Valid: 18.5, 25.0, 32.1, 40.5
Invalid: 150 (unrealistic)
Invalid: 5 (below physiological range)
Boolean Fields
Valid: true, false, "true", "false" (case-insensitive in CSV)
Invalid: yes, no, 1, 0, True, False
Provider Form Validation
Real-time Field Validation
The provider form validates as you type:
| Field | Validation |
|---|---|
| Age (years) | Must be 18-120, numeric |
| Age (months) | Must be 0-11, numeric |
| Race | Must select from dropdown |
| Ethnicity | Must select from dropdown |
| Region | Must select from dropdown |
| Menopause Status | Must select from dropdown |
| BMI | Must be 10-60, numeric, 1 decimal place |
| Visit Date | Must not be in future, valid date format |
Form Error Display
Invalid fields are highlighted in red with error messages:
Age must be between 18 and 120
Region is required
BMI must be between 10 and 60
Visit date cannot be in the future
HIPAA Safe Harbor Compliance
Compliance Checklist
Before submitting data, ensure:
- [ ] No patient names or nicknames included
- [ ] No full dates of birth (only age year/month acceptable)
- [ ] No street addresses (region only)
- [ ] No phone numbers or email addresses
- [ ] No medical record numbers or account numbers
- [ ] No social security numbers or driver license numbers
- [ ] No unique biometric identifiers or photographs
- [ ] No unique identifiers that could re-identify patient
- [ ] Geographic location limited to broad regions only
De-identification Verification
Submit a test record with all identifying information removed:
Example - BEFORE De-identification:
{
"name": "Jane Doe",
"date_of_birth": "1971-06-15",
"address": "123 Main St, Boston, MA 02101",
"mrn": "98765432"
}
Example - AFTER De-identification (HIPAA Safe Harbor):
{
"age_years": 52,
"age_months": 8,
"region": "northeast"
}
Audit Trail
All data submissions are logged for compliance:
- Submission timestamp
- Provider who submitted data
- Number of records submitted
- Any validation errors or warnings
- Data retention period (10 years for HIPAA compliance)
Error Handling for Invalid Data
Validation Error Response
If data fails validation, the API returns detailed error information:
{
"status": "error",
"code": "VALIDATION_ERROR",
"message": "Data validation failed",
"details": [
{
"field": "age_years",
"row": 15,
"value": "180",
"error": "Age must be between 18 and 120"
},
{
"field": "race",
"row": 20,
"value": "mixed",
"error": "Invalid value. Must be one of: caucasian, african_american, asian, hispanic, native_american, pacific_islander, other, unknown"
},
{
"field": "menopause_status",
"row": 25,
"error": "Required field missing"
}
]
}
De-identification Validation Error
If data contains potential identifiers:
{
"status": "error",
"code": "DE_IDENTIFICATION_ERROR",
"message": "Data contains potential identifiers",
"details": [
{
"field": "notes",
"warning": "Text contains possible name: 'Jane Doe'"
},
{
"field": "region",
"warning": "Cannot accept exact ZIP code. Use broad region only."
}
]
}
Handling Errors
- Review error details for specific field names and row numbers
- Correct data locally
- Resubmit the corrected data
- For batch uploads, you can resubmit only the corrected rows
Data Retention Policy
- Raw submitted data: Retained for 10 years (HIPAA requirement)
- Audit logs: Retained for 10 years
- Error logs: Retained for 6 years
- Batch processing logs: Retained for 1 year
Privacy and Security
Data Transmission
- All data transmitted over HTTPS with TLS 1.2+
- Data encrypted in transit and at rest
- HTTPS required for all API endpoints
Access Control
- Authentication required for all data submission endpoints
- Role-based access control (providers can only access their own submissions)
- Audit logging of all data access
Data Minimization
- Collect only necessary de-identified data
- No collection of identifiable information
- Minimal data retention periods
- Annual compliance reviews
Support
For questions about data collection and HIPAA compliance:
- Data Collection Help: data-support@timelessbiotech.com
- HIPAA Compliance: hipaa-compliance@timelessbiotech.com
- Technical Support: api-support@timelessbiotech.com