Project Hospital
Would you like to react to this message? Create an account in a few clicks or log in to continue.

Go down
igor.oxymoron
igor.oxymoron
developer
Posts : 347
Reputation : 25
Join date : 2018-03-23
Location : Czech republic

Modding tutorial - Database - Surgeries Empty Modding tutorial - Database - Surgeries

Tue Jul 30, 2019 9:42 am

Surgeries


Surgeries are a special type of treatments. We recommend moving to this step after having created a few other new items in the database first (a diagnosis, symptoms, treatments etc).
All prerequisites can be found in https://projecthospital.forumotion.com/t1940-modding-tutorial-medical-database#7286

ID - TRT_... -again must be unique
<AbbreviationLocID> - localization
<DiscomfortLevel> - None/Low/Medium/High

<StaffSelectionRules> - set to DEFAULT_ROOMS
<RequiredSkillsToPrescribe> - doctor's skills to prescribe this surgery

<RequiredDoctorQualificationList> - list of all doctor's skills involved in performing surgery
<RequiredDoctorRoles> -  list of all doctor's roles involved in performing surgery

<RequiredNurseQualificationList> - list of all nurses' skills involved in performing surgery (2 nurses with the same skill = 2x ref)
<RequiredNurseRoles> -  list of all nurses' roles involved in performing surgery

<RequiredRoomTags> - room type tag (has to be  <Tag>operating_room</Tag>)

<BedPositionsStaff> - positions of personnel around the operating table (more in the example)

<Complications> - contains possible post-op complications (symptoms) with their corresponding parameters (more in the example)

<RequiredEquipmentList> - complete list of all needed equipment (more in the example)

<ProcedureScript>
- ProcedureScriptTreatmentSurgery
- ProcedureScriptTreatmentSurgeryFracture
- ProcedureScriptTreatmentSurgeryFractureLegs
- ProcedureScriptTreatmentSurgeryLaparoEndo - with only 2 surgeons
- ProcedureScriptTreatmentSurgeryLigiCauterization - with only 2 surgeons
- ProcedureScriptTreatmentSurgeryNeurology

<EquipmentFromAnyDepartment>true</EquipmentFromAnyDepartment> - allows to surgical team from department A use operating theatre from department B

<TreatmentType>SURGERY</TreatmentType> - unique treatment type for surgeries

<HospitalizationTreatmentRef> - hospitalization level that is chosen for patient after surgery

Example - better than 1000 words:

Code:

    <GameDBTreatment ID="TRT_ABDOMINAL_SURGERY">
        <AbbreviationLocID>TRT_ABDOMINAL_SURGERY_DESCRIPTION</AbbreviationLocID>
        <DiscomfortLevel>High</DiscomfortLevel>
        <Procedure>
            <StaffSelectionRules>DEFAULT_ROOMS</StaffSelectionRules>
            <RequiredSkillsToPrescribe>
                <SkillRef>SKILL_DOC_SPEC_GENERAL_SURGERY</SkillRef>
            </RequiredSkillsToPrescribe>

            <RequiredDoctorQualificationList>
                <SkillRef>SKILL_DOC_SPEC_OPERATIVE_SURGERY</SkillRef>
                <SkillRef>SKILL_DOC_SPEC_ANESTHESIOLOGY</SkillRef>

                <!-- needs to be last so the anesthesiologist doesn't get selected as assistant-->
                <SkillRef>SKILL_DOC_SPEC_GENERAL_SURGERY</SkillRef>
            </RequiredDoctorQualificationList>

            <RequiredDoctorRoles>
                <RoleRef>EMPL_ROLE_SURGERY</RoleRef>
                <RoleRef>EMPL_ROLE_SURGERY_ANESTHESIOLOGY</RoleRef>
                <RoleRef>EMPL_ROLE_SURGERY_ASSIST</RoleRef>
            </RequiredDoctorRoles>

            <RequiredNurseQualificationList>
                <SkillRef>SKILL_NURSE_SPEC_MEDICAL_SURGERY</SkillRef>
                <SkillRef>SKILL_NURSE_SPEC_MEDICAL_SURGERY</SkillRef>
            </RequiredNurseQualificationList>

            <RequiredNurseRoles>
                <RoleRef>EMPL_ROLE_SURGERY_NURSE</RoleRef>
                <RoleRef>EMPL_ROLE_SURGERY_NURSE</RoleRef>
            </RequiredNurseRoles>

           <RequiredRoomTags>
                <Tag>operating_room</Tag>
            </RequiredRoomTags>

            <BedPositionsStaff>
                <MainSurgeonPosition>BODY_LEFT</MainSurgeonPosition>
                <SurgeonAsistantPosition>BODY_RIGHT</SurgeonAsistantPosition>
                <AnesthesiologistPosition>NONE</AnesthesiologistPosition>
                <SurgeryNursePosition>FEET_LEFT</SurgeryNursePosition>
                <AssistantNursePosition>FEET_RIGHT</AssistantNursePosition>
            </BedPositionsStaff>

            <Complications>
                <Complication>
                    <SymptomRef>SYM_ABSCESS</SymptomRef>
                    <ProbabilityPercent>10</ProbabilityPercent>
                </Complication>
                <Complication>
                    <SymptomRef>SYM_WOUND_INFECTION</SymptomRef>
                    <ProbabilityPercent>10</ProbabilityPercent>
                </Complication>
                <Complication>
                    <SymptomRef>SYM_ALVEOLAR_COLLAPSE</SymptomRef>
                    <ProbabilityPercent>10</ProbabilityPercent>
                </Complication>
                <Complication>
                    <SymptomRef>SYM_SEPSIS</SymptomRef>
                    <ProbabilityPercent>10</ProbabilityPercent>
                </Complication>
            </Complications>

            <RequiredEquipmentList>
                <RequiredEquipment>
                    <Tag>operating_table_head</Tag><!--0-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>operating_table_legs</Tag><!--1-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubbing_sink</Tag><!--2-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubbing_sink</Tag><!--3-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubbing_sink</Tag><!--4-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubs_shelf</Tag><!--5-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubs_shelf</Tag><!--6-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>scrubs_shelf</Tag><!--7-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>warming_cabinet</Tag><!--8-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>doc_equipment</Tag><!--9-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>surgery_instruments</Tag><!--10-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>electrocautery_machine</Tag><!--11-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>stool</Tag><!--12-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>anesthetic_machine</Tag><!--13-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>defibrillator</Tag><!--14-->
                </RequiredEquipment>
                <RequiredEquipment>
                    <Tag>succion_machine</Tag><!--15-->
                </RequiredEquipment>
            </RequiredEquipmentList>

            <ProcedureScript>ProcedureScriptTreatmentSurgery</ProcedureScript>
            <SpeechBubbleRef>BUBBLE_PLACEHOLDER</SpeechBubbleRef>
            <EquipmentFromAnyDepartment>true</EquipmentFromAnyDepartment>
        </Procedure>
        <TreatmentType>SURGERY</TreatmentType>
        <Cost>100</Cost>
        <IconIndex>1945</IconIndex>
        <HospitalizationTreatmentRef>TRT_HOSPITALIZATION_HIGH_PRIORITY</HospitalizationTreatmentRef>

    </GameDBTreatment>
avatar
bredabanaan
medic
Posts : 2
Reputation : 0
Join date : 2019-11-05

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Tue Nov 05, 2019 12:49 pm
Is it possible to enter multiple parameters in the <RequiredSkillsToPrescribe> Tag. If when that is the case and it is an OR-OR relationship it would be possible for instance to make anesthesiologists work at different derpartments (or create an anesthesiology department).

Also would it be possible to create a surgery that would be used as diagnostic purpose. So after the surgery a sample would for example be analyzed in the histology lab
igor.oxymoron
igor.oxymoron
developer
Posts : 347
Reputation : 25
Join date : 2018-03-23
Location : Czech republic

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Thu Nov 07, 2019 9:50 am
Hello!
1.) yes, indeed it is possible to enter multiple specializations in the <RequiredSkillsToPrescribe>, because it only determines who is able to prescribe some procedure (if you will put there "general medicine" skill it will be allowed for everyone)
2.) in game it is working a system of shared rooms, but no system of shared personel at this time, so anesthesiologist or any doctor can not work at 2 or more active departments.
3.) well during various development stages we have discussed this opportunity, but it is too complicated to fit this type of feature in actual gameplay, so sadly this is not possible.
avatar
MRPENGUINE
resident
Posts : 19
Reputation : -5
Join date : 2019-07-25

Modding tutorial - Database - Surgeries Empty surgery script

Sun Mar 22, 2020 3:42 pm
where is the surgery procedure script btw? is it possible to make a double or a transplant surgey?
jan.oxymoron
jan.oxymoron
developer
Posts : 2303
Reputation : 334
Join date : 2018-03-23

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Mon Mar 23, 2020 10:55 am
Hi, the actual surgery scripts are written in C# and are technically part of the game code. In either case, a surgery with two patients would be a very complicated feature even for us to implement and would require a lot of support from the other systems in the game (reservation of objects, coordination and priorities for the different patients, in the case of transplants a whole system of donors etc.), so I'm afraid this is not something that can be realistically modded in.
avatar
MRPENGUINE
resident
Posts : 19
Reputation : -5
Join date : 2019-07-25

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Tue Oct 20, 2020 11:02 am
Message reputation : 0% (1 vote)
how change to instant surgeries, without hospitalizations, especially the critical ones arriving from ambulance - first without having to wait on the lists?
DocDesastro
DocDesastro
specialist
Posts : 150
Reputation : 13
Join date : 2019-09-07
Location : Germany

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Mon Jan 24, 2022 11:25 pm
Is it possible to assign a surgery to more than one symptom? I am thinking about the possibility of creating a surgery for traumatology patients that come with more than one symptom needing surgery - and most likely, they are blinking, too. So basically saying a thoratic trauma can be treated with a thoratic surgery AND the new surgery called 'polytrauma surgery' curing all symptoms needing surgery at once. So basically, I might choose between both treatments for curing the symptom. The reasoning is, that patients in critical state are shipped back and forth from ward to operating theater until treatments are done with rising chance of collapsing because untreated symptoms will cause complications later on.
jan.oxymoron
jan.oxymoron
developer
Posts : 2303
Reputation : 334
Join date : 2018-03-23

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Tue Jan 25, 2022 10:47 am
Hi, from the top of my head yes, this should be possible - for each symptom you can fill in multiple treatments, so feel free to try to set up your surgery and add it to the matching symptoms. One more quick note, I think the AI doctors will be ordering the first treatment in the list of the given symptom, so that's something to bear in mind (but if your idea is to have the polytrauma surgery as something that the players will have to their disposal to use when it fits the situation, that should work pretty well).
avatar
frcalab
medic
Posts : 1
Reputation : 0
Join date : 2022-04-19

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Wed May 25, 2022 5:51 am
Is there any way to make a mod so that a surgery can pull nurses from the ICU to help out with surgery, similar to how they pull anesthesiologist from ICU if there is not one available in the department of the surgery? I believe this is accomplished via the <FallbackDoctorDepartments> in xmls. Is there an equivalent <FallbackNurseDepartments> ? I have been able to enable the surgery nurse role for ICU nurses but can't find a way to have them actually be selected for any surgeries.
jan.oxymoron
jan.oxymoron
developer
Posts : 2303
Reputation : 334
Join date : 2018-03-23

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Wed May 25, 2022 10:00 am
frcalab wrote:Is there any way to make a mod so that a surgery can pull nurses from the ICU to help out with surgery, similar to how they pull anesthesiologist from ICU if there is not one available in the department of the surgery? I believe this is accomplished via the <FallbackDoctorDepartments> in xmls. Is there an equivalent <FallbackNurseDepartments> ? I have been able to enable the surgery nurse role for ICU nurses but can't find a way to have them actually be selected for any surgeries.

Hi, this is an interesting idea, but unfortunately no. There's a lot of special paths in code to handle the 'borrowing' of anesthesiologists from the ICU, so a similar system would have to be coded for nurses and from what I remember, this would be way too complicated for me to suggest to try to add it via code modding.
Sponsored content

Modding tutorial - Database - Surgeries Empty Re: Modding tutorial - Database - Surgeries

Back to top
Permissions in this forum:
You cannot reply to topics in this forum