Inspiration
Medical records tend to accumulate everywhere—lab reports, prescriptions, scans, discharge summaries, and documents from different doctors or hospitals. When they are needed again, patients often have to search through old emails, folders, downloads, or physical copies just to reconstruct their own medical history.
We wanted MediVault to give patients one place to keep those records organized and accessible over time: a personal digital medical library that stays with them whenever they need their information.
But storing records is only part of the problem. When patients want a second medical opinion, they should also be able to securely share the relevant records with a doctor without downloading, collecting, and sending everything again.
That became the idea behind MediVault: keep your medical history in one place and, when needed, securely use it to request a professional second opinion.
What it does
MediVault gives patients a personal digital library for their medical records. They can upload and maintain documents such as reports, scans, prescriptions, and other medical files so their history remains available in one organized place instead of being scattered across devices, emails, and physical folders.
When a patient wants a second opinion, they can use records already stored in their MediVault library and request a review from a doctor.
The doctor sets their own consultation fee. MediVault does not calculate the price from the patient's records or from AI analysis. Once the patient pays through PayPal and the payment is verified, the selected doctor receives access only to the records associated with that consultation.
From that point, the doctor has seven days to review the case and provide an opinion.
When an opinion is submitted, MediVault retains a 5% platform fee and sends the remaining 95% to the doctor's PayPal account. If the doctor declines the request or does not respond within seven days, the patient receives a full refund.
To help doctors review larger or more complex records efficiently, MediVault also generates a private AI-assisted reading of the submitted files. It organizes information such as the available records, reported findings, previous care, an overall impression, and points that may deserve further attention.
This AI-generated analysis is available only to the doctor. It is a supporting tool for reviewing the records, not a replacement for medical judgment, and the patient receives only the final opinion written by the doctor.
Both patients and doctors can follow the status and response date of a consultation, while notifications highlight important events such as successful payment, a completed opinion, or a refund.
How we built it
MediVault uses ASP.NET Core 10 for the backend API and Angular for the frontend. Patient records, consultation requests, permissions, and related application data are stored in PostgreSQL, while uploaded medical documents are kept separately in S3-compatible object storage. The development environment runs through Docker Compose.
Access to medical records is designed around the consultation lifecycle. A patient's library remains private by default. Requesting a consultation does not automatically expose their entire medical history; the doctor receives access only to the records associated with the paid request.
Payments are handled through PayPal Orders. Each payment is linked to a specific consultation request and captured into the MediVault platform account. Before the consultation is opened, the backend verifies that the payment was successfully completed, uses the expected currency, matches the doctor's fee, and belongs to the correct request.
The seven-day response period begins only after this verification succeeds.
Expired consultations are detected through a background process, with additional checks performed when requests are accessed or answered. If the deadline passes without an opinion, the patient is refunded and the consultation can no longer be completed. A doctor declining the consultation follows the same full-refund principle.
When an opinion is submitted, PayPal Payouts transfers 95% of the consultation fee to the doctor's PayPal account while MediVault retains its 5% platform fee. The opinion and payout are intentionally handled separately, so a temporary payout failure never causes a completed medical opinion to be lost.
For AI-assisted review, the selected images and PDFs are processed by the model and converted into structured information stored as JSON. That analysis is exposed only through doctor-authorized functionality.
Challenges we ran into
One of the main challenges was connecting three areas that have very different requirements: private medical-record storage, controlled access, and payments.
Keeping a patient's medical library private is straightforward until part of that library needs to be shared temporarily with another person. We needed to ensure that paying for one consultation grants the selected doctor access to the appropriate records without exposing the patient's entire library.
Payments introduced another challenge. PayPal can capture a patient's payment, but it does not simply hold that money as escrow until a doctor responds. Our workflow therefore captures the payment into the platform account and later either pays the doctor after a completed consultation or refunds the patient when the consultation does not happen.
That made strict payment verification important. The amount, currency, request identifier, and payment state must all agree before access is granted. An old or incorrectly configured payment must never be able to unlock medical records.
The AI component required another clear boundary. Its purpose is to help a doctor navigate the submitted records more efficiently. It does not determine the doctor's fee and it does not provide the patient with an automated substitute for a professional opinion.
We also had to handle the consultation deadline carefully. A doctor actively declining a request and a doctor simply not responding both result in a refund, but they represent different events. And once a request has expired and been refunded, a late opinion must not be able to reopen it.
Accomplishments that we're proud of
MediVault became more than a consultation workflow.
Patients have a persistent digital home for their medical records, allowing them to build and maintain their medical history instead of gathering the same documents again whenever they need care or another opinion.
On top of that library, we built the complete second-opinion lifecycle. A patient can select existing records, request a doctor, pay the doctor's independently defined fee, and track the consultation. The doctor receives controlled access to the relevant records, reviews them with optional AI assistance, and submits their professional opinion.
The financial lifecycle is connected to that process as well. A completed consultation records the doctor's payout and MediVault's platform fee, while declined or unanswered consultations return the full payment to the patient.
Most importantly, we kept the major responsibilities separate: the patient's medical library, access to those records, the doctor's price, the payment transaction, the AI-assisted reading, and the doctor's final opinion.
Each has a clear purpose and changing one does not silently change another.
What we learned
Building MediVault showed us that managing medical records is not only about storing files. The real value comes from making those records useful when they are actually needed while still controlling who can see them.
A patient's medical library should remain theirs. Sharing records for a consultation should be deliberate, limited, and tied to that specific request.
We also learned how closely authorization and financial state can interact. A successful payment changes what a doctor is allowed to access. A refund closes that consultation. A payout failure, however, is a financial problem and should not erase a medical opinion that has already been completed.
The same principle applies to AI. It can make information easier for a professional to review, but it should remain a supporting layer rather than silently becoming the decision-maker.
What's next for MediVault
Our vision is to grow MediVault beyond a medical-record library and second-opinion platform into a more complete digital healthcare application centered around the patient.
Today, patients upload and manage their own medical records. In the future, we want to integrate hospitals, clinics, diagnostic centers, and laboratories directly into MediVault. With the patient's permission, reports such as blood tests, imaging results, prescriptions, and discharge documents could be delivered directly to their MediVault library as soon as they become available.
The goal is to build a medical history that follows the patient instead of remaining fragmented across different hospitals, laboratories, emails, and physical folders. Patients should not have to remember which documents to carry to an appointment or repeatedly search for old reports—their medical history should already be available to them in one secure place.
We also want to expand MediVault into everyday healthcare interactions, including discovering doctors and healthcare providers, booking appointments, managing upcoming consultations, and selectively sharing relevant records with a doctor before a visit.
Over time, this would allow MediVault to connect the different parts of a patient's healthcare journey: records, hospitals, laboratories, appointments, and medical consultations—all organized around a medical library controlled by the patient.
The long-term idea is simple: patients should not have to carry their medical history with them. MediVault should make sure it is already there when they need it.
Built With
- cursor
- paypal

Log in or sign up for Devpost to join the conversation.