diff --git a/code/game/machinery/computer/Operating.dm b/code/game/machinery/computer/Operating.dm
index ca2f6e1cb6..e94ba0e48a 100644
--- a/code/game/machinery/computer/Operating.dm
+++ b/code/game/machinery/computer/Operating.dm
@@ -1,3 +1,4 @@
+<<<<<<< HEAD
/obj/machinery/computer/operating
name = "operating computer"
desc = "Used to monitor the vitals of a patient during surgery."
@@ -72,3 +73,77 @@
dat += "
"
dat += ""
return dat
+=======
+/obj/machinery/computer/operating
+ name = "operating computer"
+ desc = "Used to monitor the vitals of a patient during surgery."
+ icon_screen = "crew"
+ icon_keyboard = "med_key"
+ circuit = /obj/item/circuitboard/computer/operating
+ var/mob/living/carbon/human/patient
+ var/obj/structure/table/optable/table
+ light_color = LIGHT_COLOR_BLUE
+
+/obj/machinery/computer/operating/Initialize()
+ . = ..()
+ find_table()
+
+/obj/machinery/computer/operating/proc/find_table()
+ for(var/dir in GLOB.cardinals)
+ table = locate(/obj/structure/table/optable, get_step(src, dir))
+ if(table)
+ table.computer = src
+ break
+
+/obj/machinery/computer/operating/ui_interact(mob/user, ui_key = "main", datum/tgui/ui = null, force_open = 0, datum/tgui/master_ui = null, datum/ui_state/state = GLOB.default_state)
+ ui = SStgui.try_update_ui(user, src, ui_key, ui, force_open)
+ if(!ui)
+ ui = new(user, src, ui_key, "operating_computer", name, 350, 470, master_ui, state)
+ ui.open()
+
+/obj/machinery/computer/operating/ui_data(mob/user)
+ var/list/data = list()
+ data["table"] = table
+ if(table)
+ data["patient"] = list()
+ if(table.check_patient())
+ patient = table.patient
+ switch(patient.stat)
+ if(CONSCIOUS)
+ data["patient"]["stat"] = "Conscious"
+ data["patient"]["statstate"] = "good"
+ if(SOFT_CRIT)
+ data["patient"]["stat"] = "Conscious"
+ data["patient"]["statstate"] = "average"
+ if(UNCONSCIOUS)
+ data["patient"]["stat"] = "Unconscious"
+ data["patient"]["statstate"] = "average"
+ if(DEAD)
+ data["patient"]["stat"] = "Dead"
+ data["patient"]["statstate"] = "bad"
+ data["patient"]["health"] = patient.health
+ data["patient"]["blood_type"] = patient.dna.blood_type
+ data["patient"]["maxHealth"] = patient.maxHealth
+ data["patient"]["minHealth"] = HEALTH_THRESHOLD_DEAD
+ data["patient"]["bruteLoss"] = patient.getBruteLoss()
+ data["patient"]["fireLoss"] = patient.getFireLoss()
+ data["patient"]["toxLoss"] = patient.getToxLoss()
+ data["patient"]["oxyLoss"] = patient.getOxyLoss()
+ if(patient.surgeries.len)
+ data["procedures"] = list()
+ for(var/datum/surgery/procedure in patient.surgeries)
+ var/datum/surgery_step/surgery_step = procedure.get_surgery_step()
+ var/alternative_step
+ if(surgery_step.repeatable)
+ var/datum/surgery_step/next_step = procedure.get_surgery_next_step()
+ if(next_step)
+ alternative_step = capitalize(next_step.name)
+ else
+ alternative_step = "Finish operation"
+ data["procedures"] += list(list(
+ "name" = capitalize(procedure.name),
+ "next_step" = capitalize(surgery_step.name),
+ "alternative_step" = alternative_step
+ ))
+ return data
+>>>>>>> a683ab6... Makes the operation computer tgui (#32775)
diff --git a/tgui/src/interfaces/operating_computer.ract b/tgui/src/interfaces/operating_computer.ract
new file mode 100644
index 0000000000..f445427ba8
--- /dev/null
+++ b/tgui/src/interfaces/operating_computer.ract
@@ -0,0 +1,46 @@
+{{#unless data.table}}
+
+ No table detected!
+
+{{/unless}}
+
+
+ {{#if data.patient}}
+
+ {{data.patient.stat}}
+
+
+ {{data.patient.blood_type}}
+
+
+ {{Math.round(adata.patient.health)}}
+
+ {{#each [{label: "Brute", type: "bruteLoss"}, {label: "Burn", type: "fireLoss"}, {label: "Toxin", type: "toxLoss"}, {label: "Respiratory", type: "oxyLoss"}]}}
+
+ {{Math.round(adata.patient[type])}}
+
+ {{/each}}
+ {{else}}
+ No patient detected.
+ {{/if}}
+
+
+ {{#if data.procedures}}
+ {{#each data.procedures}}
+
+
+ {{next_step}}
+
+ {{#if alternative_step}}
+
+ {{alternative_step}}
+
+ {{/if}}
+
+ {{/each}}
+ {{else}}
+ No active procedures.
+ {{/if}}
+
+