| Blood Group | +Available Units | +Percentage | +Status | +
|---|---|---|---|
| + + {{ stat.blood_group__abo_type }}{% if stat.blood_group__rh_factor == 'positive' %}+{% else %}-{% endif %} + + | +{{ stat.count }} | ++ {% widthratio stat.count total_units 100 %}% + | ++ {% if stat.count >= 10 %} + Adequate + {% elif stat.count >= 5 %} + Low + {% else %} + Critical + {% endif %} + | +
| No blood units available | +|||
| Unit Number | +Donor | +Component | +Blood Group | +Status | +
|---|---|---|---|---|
| + + {{ unit.unit_number }} + + | +{{ unit.donor.full_name }} | +{{ unit.component.get_name_display }} | ++ {{ unit.blood_group.display_name }} + | ++ {% if unit.status == 'available' %} + {{ unit.get_status_display }} + {% elif unit.status == 'expired' %} + {{ unit.get_status_display }} + {% else %} + {{ unit.get_status_display }} + {% endif %} + | +
| No recent blood units | +||||
| Request # | +Patient | +Component | +Units | +Urgency | +
|---|---|---|---|---|
| + + {{ request.request_number }} + + | +{{ request.patient.full_name }} | +{{ request.component_requested.get_name_display }} | +{{ request.units_requested }} | ++ {{ request.get_urgency_display }} + | +
| No urgent requests | +||||
You are about to permanently delete this donor record. This action cannot be undone.
+| Donor ID: | +{{ donor.donor_id }} | +
| Name: | +{{ donor.full_name }} | +
| Blood Group: | ++ {{ donor.blood_group.display_name }} + | +
| Phone: | +{{ donor.phone }} | +
| Registration Date: | +{{ donor.registration_date|date:"M d, Y" }} | +
| Status: | ++ + {{ donor.get_status_display }} + + | +
This donor has blood units currently available in inventory. + Deleting this donor will affect inventory tracking.
+This donor has a donation history. Consider marking as + "inactive" instead of deleting to preserve historical data.
+Consider these alternatives to permanent deletion:
+{{ donor.donor_id }}
+| Blood Group: | ++ {{ donor.blood_group.display_name }} + | +
| Age: | +{{ donor.age }} years | +
| Gender: | +{{ donor.get_gender_display }} | +
| Weight: | +{{ donor.weight }} kg | +
| Height: | +{{ donor.height }} cm | +
| Status: | ++ {% if donor.status == 'active' %} + {{ donor.get_status_display }} + {% elif donor.status == 'deferred' %} + {{ donor.get_status_display }} + {% elif donor.status == 'permanently_deferred' %} + {{ donor.get_status_display }} + {% else %} + {{ donor.get_status_display }} + {% endif %} + | +
| Donor Type: | +{{ donor.get_donor_type_display }} | +
| Phone: | +{{ donor.phone }} | +
| Email: | +{{ donor.email|default:"Not provided" }} | +
| Address: | +{{ donor.address }} | +
| Name: | +{{ donor.emergency_contact_name }} | +
| Phone: | +{{ donor.emergency_contact_phone }} | +
{{ donor.notes }}
+ {% endif %} +| Unit Number | +Component | +Collection Date | +Volume (ml) | +Status | +Expiry Date | +Location | +Actions | +
|---|---|---|---|---|---|---|---|
| + + {{ unit.unit_number }} + + | +{{ unit.component.get_name_display }} | +{{ unit.collection_date|date:"M d, Y H:i" }} | +{{ unit.volume_ml }} | ++ {% if unit.status == 'available' %} + {{ unit.get_status_display }} + {% elif unit.status == 'expired' %} + {{ unit.get_status_display }} + {% elif unit.status == 'transfused' %} + {{ unit.get_status_display }} + {% else %} + {{ unit.get_status_display }} + {% endif %} + | ++ {{ unit.expiry_date|date:"M d, Y" }} + {% if unit.days_to_expiry <= 3 and unit.status == 'available' %} + Expiring Soon + {% endif %} + | +{{ unit.location }} | ++ + + + | +
This donor has not made any donations yet.
+ {% if donor.is_eligible_for_donation %} + + Start First Donation + + {% endif %} +{{ donor.donor_id }}
+| Blood Group: | ++ {{ donor.blood_group.display_name }} + | +
| Age: | +{{ donor.age }} years | +
| Weight: | +{{ donor.weight }} kg | +
| Total Donations: | +{{ donor.total_donations }} | +
| Last Donation: | ++ {% if donor.last_donation_date %} + {{ donor.last_donation_date|date:"M d, Y" }} + {% else %} + Never + {% endif %} + | +
+ {% if is_eligible %} + This donor meets the basic eligibility criteria. + {% else %} + Next eligible date: {{ next_eligible_date|date:"M d, Y" }} + {% endif %} +
+| Donor ID | +Name | +Blood Group | +Age | +Phone | +Status | +Total Donations | +Last Donation | +Eligible | +Actions | +
|---|---|---|---|---|---|---|---|---|---|
| + + {{ donor.donor_id }} + + | +{{ donor.full_name }} | ++ {{ donor.blood_group.display_name }} + | +{{ donor.age }} | +{{ donor.phone }} | ++ {% if donor.status == 'active' %} + {{ donor.get_status_display }} + {% elif donor.status == 'deferred' %} + {{ donor.get_status_display }} + {% elif donor.status == 'permanently_deferred' %} + {{ donor.get_status_display }} + {% else %} + {{ donor.get_status_display }} + {% endif %} + | +{{ donor.total_donations }} | ++ {% if donor.last_donation_date %} + {{ donor.last_donation_date|date:"M d, Y" }} + {% else %} + Never + {% endif %} + | ++ {% if donor.is_eligible_for_donation %} + + Eligible + + {% else %} + + Not Eligible + + {% endif %} + | ++ + | +
| + + | +|||||||||
+ Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ page_obj.paginator.count }} donors +
+No units expiring soon
+No recent activity
+You are about to permanently delete a quality control record.
+This action will:
+| Test Name: | +{{ qc_record.test_name }} | +
| Test Type: | +{{ qc_record.get_test_type_display }} | +
| Test Date: | +{{ qc_record.test_date|date:"M d, Y H:i" }} | +
| Tested By: | +{{ qc_record.tested_by.get_full_name }} | +
| Result: | ++ + {{ qc_record.get_result_display }} + + | +
| Sample ID: | +{{ qc_record.sample_id|default:"Not specified" }} | +
| Equipment: | +{{ qc_record.equipment_used|default:"Not specified" }} | +
| Reviewed: | ++ {% if qc_record.reviewed_by %} + Yes - {{ qc_record.reviewed_by.get_full_name }} + {% else %} + Pending Review + {% endif %} + | +
| Test Name: | +{{ qc_record.test_name }} | +
| Test Type: | +{{ qc_record.get_test_type_display }} | +
| Test Date: | +{{ qc_record.test_date|date:"M d, Y H:i" }} | +
| Tested By: | +{{ qc_record.tested_by.get_full_name }} | +
| Equipment: | +{{ qc_record.equipment_used|default:"Not specified" }} | +
| Lot Numbers: | +{{ qc_record.lot_numbers|default:"Not specified" }} | +
| Temperature: | +{{ qc_record.temperature|default:"Not recorded" }}°C | +
| Result: | ++ + {{ qc_record.get_result_display }} + | +
| Measured Temperature: | +{{ qc_record.temperature }}°C | +
| Acceptable Range: | +2-6°C | +
| Deviation: | ++ {% if qc_record.temperature %} + {% if qc_record.temperature >= 2 and qc_record.temperature <= 6 %} + Within range + {% else %} + {{ qc_record.temperature|floatformat:1 }}°C deviation + {% endif %} + {% else %} + Not recorded + {% endif %} + | +
| Measured pH: | +{{ qc_record.ph_value|default:"Not recorded" }} | +
| Acceptable Range: | +6.0-8.0 | +
| Buffer Solution: | +{{ qc_record.buffer_solution|default:"Not specified" }} | +
| Culture Medium: | +{{ qc_record.culture_medium|default:"Not specified" }} | +
| Incubation Period: | +{{ qc_record.incubation_period|default:"Standard" }} | +
| Growth Observed: | ++ {% if qc_record.result == 'passed' %} + No growth + {% else %} + Growth detected + {% endif %} + | +
| Hemolysis Percentage: | +{{ qc_record.hemolysis_percentage|default:"Not recorded" }}% | +
| Acceptable Limit: | +< 0.8% | +
| Visual Assessment: | +{{ qc_record.visual_assessment|default:"Not recorded" }} | +
| Equipment Calibrated: | ++ {% if qc_record.equipment_calibrated %} + Yes + {% else %} + No + {% endif %} + | +
| SOP Followed: | ++ {% if qc_record.sop_followed %} + Yes + {% else %} + No + {% endif %} + | +
| Controls Passed: | ++ {% if qc_record.controls_passed %} + Yes + {% else %} + No + {% endif %} + | +
Last 10 test results showing trend over time
+| QC ID | +Test Type | +Sample/Unit | +Test Date | +Tested By | +Result | +Values | +Compliance | +Verified | +Actions | +
|---|---|---|---|---|---|---|---|---|---|
| + + {{ qc.qc_id }} + + | +{{ qc.get_test_type_display }} | +
+ {% if qc.blood_unit %}
+
+ {{ qc.blood_unit.unit_number }}
+
+ {{ qc.blood_unit.blood_group.display_name }} + {% else %} + {{ qc.sample_id }} + {% endif %} + |
+ {{ qc.test_date|date:"M d, Y H:i" }} | +{{ qc.tested_by.get_full_name }} | ++ {% if qc.result == 'passed' %} + {{ qc.get_result_display }} + {% elif qc.result == 'failed' %} + {{ qc.get_result_display }} + {% else %} + {{ qc.get_result_display }} + {% endif %} + | ++ {% if qc.test_type == 'temperature' %} + {{ qc.temperature_value }}°C + {% if qc.temperature_within_range %} + + {% else %} + + {% endif %} + {% elif qc.test_type == 'ph' %} + pH {{ qc.ph_value }} + {% elif qc.test_type == 'sterility' %} + {{ qc.get_sterility_result_display }} + {% elif qc.test_type == 'hemolysis' %} + {{ qc.hemolysis_percentage }}% + {% else %} + {{ qc.test_value|default:"-" }} + {% endif %} + | ++ {% if qc.is_compliant %} + + Compliant + + {% else %} + + Non-Compliant + + {% endif %} + | +
+ {% if qc.verified_by %}
+
+ {{ qc.verified_by.get_full_name }}
+
+ {{ qc.verified_at|date:"M d, H:i" }} + {% else %} + Pending + {% endif %} + |
+
+
+
+
+
+ {% if not qc.verified_by and qc.result != 'pending' %}
+
+ {% endif %}
+ {% if qc.result == 'failed' %}
+
+ {% endif %}
+
+ |
+
|
+
+
+
+ No quality control records found+Try adjusting your search criteria or create a new QC record. + + New QC Record + + |
+ |||||||||
+ Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ page_obj.paginator.count }} QC records +
+Stock levels, expiry tracking, location analysis
+Donor statistics, collection trends, demographics
+Usage patterns, patient outcomes, safety metrics
+QC results, compliance metrics, CAPA tracking
+No donations this month
+No recent alerts
+You are about to cancel a blood request.
+This action will:
+| Request Number: | +{{ blood_request.request_number }} | +
| Patient: | +{{ blood_request.patient.full_name }} ({{ blood_request.patient.patient_id }}) | +
| Blood Group: | +{{ blood_request.patient.blood_group.display_name }} | +
| Component: | +{{ blood_request.component.get_name_display }} | +
| Quantity: | +{{ blood_request.quantity_requested }} units | +
| Urgency: | ++ + {{ blood_request.get_urgency_display }} + + | +
| Requested By: | +{{ blood_request.requested_by.get_full_name }} | +
| Department: | +{{ blood_request.department.name }} | +
+ {{ blood_request.patient.full_name }} + ({{ blood_request.patient.patient_id }}) +
+| Request Number: | +{{ blood_request.request_number }} | +
| Request Date: | +{{ blood_request.request_date|date:"M d, Y H:i" }} | +
| Required By: | +
+ {{ blood_request.required_by|date:"M d, Y H:i" }}
+ {% if blood_request.is_overdue %}
+ Overdue + {% endif %} + |
+
| Department: | +{{ blood_request.requesting_department.name }} | +
| Requesting Physician: | +{{ blood_request.requesting_physician.get_full_name }} | +
| Component: | +{{ blood_request.component_requested.get_name_display }} | +
| Units Requested: | ++ {{ blood_request.units_requested }} + | +
| Patient Blood Group: | ++ {{ blood_request.patient_blood_group.display_name }} + | +
| Processed By: | +{{ blood_request.processed_by.get_full_name }} | +
| Processed At: | +{{ blood_request.processed_at|date:"M d, Y H:i" }} | +
| Patient ID: | +{{ blood_request.patient.patient_id }} | +
| Name: | +{{ blood_request.patient.full_name }} | +
| Age: | +{{ blood_request.patient.age }} years | +
| Gender: | +{{ blood_request.patient.get_gender_display }} | +
| Blood Group: | ++ {{ blood_request.patient_blood_group.display_name }} + | +
| Hemoglobin: | +{{ blood_request.hemoglobin_level }} g/dL | +
| Platelet Count: | +{{ blood_request.platelet_count }}/μL | +
{{ blood_request.indication }}
+ + {% if blood_request.special_requirements %} +{{ blood_request.special_requirements }}
+ {% endif %} + + {% if blood_request.notes %} +{{ blood_request.notes }}
+ {% endif %} +Patient: {{ blood_request.patient_blood_group.display_name }}
+Compatible with: + {% if blood_request.patient_blood_group.abo_type == 'AB' %} + A, B, AB, O + {% elif blood_request.patient_blood_group.abo_type == 'A' %} + A, O + {% elif blood_request.patient_blood_group.abo_type == 'B' %} + B, O + {% else %} + O only + {% endif %} +
+Patient: {{ blood_request.patient_blood_group.rh_factor|title }}
+Compatible with: + {% if blood_request.patient_blood_group.rh_factor == 'positive' %} + Positive, Negative + {% else %} + Negative only + {% endif %} +
+| Unit Number | +Blood Group | +Component | +Issue Date | +Issued To | +Expiry Time | +Status | +Actions | +
|---|---|---|---|---|---|---|---|
| + + {{ issue.blood_unit.unit_number }} + + | ++ {{ issue.blood_unit.blood_group.display_name }} + | +{{ issue.blood_unit.component.get_name_display }} | +{{ issue.issue_date|date:"M d, Y H:i" }} | +{{ issue.issued_to.get_full_name }} | +
+ {{ issue.expiry_time|date:"M d, Y H:i" }}
+ {% if issue.is_expired %}
+ Expired + {% endif %} + |
+ + {% if issue.returned %} + Returned + {% elif issue.is_expired %} + Expired + {% else %} + Active + {% endif %} + | ++ {% if not issue.returned and not issue.is_expired %} + + + + {% endif %} + | +
No blood units have been issued for this request yet.
+ {% if blood_request.status in 'pending,processing,ready' %} + + Issue First Unit + + {% endif %} +
+ {{ blood_request.request_date|date:"M d, Y H:i" }}
+ Request submitted by {{ blood_request.requesting_physician.get_full_name }}
+
+ {% if blood_request.processed_at %}
+ {{ blood_request.processed_at|date:"M d, Y H:i" }}
+ {% endif %}
+ Blood bank staff began processing the request
+
+ Compatible blood units identified and ready for issue +
++ Blood units issued to clinical staff +
++ All requested units have been successfully transfused +
++ Request was cancelled and no units were issued +
+| Request # | +Patient | +Department | +Component | +Units | +Blood Group | +Urgency | +Status | +Request Date | +Required By | +Actions | +
|---|---|---|---|---|---|---|---|---|---|---|
| + + {{ blood_request.request_number }} + + | +
+ {{ blood_request.patient.full_name }}
+ {{ blood_request.patient.patient_id }} + |
+ {{ blood_request.requesting_department.name }} | +{{ blood_request.component_requested.get_name_display }} | ++ {{ blood_request.units_requested }} + | ++ {{ blood_request.patient_blood_group.display_name }} + | ++ {% if blood_request.urgency == 'emergency' %} + + {{ blood_request.get_urgency_display }} + + {% elif blood_request.urgency == 'urgent' %} + + {{ blood_request.get_urgency_display }} + + {% else %} + {{ blood_request.get_urgency_display }} + {% endif %} + | ++ {% if blood_request.status == 'pending' %} + {{ blood_request.get_status_display }} + {% elif blood_request.status == 'processing' %} + {{ blood_request.get_status_display }} + {% elif blood_request.status == 'ready' %} + {{ blood_request.get_status_display }} + {% elif blood_request.status == 'issued' %} + {{ blood_request.get_status_display }} + {% elif blood_request.status == 'completed' %} + {{ blood_request.get_status_display }} + {% elif blood_request.status == 'cancelled' %} + {{ blood_request.get_status_display }} + {% endif %} + | +{{ blood_request.request_date|date:"M d, Y H:i" }} | +
+ {{ blood_request.required_by|date:"M d, Y H:i" }}
+ {% if blood_request.is_overdue %}
+ Overdue + {% endif %} + |
+ + + | +
|
+
+
+
+ No blood requests found+Try adjusting your search criteria or create a new request. + + Create Request + + |
+ ||||||||||
+ Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ page_obj.paginator.count }} requests +
+Blood Unit: {{ transfusion.blood_unit.unit_number }}
+Component: {{ transfusion.blood_unit.component.get_name_display }}
+Blood Group: {{ transfusion.blood_unit.blood_group.display_name }}
+Started: {{ transfusion.start_time|date:"M d, Y H:i" }}
+ {% if transfusion.end_time %} +Completed: {{ transfusion.end_time|date:"M d, Y H:i" }}
+Duration: {{ transfusion.duration_minutes }} minutes
+ {% else %} +Elapsed: {{ transfusion.elapsed_minutes }} minutes
+Status: {{ transfusion.get_status_display }}
+ {% endif %} +Severity: {{ reaction.get_severity_display }}
+Symptoms: {{ reaction.symptoms }}
+Time: {{ reaction.onset_time|date:"H:i" }}
+Treatment: {{ reaction.treatment_given }}
+ {% endif %} +Transfusion proceeding without complications
+Started by {{ transfusion.started_by.get_full_name }}
+BP: {{ vitals.blood_pressure }}, HR: {{ vitals.heart_rate }}, Temp: {{ vitals.temperature }}°C
+{{ reaction.get_reaction_type_display }} - {{ reaction.get_severity_display }}
+
+ Volume transfused: {{ transfusion.volume_transfused }} ml
+ {% if transfusion.completion_notes %}
+
Notes: {{ transfusion.completion_notes }}
+ {% endif %}
+
| Transfusion ID: | +{{ transfusion.transfusion_id }} | +
| Blood Unit: | ++ + {{ transfusion.blood_unit.unit_number }} + + | +
| Component: | +{{ transfusion.blood_unit.component.get_name_display }} | +
| Volume: | +{{ transfusion.blood_unit.volume_ml }} ml | +
| Rate: | +{{ transfusion.transfusion_rate|default:"Standard" }} ml/hr | +
| Started By: | +{{ transfusion.started_by.get_full_name }} | +
| Completed By: | +{{ transfusion.completed_by.get_full_name }} | +
| Name: | ++ + {{ transfusion.patient.full_name }} + + | +
| Patient ID: | +{{ transfusion.patient.patient_id }} | +
| Blood Group: | ++ {{ transfusion.patient.blood_group.display_name|default:"Unknown" }} + | +
| Age: | +{{ transfusion.patient.age }} years | +
| Weight: | +{{ transfusion.patient.weight|default:"Not recorded" }} kg | +
| Patient | +Blood Unit | +Component | +Start Time | +Duration | +Volume | +Status | +Vital Signs | +Reactions | +Actions | +
|---|---|---|---|---|---|---|---|---|---|
|
+
+ {{ transfusion.patient.full_name }}
+
+ {{ transfusion.patient.patient_id }} + |
+
+
+ {{ transfusion.blood_unit.unit_number }}
+
+ {{ transfusion.blood_unit.blood_group.display_name }} + |
+ {{ transfusion.blood_unit.component.get_name_display }} | +{{ transfusion.start_time|date:"M d, Y H:i" }} | ++ {% if transfusion.end_time %} + {{ transfusion.duration_minutes }} min + {% elif transfusion.status == 'in_progress' %} + {{ transfusion.elapsed_minutes }} min + {% else %} + - + {% endif %} + | +
+ {{ transfusion.volume_transfused|default:"-" }} / {{ transfusion.blood_unit.volume_ml }} ml
+ {% if transfusion.status == 'in_progress' %}
+
+
+
+ {% endif %}
+ |
+ + {% if transfusion.status == 'in_progress' %} + {{ transfusion.get_status_display }} + {% elif transfusion.status == 'completed' %} + {{ transfusion.get_status_display }} + {% elif transfusion.status == 'stopped' %} + {{ transfusion.get_status_display }} + {% elif transfusion.status == 'cancelled' %} + {{ transfusion.get_status_display }} + {% endif %} + | +
+ {% if transfusion.latest_vitals %}
+
+ BP: {{ transfusion.latest_vitals.blood_pressure }}
+ {% else %}
+ No vitals
+ {% endif %}
+ + HR: {{ transfusion.latest_vitals.heart_rate }} + Temp: {{ transfusion.latest_vitals.temperature }}°C + |
+ + {% if transfusion.has_adverse_reactions %} + + {{ transfusion.adverse_reaction_count }} + + {% else %} + None + {% endif %} + | +
+
+
+
+
+ {% if transfusion.status == 'in_progress' %}
+
+
+ {% endif %}
+
+ |
+
|
+
+
+
+ No transfusions found+Try adjusting your search criteria or start a new transfusion. + + Start Transfusion + + |
+ |||||||||
+ Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ page_obj.paginator.count }} transfusions +
+This action cannot be undone and may have serious implications for patient safety and regulatory compliance.
+| Unit Number: | +{{ blood_unit.unit_number }} | +
| Blood Group: | +{{ blood_unit.blood_group.display_name }} | +
| Component: | +{{ blood_unit.component.get_name_display }} | +
| Volume: | +{{ blood_unit.volume_ml }} ml | +
| Status: | ++ + {{ blood_unit.get_status_display }} + + | +
| Donor: | ++ + {{ blood_unit.donor.full_name }} + + | +
| Collection Date: | +{{ blood_unit.collection_date|date:"M d, Y" }} | +
| Expiry Date: | +{{ blood_unit.expiry_date|date:"M d, Y" }} | +
| Location: | +{{ blood_unit.location.name }} | +
| Created: | +{{ blood_unit.created_at|date:"M d, Y H:i" }} | +
+ Consider these alternatives instead of permanent deletion: +
+Preserve all data while removing from active inventory
+ +Change status to reflect current condition
+ +{{ blood_unit.component.get_name_display }}
+| Blood Group: | ++ {{ blood_unit.blood_group.display_name }} + | +
| Component: | +{{ blood_unit.component.get_name_display }} | +
| Volume: | +{{ blood_unit.volume_ml }} ml | +
| Collection Date: | +{{ blood_unit.collection_date|date:"M d, Y H:i" }} | +
| Expiry Date: | +
+ {{ blood_unit.expiry_date|date:"M d, Y" }}
+ {% if blood_unit.days_to_expiry <= 3 and blood_unit.status == 'available' %}
+ {{ blood_unit.days_to_expiry }} days left + {% elif blood_unit.is_expired %} + Expired + {% endif %} + |
+
| Location: | +{{ blood_unit.location }} | +
| Bag Type: | +{{ blood_unit.bag_type }} | +
| Anticoagulant: | +{{ blood_unit.anticoagulant }} | +
| Collection Site: | +{{ blood_unit.collection_site }} | +
| Collected By: | +{{ blood_unit.collected_by.get_full_name }} | +
{{ blood_unit.notes }}
+ {% endif %} +| Donor ID: | +{{ blood_unit.donor.donor_id }} | +
| Name: | +{{ blood_unit.donor.full_name }} | +
| Age: | +{{ blood_unit.donor.age }} years | +
| Gender: | +{{ blood_unit.donor.get_gender_display }} | +
| Phone: | +{{ blood_unit.donor.phone }} | +
| Total Donations: | +{{ blood_unit.donor.total_donations }} | +
+ {{ blood_unit.collection_date|date:"M d, Y H:i" }}
+ Blood unit collected from donor {{ blood_unit.donor.full_name }}
+
+ {{ tests.first.test_date|date:"M d, Y H:i" }}
+ Laboratory testing initiated
+
+ Unit placed in quarantine pending test results +
++ Unit cleared for transfusion and available in inventory +
++ Unit issued for patient transfusion +
++ Unit successfully transfused to patient +
++ Unit removed from inventory +
+| Test Type | +Result | +Test Date | +Tested By | +Equipment | +Verified | +
|---|---|---|---|---|---|
| {{ test.get_test_type_display }} | ++ {% if test.result == 'positive' %} + {{ test.get_result_display }} + {% elif test.result == 'negative' %} + {{ test.get_result_display }} + {% elif test.result == 'indeterminate' %} + {{ test.get_result_display }} + {% else %} + {{ test.get_result_display }} + {% endif %} + | +{{ test.test_date|date:"M d, Y H:i" }} | +{{ test.tested_by.get_full_name }} | +{{ test.equipment_used|default:"-" }} | +
+ {% if test.verified_by %}
+
+ {{ test.verified_by.get_full_name }}
+
+ {{ test.verified_at|date:"M d, Y H:i" }} + {% else %} + Pending + {% endif %} + |
+
No laboratory tests have been performed on this unit yet.
+ {% if blood_unit.status in 'collected,testing,quarantine' %} + + Add First Test + + {% endif %} +| Patient | +Test Type | +Compatibility | +Test Date | +Tested By | +Verified | +
|---|---|---|---|---|---|
|
+ {{ crossmatch.recipient.full_name }}
+ {{ crossmatch.recipient.patient_id }} + |
+ {{ crossmatch.get_test_type_display }} | ++ {% if crossmatch.compatibility == 'compatible' %} + {{ crossmatch.get_compatibility_display }} + {% elif crossmatch.compatibility == 'incompatible' %} + {{ crossmatch.get_compatibility_display }} + {% else %} + {{ crossmatch.get_compatibility_display }} + {% endif %} + | +{{ crossmatch.test_date|date:"M d, Y H:i" }} | +{{ crossmatch.tested_by.get_full_name }} | ++ {% if crossmatch.verified_by %} + + Verified + + {% else %} + Pending + {% endif %} + | +
No crossmatch tests have been performed for this unit.
+{{ blood_unit.component.get_name_display }}
+| Blood Group: | ++ {{ blood_unit.blood_group.display_name }} + | +
| Component: | +{{ blood_unit.component.get_name_display }} | +
| Volume: | +{{ blood_unit.volume_ml }} ml | +
| Collection Date: | +{{ blood_unit.collection_date|date:"M d, Y H:i" }} | +
| Expiry Date: | +
+ {{ blood_unit.expiry_date|date:"M d, Y" }}
+ {% if blood_unit.days_to_expiry <= 3 and blood_unit.status == 'available' %}
+ {{ blood_unit.days_to_expiry }} days left + {% elif blood_unit.is_expired %} + Expired + {% endif %} + |
+
| Location: | +{{ blood_unit.location }} | +
| Bag Type: | +{{ blood_unit.bag_type }} | +
| Anticoagulant: | +{{ blood_unit.anticoagulant }} | +
| Collection Site: | +{{ blood_unit.collection_site }} | +
| Collected By: | +{{ blood_unit.collected_by.get_full_name }} | +
{{ blood_unit.notes }}
+ {% endif %} +| Donor ID: | +{{ blood_unit.donor.donor_id }} | +
| Name: | +{{ blood_unit.donor.full_name }} | +
| Age: | +{{ blood_unit.donor.age }} years | +
| Gender: | +{{ blood_unit.donor.get_gender_display }} | +
| Phone: | +{{ blood_unit.donor.phone }} | +
| Total Donations: | +{{ blood_unit.donor.total_donations }} | +
+ {{ blood_unit.collection_date|date:"M d, Y H:i" }}
+ Blood unit collected from donor {{ blood_unit.donor.full_name }}
+
+ {{ tests.first.test_date|date:"M d, Y H:i" }}
+ Laboratory testing initiated
+
+ Unit placed in quarantine pending test results +
++ Unit cleared for transfusion and available in inventory +
++ Unit issued for patient transfusion +
++ Unit successfully transfused to patient +
++ Unit removed from inventory +
+| Test Type | +Result | +Test Date | +Tested By | +Equipment | +Verified | +
|---|---|---|---|---|---|
| {{ test.get_test_type_display }} | ++ {% if test.result == 'positive' %} + {{ test.get_result_display }} + {% elif test.result == 'negative' %} + {{ test.get_result_display }} + {% elif test.result == 'indeterminate' %} + {{ test.get_result_display }} + {% else %} + {{ test.get_result_display }} + {% endif %} + | +{{ test.test_date|date:"M d, Y H:i" }} | +{{ test.tested_by.get_full_name }} | +{{ test.equipment_used|default:"-" }} | +
+ {% if test.verified_by %}
+
+ {{ test.verified_by.get_full_name }}
+
+ {{ test.verified_at|date:"M d, Y H:i" }} + {% else %} + Pending + {% endif %} + |
+
No laboratory tests have been performed on this unit yet.
+ {% if blood_unit.status in 'collected,testing,quarantine' %} + + Add First Test + + {% endif %} +| Patient | +Test Type | +Compatibility | +Test Date | +Tested By | +Verified | +
|---|---|---|---|---|---|
|
+ {{ crossmatch.recipient.full_name }}
+ {{ crossmatch.recipient.patient_id }} + |
+ {{ crossmatch.get_test_type_display }} | ++ {% if crossmatch.compatibility == 'compatible' %} + {{ crossmatch.get_compatibility_display }} + {% elif crossmatch.compatibility == 'incompatible' %} + {{ crossmatch.get_compatibility_display }} + {% else %} + {{ crossmatch.get_compatibility_display }} + {% endif %} + | +{{ crossmatch.test_date|date:"M d, Y H:i" }} | +{{ crossmatch.tested_by.get_full_name }} | ++ {% if crossmatch.verified_by %} + + Verified + + {% else %} + Pending + {% endif %} + | +
No crossmatch tests have been performed for this unit.
+| Unit Number | +Donor | +Blood Group | +Component | +Collection Date | +Expiry Date | +Volume (ml) | +Status | +Location | +Days to Expiry | +Actions | +
|---|---|---|---|---|---|---|---|---|---|---|
| + + {{ unit.unit_number }} + + | +
+
+ {{ unit.donor.full_name }}
+
+ + {{ unit.donor.donor_id }} + |
+ + {{ unit.blood_group.display_name }} + | +{{ unit.component.get_name_display }} | +{{ unit.collection_date|date:"M d, Y H:i" }} | +
+ {{ unit.expiry_date|date:"M d, Y" }}
+ {% if unit.days_to_expiry <= 3 and unit.status == 'available' %}
+ Expiring Soon + {% elif unit.is_expired %} + Expired + {% endif %} + |
+ {{ unit.volume_ml }} | ++ {% if unit.status == 'available' %} + {{ unit.get_status_display }} + {% elif unit.status == 'expired' %} + {{ unit.get_status_display }} + {% elif unit.status == 'issued' %} + {{ unit.get_status_display }} + {% elif unit.status == 'transfused' %} + {{ unit.get_status_display }} + {% elif unit.status == 'discarded' %} + {{ unit.get_status_display }} + {% else %} + {{ unit.get_status_display }} + {% endif %} + | +{{ unit.location }} | ++ {% if unit.is_expired %} + Expired + {% elif unit.days_to_expiry <= 3 %} + {{ unit.days_to_expiry }} days + {% else %} + {{ unit.days_to_expiry }} days + {% endif %} + | ++ + | +
|
+
+
+
+ No blood units found+Try adjusting your search criteria or register a new blood unit. + + Register Blood Unit + + |
+ ||||||||||
+ Showing {{ page_obj.start_index }} to {{ page_obj.end_index }} of {{ page_obj.paginator.count }} blood units +
+| Time | +Patient | +Procedure | +Room | +Surgeon | +Status | +Actions | +||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
+ {{ case.scheduled_start|date:"H:i" }}
+ {{ case.estimated_duration }} min
+ |
+
+ {{ case.patient.get_full_name }}
+ {{ case.patient.mrn }}
+ |
+
+ {{ case.primary_procedure|truncatechars:30 }}
+ {% if case.case_type == 'EMERGENCY' %}
+ Emergency
+ {% elif case.case_type == 'URGENT' %}
+ Urgent
+ {% endif %}
+ |
+ + {% if case.operating_room %} + {{ case.operating_room.room_number }} + {% else %} + TBD + {% endif %} + | +
+ {% if case.primary_surgeon %}
+ {{ case.primary_surgeon.get_full_name }}
+ {% else %}
+ N/A
+ {% endif %}
+ |
+ + + {{ case.get_status_display }} + + | +
+
+
+
-
-
-
- {% if todays_schedule %}
-
+ {% if case.status == 'SCHEDULED' %}
+
+ {% endif %}
+
+
-
- {% else %}
-
-
-
- {% endif %}
- No cases scheduled for today. - - Schedule a Case - - |
+
No operating rooms configured.
- - Add Room - -No cases scheduled for today.
+ + Schedule a Case +No recent activity.
-No operating rooms configured.
+ + Add Room + +No recent activity.
+