diff --git a/code/modules/mob/living/carbon/human/examine.dm b/code/modules/mob/living/carbon/human/examine.dm index 09e067afde2..673b5cb010b 100644 --- a/code/modules/mob/living/carbon/human/examine.dm +++ b/code/modules/mob/living/carbon/human/examine.dm @@ -374,6 +374,7 @@ if(hasHUD(user,MED_HUDTYPE)) var/perpname = "wot" var/medical = "None" + var/bloodtype = "Unknown" var/obj/item/card/id/ID = GetIdCard() if(ID) @@ -384,10 +385,12 @@ var/datum/record/general/R = SSrecords.find_record("name", perpname) if(istype(R)) medical = R.physical_status + bloodtype = R.medical.blood_type msg += "Physical Status: \[[medical]\]\n" msg += "Medical Records: \[View\] \[Add Comment\]\n" msg += "Triage Tag: \[[triage_tag]\]\n" + msg += "Blood type: [bloodtype]\n" if(print_flavor_text()) msg += "[print_flavor_text()]\n" diff --git a/code/modules/modular_computers/file_system/programs/generic/records.dm b/code/modules/modular_computers/file_system/programs/generic/records.dm index 32506850851..6c9a1b402e8 100644 --- a/code/modules/modular_computers/file_system/programs/generic/records.dm +++ b/code/modules/modular_computers/file_system/programs/generic/records.dm @@ -28,7 +28,7 @@ "physical_status" = list("Active", "*Deceased*", "*SSD*", "*Missing*", "Physically Unfit", "Disabled"), "criminal_status" = list("None", "*Arrest*", "Search", "Incarcerated", "Parolled", "Released"), "mental_status" = list("Stable", "*Insane*", "*Unstable*", "*Watch*"), - "medical" = list("A-", "B-", "AB-", "O-", "A+", "B+", "AB+", "O+", "SBS") + "blood_type" = list("A-", "B-", "AB-", "O-", "A+", "B+", "AB+", "O+", "SBS") ) /datum/computer_file/program/records/New() @@ -118,6 +118,7 @@ data["physical_status_options"] = typechoices["physical_status"] data["criminal_status_options"] = typechoices["criminal_status"] data["mental_status_options"] = typechoices["mental_status"] + data["blood_type_options"] = typechoices["blood_type"] data["medical_options"] = typechoices["medical"] data["allrecords"] = list() data["allrecords_locked"] = list() @@ -141,7 +142,7 @@ "religion" = R.religion, "employer" = R.employer, "notes" = html_decode(R.notes), - "blood" = R.medical ? R.medical.blood_type : null, + "blood_type" = R.medical ? R.medical.blood_type : null, "dna" = R.medical ? R.medical.blood_dna : null, "ccia_notes" = R.ccia_record, "ccia_actions" = R.ccia_actions, @@ -272,6 +273,9 @@ if("allergies") if(!(edit_type & RECORD_MEDICAL)) return FALSE + if("blood_type") + if(!(edit_type & RECORD_MEDICAL) || (edit_type & RECORD_SECURITY)) + return FALSE if("blood_dna") if(!(edit_type & RECORD_MEDICAL) || (edit_type & RECORD_SECURITY)) return FALSE diff --git a/html/changelogs/BloodTypeIsShown.yml b/html/changelogs/BloodTypeIsShown.yml new file mode 100644 index 00000000000..8d9250656f8 --- /dev/null +++ b/html/changelogs/BloodTypeIsShown.yml @@ -0,0 +1,7 @@ +author: TheGreyWolf + +delete-after: True + +changes: + - rscadd: "The medical records can now see and edit blood types." + - rscadd: "Medhuds now show blood types of people that are examined, based on their medical record." diff --git a/tgui/packages/tgui/interfaces/Records.tsx b/tgui/packages/tgui/interfaces/Records.tsx index 6b4db0369b8..8cff47a89ad 100644 --- a/tgui/packages/tgui/interfaces/Records.tsx +++ b/tgui/packages/tgui/interfaces/Records.tsx @@ -11,6 +11,7 @@ export type RecordsData = { physical_status_options: string[]; criminal_status_options: string[]; mental_status_options: string[]; + blood_type_options: string[]; medical_options: string[]; authenticated: BooleanLike; @@ -33,7 +34,7 @@ type Record = { age: string; fingerprint: string; has_notes: string; - blood: string; + blood_dna: string; dna: string; physical_status: string; mental_status: string; @@ -192,6 +193,11 @@ export const ListActive = (props, context) => { 'editingMentalStatus', false ); + const [editingBloodType, setEditingBloodType] = useLocalState( + context, + 'editingBloodType', + false + ); const [editingFingerprint, setEditingFingerprint] = useLocalState( context, 'editingFingerprint', @@ -476,6 +482,36 @@ export const ListActive = (props, context) => { {data.active.medical && recordTab === 'Medical' ? ( <> + + {data.editable & 1 || data.editable & 2 ? ( + + {editingBloodType ? ( + + act('editrecord', { + record_type: 'medical', + key: 'blood_type', + value: v, + }) + } + /> + ) : ( + + {data.active.medical.blood_type}  +