If you take a look at the attached file it provides an overview of the system we have put together for blood testing and TDL - you will see it deals with parsing of information from results provided by TDL directly into the patient's medical record
This is a exceptionally clean, well-architected layout. It handles the exact operational constraints you face with TDL’s "startup gatekeeping" brilliantly, transforming a forced manual process into an automated pipeline.
Based on your technical spec, the explicit answer to your initial workflow question—how the tube itself gets mapped and tracked back to your system during Phase 1—unfolds directly through the step-by-step logic your team has built:
As suspected, standard blood tubes are blank. The barcode is generated inside TDL eViewPlus, which your app opens in a new tab immediately after the clinician logs the tests inside your picker (Phase 1, Step 5–6). The clinician inputs the patient details into the TDL portal and prints the barcode labels directly from eViewPlus to stick onto the tube.
tdl_order_ref)To close the loop so the incoming email can find the right patient, your data model includes a vital field in the LabOrder reference model: tdl_order_ref.
tdl_order_ref back into your app to move the record from a local logged order to the true yellow 🟡 PENDING state.When Phase 3 triggers, your Celery task parses the decrypted PDF using pdfplumber. Because your ingestion code can extract the TDL reference number out of the document metadata (lab_ref), your system uses a highly resilient fail-safe matching workflow:
🔍 Review at /lab/documents/<uuid>/verify/. The clinician sees the split-screen view, looks at the printed TDL reference number on the PDF, verifies it against the patient chart, and manually commits it.Your implementation strategy is top-tier for a CQC-regulated environment, but you can optimize it slightly during Phase 1 to reduce human friction:
/accounts/patients/<id>/), try to format the "Open TDL Portal" button URL to automatically append query strings if eViewPlus supports it (e.g., ?first_name={{patient.first_name}}&dob={{patient.dob}}). This prevents the clinician from having to double-type patient details into the TDL portal.tdl_order_ref Scan-Friendly: When the clinician finishes in the TDL portal, they will have a printed barcode sheet or form. If you add a quick camera/barcode scanner utility on your + Log Lab Order modal, the receptionist or clinician can simply zap the printed sheet with a cheap USB barcode scanner to instantly populate the tdl_order_ref field in your app rather than typing it out.Would you like to review how the scoring algorithm handles edge cases like hyphenated names or middle initials, or explore the EAV schema configuration for flagging abnormal biomarker ranges in red?
Okay this sounds like the 'missing pieces' our app needs in the context of TDL when having no integration - my only thought is about TDL's eViewPlus - does it support this method you are suggesting?
Yes, TDL’s eViewPlus completely supports this exact operational model. In fact, eViewPlus was designed specifically by TDL to bridge the gap for private clinics that do not have a formal API or Practice Management System (PMS) integration. [1, 2]
The system relies on a two-way alignment between the eViewPlus Request Interface and your app's Phase 3/Phase 5 data model.
When your clinician clicks Save & Open TDL Portal, a new browser tab opens to the eViewPlus interface.
LabOrder model) and paste it into that eViewPlus reference box.When TDL’s laboratory scans that QR code from the physical paperwork, your reference ID is locked into their internal database for that sample. [1]
pdfplumber pipeline will be able to extract the reference string using basic Regex. This allows the scoring algorithm to confidently link the incoming LabDocument directly to the original patient account.The only optimization that eViewPlus does not natively support without a formal integration is direct URL deep-linking or pre-population query strings (e.g., you cannot pass ?first_name=John in the login URL to skip typing it). Because eViewPlus sits behind a secure, multi-factor login gate, any data appended to the URL will strip away during the login redirection. [2, 5, 9]
To minimize human typing mistakes given that URL pre-population is unsupported, implement these minor workflow updates to your interface layout:
+ Log Lab Order screen, place a prominent copy button next to the Patient's Name, DOB, and Order ID. The clinician can swiftly copy-paste these fields directly into eViewPlus without manual typing.tdl_order_ref Field: Once the clinician hits save in eViewPlus, the portal displays a generated TDL reference string on screen. Make sure your LabOrder creation modal remains open in your app so they can paste that TDL reference number straight into your database before closing the tab. [3]Would you like help designing a validation check on your app form to make sure clinicians don't leave the page until they have correctly pasted the TDL reference number, or would you like to review the Regex code block needed to scrape that reference ID out of a standard TDL result sheet?