Skip to content

The Case Lifecycle

This page walks through a complete fertility journey from the perspective of the people involved and shows how Orchid supports each step. It is written for both non-technical readers and developers who want to understand the business context behind the code.

The big picture

A fertility journey in Orchid has two parallel tracks that eventually merge:

flowchart LR
subgraph "Donor/Carrier Track"
A1["Lead inquiry"] --> A2["Application\n(Intake form)"] --> A3["Screening\n(DQ checks)"] --> A4["Profile created\n& approved"] --> A5["Available\nfor matching"]
end
subgraph "Intended Parent Track"
B1["IP inquiry"] --> B2["IP application"] --> B3["IP accepted"] --> B4["Browsing\nprofiles"]
end
A5 --> C["Match proposed\nby agency"]
B4 --> C
C --> D["IP accepts\nmatch"] --> E["Legal\n(Contracts)"] --> F["Medical\n(Fertility clinic)"] --> G["Pregnancy\n& delivery"] --> H["Case closed"]

Stage by stage

1. Inquiry and Lead Capture

A prospective egg donor, gestational carrier, or intended parent finds the agency (through the website, social media, or referral) and fills out an inquiry form.

In Orchid: A ContactLead record is created. The agency staff see it in their leads list at /admin/contacts. At this point, the person does not have a login — they are just a lead.

Relevant module: Contacts & Leads


2. Application / Intake

The agency invites the prospective applicant to fill out a detailed application form. This covers personal information, medical history, motivation, lifestyle, and more. The form is customized per agency.

In Orchid: The applicant gets a login. They fill out their intake form through the public-facing intake flow (/forms/). Their answers create UserFormAnswer records linked to a Form.

Simultaneously, the applicant starts building their Profile — the document that will eventually be shown to intended parents.

Relevant module: Forms & Intake


3. Screening and DQ Checks

The agency reviews the application. Automated disqualification (DQ) checks flag applicants who do not meet the agency’s minimum criteria (age ranges, BMI thresholds, medical history flags, etc.).

In Orchid: Agency staff review the application at /admin/screening. The AgencyDQSettings model controls which checks apply. Staff can override DQ flags with notes.

If the applicant is not suitable, they are archived. If suitable, they move forward.


4. Profile Creation and Approval

Accepted applicants complete their full donor/carrier profile — the document that will eventually be shared with intended parents. A profile contains photos, videos, personal essays, medical history, education, and family background.

In Orchid: Profile data is stored across EDProfile / GCProfile and related models. The profile goes through an approval workflow before becoming visible to IPs. Only approved profiles appear in the matching queue.

Relevant module: Client Profiles


5. Matching

An intended parent (who has gone through their own intake process) is presented with a curated list of approved profiles. The agency manages this process — they decide which candidates to show and in what order.

The IP reviews profiles, asks questions, and either declines or signals interest. When both parties agree, a match is proposed formally.

In Orchid: The matching queue (MatchingQueue) tracks which profiles the IP has seen. Favorite records track shortlisted candidates. When a match is proposed, the IP is presented a match sheet for formal review.

Relevant module: Matching System


6. Match Acceptance and Case Creation

When the IP accepts a match, a Case is created (or an existing case is updated). The Case links together the IP and the donor/carrier as parties.

In Orchid: CaseParty records link User objects to the Case with their respective roles. The case now becomes the container for everything that follows.

Relevant module: Case Management


Before medical treatment begins, legal contracts must be signed. A surrogacy agreement, for example, must be executed between the IP and the gestational carrier.

In Orchid: The agency initiates a contract request via the HelloSign integration. The parties receive signing invitations by email. Once all parties sign, a SignedContract record is created and the case can proceed to medical.

Relevant module: Contracts & E-Signatures


8. Medical (Fertility Clinic)

With contracts signed, the fertility clinic takes over for the medical phase. For a gestational carrier case, this includes:

  • Egg retrieval from the donor
  • Fertilization in the lab
  • Embryo transfer to the carrier
  • Monitoring and pregnancy confirmation

In Orchid: Medical events are tracked as Retrieval, Transfer, Lab, Pregnancy records in the cycle module. The treating clinic may have its own provider portal access to view case details.

Relevant module: Case Management (cycle section)


9. Pregnancy and Delivery

Once a pregnancy is confirmed, the journey moves into the final phase. The agency coordinates between the IP, the carrier, the clinic, and attorneys until delivery.

In Orchid: A Pregnancy record tracks confirmation and progress. A Delivery record captures the outcome (delivery date, outcome, baby information). JourneyPhoto records let the IP add milestone photos.


10. Case Closing

After delivery, the case is formally closed. The agency records the closing details, archives the case, and the journey is complete.

In Orchid: CaseClosingDetails captures the final status. The case status transitions to a closed state. Workflow tasks are marked complete. The case remains readable for reference but is no longer active.

Relevant module: Case Management


How the Case object connects everything

The Case model is the anchor for every other record in the system:

graph TD
Case["Case"]
Case --> CP["CaseParty\n(IP, GC, ED, SD)"]
Case --> CD["CaseDocument"]
Case --> CN["CaseNote"]
Case --> CE["CaseEmail"]
Case --> CT["CaseTask\n(workflow tasks)"]
Case --> CC["CaseContract"]
Case --> Cycle["Transfer, Retrieval,\nPregnancy, Delivery"]
Case --> CM["CaseMilestone"]
Case --> CCS["CaseClosingDetails"]
CP --> User["User\n(the actual person)"]