- igor.oxymorondeveloper
- Posts : 347
Reputation : 25
Join date : 2018-03-23
Location : Czech republic
Modding tutorial - Database - Medical Database
Mon Jul 15, 2019 1:59 pm
Hello everybody, let's have a look at how to add cotent to the medical side of the game database. This tutorial will cover how to add diagnoses, symptoms, main symptoms, examinations and treatments to Project Hospital and how the systems are working.
Basics to read first:
How to create new mods: https://projecthospital.forumotion.com/t1750-modding-tutorial-creating-new-mods
XML files belong to the Database folder under your mod's folder: \\Assets\StreamingAssets\Addons\ModName\Database\
To edit the xml files it's best to use a text editor with syntax highlighting like Notepad++.
TERMINOLOGY
Diagnosis = set of shared symptoms + only one unique main symptom
Shared symptoms - appear in many diagnoses - more shared symptoms in a diagnosis => higher diagnostics challenge
Main symptom - unique for each diagnosis
Examinations - uncover symptoms
Treatments - suppress symptoms
1. RESEARCH
If you want to add a specific diagnosis, do some research and try to create a set of symptoms that will define it - one main symptom that will confirm the diagnosis when uncovered, some new symptoms, some existing symptoms (compare your list to the in-game symptoms to prevent creating duplicates and save some future work using the existing symptoms, examinations and treatments).
The existing symptoms can be found in:
\\Assets\StreamingAssets\Database\Symptoms.xml
\\Assets\StreamingAssets\Database\Localization\StringTableEnSymptoms.xml
2. CREATING SYMPTOMS
Once we have compared our list to the existing symptoms, and we have one or more symptoms that are not present in actual database, we can start implementing them.
ID - SYM_... must be unique
<DescriptionLocID> - refers to description of current symptom
<DiscomfortLevel> - None/Low/Medium/High - how much is current symptom unpleasant for the character
<PatientComplains> - true/false - if set to "true" = it will be uncovered during interview
<Hazard> - connected with character's hospitalization
<PatientMobility> - MOBILE/IMOBILE/INTUBATED - can walk/can't walk/ can't walk nor speak
<Examinations> - if PatientComplains = true, there needs to be EXM_INTERVIEW first and than another specific examination; examinations can be found here:
\Assets\StreamingAssets\Database\Procedures\Examinations.xml
<Treatments> - choose a treatment that will suppress this symptom; treatments can be found here:
\Assets\StreamingAssets\Database\Procedures\Treatments.xml
// some symptoms, that are not hazardous, lethal, etc are allowed to not have defined treatment - simply symptoms that are trivial could appear without any treatment
<IsMainSymptom> (can be only one per diagnosis)
<IconIndex> - choose an existing icon for current symptom, for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example:
More specific parameters:
<Limping animation> - implement this parameter and character will be limp; speed modifier <0.1 - 1.0>
Deprecated, death is currently based on collapses, the patients have a higher and higher risk of dying after each critical collapse
Symptom cause collapse of the character, may lead to another symptom
3 - CREATING EXAMINATIONS
A) General examinations overview
ID - EXM_... - must be unique
<AbbreviationLocID> - localization
<DiscomfortLevel> - None/Low/Medium/High
<RequiredDoctorQualificationList>
<SkillRef> - doctor's skill needed to provide current examination; can be multiple; skills are localized here:
\Assets\StreamingAssets\Database\Skills.xml
<StaffSelectionRules> - where and who
REQUIRED_ROOM_OR_DEFAULT_ROOM - examinations provided by docs in clinics or hospitalization enviroment
REQUIRED_ROOM_IGNORE_DOCTOR - examinations provided by technicians, not docs
DEFAULT_ROOMS - doctors from on-call room are selected
<RequiredEquipmentList> - contains all objects needed for execution of examination; tags can be found:
\Assets\StreamingAssets\Database\Objects\Objects.xml
In this example you can see that examination is performed on the examination table, doc visits equipment cabinet and after examination he will wash his hands
<RequiredRoomTags> - the examination can be provided in any room with any of the tags. Make sure that required equipment in the rooms matches the list in the examination!
Room tags can be found in: \Assets\StreamingAssets\Database\RoomTypes.xml
Example - examination can be done in Doctor's office at Emergency, in Diagnostic units and offices at General Surgery and Internal Medicine department, in Observation and also in ICU:
<ProcedureScript> - specific examination script, there are a few different ones available in the game, usually supporting different types of equipment on the second place in the RequiredEquipment list
ProcedureScriptExaminationGeneral - script for simple examination, doc is using his hands
ProcedureScriptExaminationGeneralEquipment - script for simple examinations, where doc need to visit cabinet in order to choose some prop (cabinet has to be present in corresponding room)
ProcedureScriptExaminationSpecialEquipment - script for examination that are provided by some object/machine (object has to be present in corresponding room)
ProcedureScriptExaminationSmallEquipment - script for special examination, where both patient and doc are sitting near some machine (eg: EMG)
ProcedureScriptExaminationPhysicalChest - script for chest listening examination - doc is using stethoscope
ProcedureScriptExaminationUrineAnalysis - script for examinations like urine analysis or stool analysis, where patient is going to toilet to collect sample and than returns
ProcedureScriptExaminationVisualTest - script for visual test
ProcedureScriptExaminationRadiology - script for MRI and CT examminations
ProcedureScriptExaminationXray - script for X-ray examinations
ProcedureScriptExaminationAngiography - script for angiography examination
<AnimationSetupSitting> and <AnimationSetupLying> - in + idle + out animations; can be found:
\Assets\StreamingAssets\Database\AnimatedModelControllers.xml
<DressLevel> - patient's dress level during examination
FULL - no change
HALF - no pants
HALF_TOP - no shirt
<Biohazard> - true/false - if set to true, doc will use biohazard bin after examination
<Priority> - value that defines which examination is chosen by AI doc as first
0-20 - examinations like CT/MRI/USG - one room to prescribe. another room with machine to provide
20-30 - examination that partially are provided in office and partially in lab
30-40(50) - examination that are provided instantly in offices
<Cost> - deprecated, the player receives payments according to patient's diagnosis when they get released
<IconIndex> - choose icon for current examination - take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
<DurationHours>- how much does it takes to provide (hours); 0=instantly provided
Example:
B) Laboratory examinations overview
Main difference is that Laboratory examination has 2 parts
SAMPLING - provided in the office by the doc at some department
TESTING - provided in corresponding laboratory by technician at Lab department
<LabTestingExaminationRef> - there must be corresponding testing part of the sampling
Sampling example:
Testing parameters:
<RequiredStatLabQualificationRef> - refers to certain skill/specialization of lab technician; skills can be found:
\Assets\StreamingAssets\Database\Skills.xml
RequiredEquipment parameters:
<DurationHours> - refers to time, that will lab technician spend using specific machine/object
<BlocksSpecialist>
- if set to "true" - lab technician is blocked by object, can't do anything else
- if set to "false" - lab technician is not blocked, after using some object he can make anything else, he will come back when the use duration of the object is over (this is used for example for cultivations, where the samples need to be left alone for a bit)
<FallbackLabDepartmentRef> - must be set to DPT_LAB
Testing example:
C) Objects used in examinations
- includes examinations with some object involved
- examinations are prescribed by the doctor, but executed by lab technician
- objects that are used need to be present in the specified room/unit
Example:
D) X - ray / Angiography / Radiology examinations
use special scripts (step 3/A)
<RequiredEquipmentList> must include all parts of the object
there are some corresponding special animations for animated objects
<DetachedDepartmentRef> must be se to DPT_RADIOLOGY
Example:
4 - CREATING TREATMENTS
A) General treatments overview
ID - TRT_... must be unique ...
<AbbreviationLocID> - description
<DiscomfortLevel> - None/Low/Medium/High
<StaffSelectionRules> - like in examinations
REQUIRED_ROOM_OR_DEFAULT_ROOM - provided by doctors in clinics or hospitalization enviroment
DEFAULT_ROOMS - doctors from on-call room are selected
<RequiredSkillsToPrescribe> - contains all skills, that are needed for the prescription of the treatment
<RequiredDoctorQualificationList> - doctor's qualification or skill needed to prescribe and/or execute treatment
<RequiredRoomTypeList> contains all rooms, where can be treatment provided
<RequiredEquipmentList> contains all needed props- e.g.: receipt
<ProcedureScript> - specific treatment script
ProcedureScriptTreatmentPrescription - script for all prescription treatments - "advise patient and send home"
ProcedureScriptTreatmentReceipt - script for receipt treatments - "patient will obtain receipt or in some cases will be sent to some procedure and then will sent home" // read more
ProcedureScriptTreatmentProcedure - script for procedural treatments - "patient will enter some procedure"
ProcedureScriptTreatmentResuscitation - special script for resuscitation treatment procedures
<AnimationSetupSitting> - In + Idle + Out animation for specific treatment (not mandatory)
<DressLevel> - patient's dress level before treatment
<DressLevelAfter> - patient's dress level after treatment
FULL - no change
HALF - no pants
HALF_TOP - no shirt
<TreatmentType> - specific type of treatment
PRESCRIPTION - like the related script, patient will get some talk/advices
RECEIPT - patient will get receipt for some medicine or some
PROCEDURE - patient will get some procedure
In the case of "RECEIPT" treatment type - if not specified (or set to the default value PILLS), patient will get only a receipt to suppress a symptom; otherwise, it has to be specified by:
ReceiptType + HospitalizationTreatmentRef
<ReceiptType>IV_BAG</ReceiptType> - once the patient is hospitalized, they will get the medicine in an intravenous bag
<ReceiptType>BLOOD_BAG</ReceiptType> - once the patient is hospitalized, they will get a blood bag
<ReceiptType>OXYGEN_MASK</ReceiptType> - once the patient is hospitalized, they will get an oxygen mask
Does the treatment require the patient to be hospitalized first?
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_NORMAL</HospitalizationTreatmentRef> - normal hospitalization - valid for IV_BAG and also BLOOD_BAG
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_HIGH_PRIORITY</HospitalizationTreatmentRef> - HDU hospitalization - valid for all 3 types
// HospitalizationTreatmentRef can be defined also apart of ReceiptType, if you want specific treatment that can be done only on hospitalized patient
<AllowedWithAnyHospitalization> true/false - if you want to allow treatment on all types of hospitalization
<IconIndex> - choose icon for current treatment - for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example - Prescription:
Example - Receipt:
Example - IV BAG:
Object involved procedure
<RequiredSkillsToPrescribe> - contains skill of doctor that prescribes the examination
<RequiredStatLabQualificationRef> - lab technician's skill to provide
<RequiredEquipmentList> - has to contain tags of all requiered equipment
<AnimationSetupLying> / <AnimationSetupSitting> - animations
<DetachedDepartmentRef> - there must be referrence to department; can be found here:
\Assets\StreamingAssets\Database\Departments.xml
<HospitalizationTreatmentRef> - hospitalization type needed; can be found here:
\Assets\StreamingAssets\Database\Procedures\TreatmentsHospitalization.xml
5. COMPLETING THE DIAGNOSIS
ID
- use DIA_XYZ - when creatind some disease
- use TRM_XYZ - when creating trauma
<AbbreviationLocID> - actually localization ID of the description
<Duration> - deprecated
<OccurrenceRef> - category of the occurence rate of the disease
OCCURRENCE_COMMON
OCCURRENCE_UNCOMMON
OCCURRENCE_RARE
Symptoms:
<DayOfFirstOccurence> - always set to 0, experiments with new symptoms appearing over time weren't exactly successful
<ProbabilityPercent> - probability of presence of specific symptom in the set of symptoms that define diagnosis (10-100) - main symptom is always set to 100
<GameDBSymptomRef> - symptom's ID
<Examinations> - list of all examinations needed to discover every single symptom - list represents a recommended sequence of examinations for the AI doctor
<Treatments> - list of treatments that suppress mainly the main symptom and symptoms that are at High hazard
- it is necessary to put treatment for the main symptom at the first place of the sequence
<DepartmentRef> - set the department refference
// list of departments can be found at \Assets\StreamingAssets\Database\Departments.xml
Tags:
If patients with this diagnosis should spawn when the player only has clinic at this department:
if diagnosis can be treated at hospitalization:
<InsurancePayment> - how much money will you get if patient will be treated
<IconIndex> - choose icon for current symptom - for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example - clinic disease:
Example - Hospitalization disease:
6.SURGERIES (OPTIONAL)
https://projecthospital.forumotion.com/t1970-modding-tutorial-database-surgeries
Basics to read first:
How to create new mods: https://projecthospital.forumotion.com/t1750-modding-tutorial-creating-new-mods
XML files belong to the Database folder under your mod's folder: \\Assets\StreamingAssets\Addons\ModName\Database\
To edit the xml files it's best to use a text editor with syntax highlighting like Notepad++.
TERMINOLOGY
Diagnosis = set of shared symptoms + only one unique main symptom
Shared symptoms - appear in many diagnoses - more shared symptoms in a diagnosis => higher diagnostics challenge
Main symptom - unique for each diagnosis
Examinations - uncover symptoms
Treatments - suppress symptoms
1. RESEARCH
If you want to add a specific diagnosis, do some research and try to create a set of symptoms that will define it - one main symptom that will confirm the diagnosis when uncovered, some new symptoms, some existing symptoms (compare your list to the in-game symptoms to prevent creating duplicates and save some future work using the existing symptoms, examinations and treatments).
The existing symptoms can be found in:
\\Assets\StreamingAssets\Database\Symptoms.xml
\\Assets\StreamingAssets\Database\Localization\StringTableEnSymptoms.xml
2. CREATING SYMPTOMS
Once we have compared our list to the existing symptoms, and we have one or more symptoms that are not present in actual database, we can start implementing them.
ID - SYM_... must be unique
<DescriptionLocID> - refers to description of current symptom
<DiscomfortLevel> - None/Low/Medium/High - how much is current symptom unpleasant for the character
<PatientComplains> - true/false - if set to "true" = it will be uncovered during interview
<Hazard> - connected with character's hospitalization
- - Low - no need for hospitalization
- - Medium - normal priority hospitalization (increase priority by reception triage)
- - High - character is sent to HDU
<PatientMobility> - MOBILE/IMOBILE/INTUBATED - can walk/can't walk/ can't walk nor speak
<Examinations> - if PatientComplains = true, there needs to be EXM_INTERVIEW first and than another specific examination; examinations can be found here:
\Assets\StreamingAssets\Database\Procedures\Examinations.xml
<Treatments> - choose a treatment that will suppress this symptom; treatments can be found here:
\Assets\StreamingAssets\Database\Procedures\Treatments.xml
// some symptoms, that are not hazardous, lethal, etc are allowed to not have defined treatment - simply symptoms that are trivial could appear without any treatment
<IsMainSymptom> (can be only one per diagnosis)
- - true - only for main symptom of the disease/diagnosis
- - false - for all shared symptoms
<IconIndex> - choose an existing icon for current symptom, for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example:
- Code:
<GameDBSymptom ID="SYM_ANEMIA">
<DescriptionLocID>SYM_ANEMIA_DESCRIPTION</DescriptionLocID>
<DiscomfortLevel>None</DiscomfortLevel>
<PatientComplains>false</PatientComplains>
<Hazard>Low</Hazard>
<PatientMobility>MOBILE</PatientMobility>
<Examinations>
<ExaminationRef>EXM_BLOOD_TEST_TESTING</ExaminationRef>
</Examinations>
<Treatments>
<TreatmentRef>TRT_VITAMIN_SUPPLEMENTATION</TreatmentRef>
</Treatments>
<IsMainSymptom>false</IsMainSymptom>
<IconIndex>1499</IconIndex>
</GameDBSymptom>
More specific parameters:
<Limping animation> - implement this parameter and character will be limp; speed modifier <0.1 - 1.0>
- Code:
<WalkAnimSuffix>_limp</WalkAnimSuffix>
<WalkSpeedModifier>0.5</WalkSpeedModifier>
Deprecated, death is currently based on collapses, the patients have a higher and higher risk of dying after each critical collapse
- Code:
<RiskOfDeathStartHours>2</RiskOfDeathStartHours>
<RiskOfDeathEndHours>4</RiskOfDeathEndHours>
Symptom cause collapse of the character, may lead to another symptom
- Code:
<RiskOfCollapseStartHours>6</RiskOfCollapseStartHours>
<RiskOfCollapseEndHours>24</RiskOfCollapseEndHours>
<CollapseSymptomRef>SYM_SEPTIC_SHOCK</CollapseSymptomRef>
3 - CREATING EXAMINATIONS
A) General examinations overview
ID - EXM_... - must be unique
<AbbreviationLocID> - localization
<DiscomfortLevel> - None/Low/Medium/High
<RequiredDoctorQualificationList>
<SkillRef> - doctor's skill needed to provide current examination; can be multiple; skills are localized here:
\Assets\StreamingAssets\Database\Skills.xml
<StaffSelectionRules> - where and who
REQUIRED_ROOM_OR_DEFAULT_ROOM - examinations provided by docs in clinics or hospitalization enviroment
REQUIRED_ROOM_IGNORE_DOCTOR - examinations provided by technicians, not docs
DEFAULT_ROOMS - doctors from on-call room are selected
<RequiredEquipmentList> - contains all objects needed for execution of examination; tags can be found:
\Assets\StreamingAssets\Database\Objects\Objects.xml
In this example you can see that examination is performed on the examination table, doc visits equipment cabinet and after examination he will wash his hands
- Code:
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>sit_exam</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>doc_equipment</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>clean_hands</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags> - the examination can be provided in any room with any of the tags. Make sure that required equipment in the rooms matches the list in the examination!
Room tags can be found in: \Assets\StreamingAssets\Database\RoomTypes.xml
Example - examination can be done in Doctor's office at Emergency, in Diagnostic units and offices at General Surgery and Internal Medicine department, in Observation and also in ICU:
- Code:
<RequiredRoomTags>
<Tag>emergency_doctors_office</Tag>
<Tag>general_surgery_office</Tag>
<Tag>internal_medicine_office</Tag>
<Tag>observation</Tag>
<Tag>icu</Tag>
</RequiredRoomTags>
<ProcedureScript> - specific examination script, there are a few different ones available in the game, usually supporting different types of equipment on the second place in the RequiredEquipment list
ProcedureScriptExaminationGeneral - script for simple examination, doc is using his hands
ProcedureScriptExaminationGeneralEquipment - script for simple examinations, where doc need to visit cabinet in order to choose some prop (cabinet has to be present in corresponding room)
ProcedureScriptExaminationSpecialEquipment - script for examination that are provided by some object/machine (object has to be present in corresponding room)
ProcedureScriptExaminationSmallEquipment - script for special examination, where both patient and doc are sitting near some machine (eg: EMG)
ProcedureScriptExaminationPhysicalChest - script for chest listening examination - doc is using stethoscope
ProcedureScriptExaminationUrineAnalysis - script for examinations like urine analysis or stool analysis, where patient is going to toilet to collect sample and than returns
ProcedureScriptExaminationVisualTest - script for visual test
ProcedureScriptExaminationRadiology - script for MRI and CT examminations
ProcedureScriptExaminationXray - script for X-ray examinations
ProcedureScriptExaminationAngiography - script for angiography examination
<AnimationSetupSitting> and <AnimationSetupLying> - in + idle + out animations; can be found:
\Assets\StreamingAssets\Database\AnimatedModelControllers.xml
<DressLevel> - patient's dress level during examination
FULL - no change
HALF - no pants
HALF_TOP - no shirt
<Biohazard> - true/false - if set to true, doc will use biohazard bin after examination
<Priority> - value that defines which examination is chosen by AI doc as first
0-20 - examinations like CT/MRI/USG - one room to prescribe. another room with machine to provide
20-30 - examination that partially are provided in office and partially in lab
30-40(50) - examination that are provided instantly in offices
<Cost> - deprecated, the player receives payments according to patient's diagnosis when they get released
<IconIndex> - choose icon for current examination - take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
<DurationHours>- how much does it takes to provide (hours); 0=instantly provided
Example:
- Code:
<GameDBExamination ID="EXM_BLOOD_PRESSURE_AND_PULSE_MEASUREMENT">
<AbbreviationLocID>EXM_BLOOD_PRESSURE_AND_PULSE_MEASUREMENT_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>None</DiscomfortLevel>
<Procedure>
<RequiredDoctorQualificationList>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredDoctorQualificationList>
<StaffSelectionRules>REQUIRED_ROOM_OR_DEFAULT_ROOM</StaffSelectionRules>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>sit_exam</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>doc_equipment</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>examinations_basic_equipment</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptExaminationGeneralEquipment</ProcedureScript>
<AnimationSetupSitting>
<AnimationNameIn>stand_examination_in</AnimationNameIn>
<AnimationNameIdle>stand_examination_idle</AnimationNameIdle>
<AnimationNameOut>stand_examination_out</AnimationNameOut>
</AnimationSetupSitting>
<AnimationSetupLying>
<AnimationNameIn>stand_examination_in</AnimationNameIn>
<AnimationNameIdle>stand_examination_idle</AnimationNameIdle>
<AnimationNameOut>stand_examination_out</AnimationNameOut>
</AnimationSetupLying>
<DressLevel>FULL</DressLevel>
<Biohazard>false</Biohazard>
<Priority>40</Priority>
</Procedure>
<ExaminationType>EXAMINATION</ExaminationType>
<Cost>50</Cost>
<IconIndex>1699</IconIndex>
<DurationHours>0</DurationHours>
</GameDBExamination>
B) Laboratory examinations overview
Main difference is that Laboratory examination has 2 parts
SAMPLING - provided in the office by the doc at some department
TESTING - provided in corresponding laboratory by technician at Lab department
<LabTestingExaminationRef> - there must be corresponding testing part of the sampling
Sampling example:
- Code:
<GameDBExamination ID="EXM_BACTERIA_CULTIVATION_SAMPLING">
<AbbreviationLocID>EXM_BACTERIA_CULTIVATION_SAMPLING_DESCRIPTION_1_1</AbbreviationLocID>
<DiscomfortLevel>Low</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_OR_DEFAULT_ROOM</StaffSelectionRules>
<RequiredDoctorQualificationList>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredDoctorQualificationList>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>sit_exam</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>doc_equipment</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>clean_hands</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>examinations_basic_equipment</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptExaminationGeneralEquipment</ProcedureScript>
<AnimationSetupSitting>
<AnimationNameIn>stand_bacteria_cultivation_sampling_in</AnimationNameIn>
<AnimationNameIdle>stand_bacteria_cultivation_sampling_idle</AnimationNameIdle>
<AnimationNameOut>stand_bacteria_cultivation_sampling_out</AnimationNameOut>
</AnimationSetupSitting>
<AnimationSetupLying>
<AnimationNameIn>stand_examination_in</AnimationNameIn>
<AnimationNameIdle>stand_examination_idle</AnimationNameIdle>
<AnimationNameOut>stand_examination_out</AnimationNameOut>
</AnimationSetupLying>
<DressLevel>FULL</DressLevel>
<Biohazard>true</Biohazard>
<Priority>20</Priority>
</Procedure>
<ExaminationType>EXAMINATION</ExaminationType>
<Cost>50</Cost>
<IconIndex>1663</IconIndex>
<DurationHours>0</DurationHours>
<LabTestingExaminationRef>EXM_BACTERIA_CULTIVATION_TESTING</LabTestingExaminationRef>
</GameDBExamination>
Testing parameters:
<RequiredStatLabQualificationRef> - refers to certain skill/specialization of lab technician; skills can be found:
\Assets\StreamingAssets\Database\Skills.xml
RequiredEquipment parameters:
<DurationHours> - refers to time, that will lab technician spend using specific machine/object
<BlocksSpecialist>
- if set to "true" - lab technician is blocked by object, can't do anything else
- if set to "false" - lab technician is not blocked, after using some object he can make anything else, he will come back when the use duration of the object is over (this is used for example for cultivations, where the samples need to be left alone for a bit)
<FallbackLabDepartmentRef> - must be set to DPT_LAB
Testing example:
- Code:
<GameDBExamination ID="EXM_BACTERIA_CULTIVATION_TESTING">
<AbbreviationLocID>EXM_BACTERIA_CULTIVATION_TESTING_DESCRIPTION_1_1</AbbreviationLocID>
<DiscomfortLevel>None</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_IGNORE_DOCTOR</StaffSelectionRules>
<RequiredSkillsToPrescribe>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredSkillsToPrescribe>
<RequiredStatLabQualificationRef>SKILL_LAB_SPECIALIST_QUALIF_SCIENCE_EDUCATION</RequiredStatLabQualificationRef>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>stat_lab_exam</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>false</BlocksSpecialist>
</RequiredEquipment>
<RequiredEquipment>
<Tag>fume_hood</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>true</BlocksSpecialist>
</RequiredEquipment>
<RequiredEquipment>
<Tag>mic_incubator</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>false</BlocksSpecialist>
</RequiredEquipment>
<RequiredEquipment>
<Tag>microscope</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>false</BlocksSpecialist>
</RequiredEquipment>
<RequiredEquipment>
<Tag>biohazard_trash</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>true</BlocksSpecialist>
</RequiredEquipment>
<RequiredEquipment>
<Tag>clean_hands</Tag>
<DurationHours>0.1</DurationHours>
<BlocksSpecialist>true</BlocksSpecialist>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>deprecated_lab</Tag>
<Tag>microbiology_lab</Tag>
</RequiredRoomTags>
<AnimationSetupSitting>
<AnimationNameIn>move_start_upper_limb</AnimationNameIn>
<AnimationNameOut>move_end_upper_limb</AnimationNameOut>
</AnimationSetupSitting>
<DressLevel>FULL</DressLevel>
<Biohazard>true</Biohazard>
<Priority>20</Priority>
<FallbackLabDepartmentRef>DPT_LAB</FallbackLabDepartmentRef>
</Procedure>
<ExaminationType>EXAMINATION</ExaminationType>
<Cost>50</Cost>
<IconIndex>1663</IconIndex>
<DurationHours>0</DurationHours>
</GameDBExamination>
C) Objects used in examinations
- includes examinations with some object involved
- examinations are prescribed by the doctor, but executed by lab technician
- objects that are used need to be present in the specified room/unit
Example:
- Code:
<GameDBExamination ID="EXM_USG">
<AbbreviationLocID>EXM_USG_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>Low</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_IGNORE_DOCTOR</StaffSelectionRules>
<RequiredSkillsToPrescribe>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredSkillsToPrescribe>
<RequiredStatLabQualificationRef>SKILL_LAB_SPECIALIST_SPEC_USG</RequiredStatLabQualificationRef>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>sit_exam</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>ultrasonograph</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>sonography_unit</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptExaminationGeneralEquipment</ProcedureScript>
<AnimationSetupLying>
<AnimationNameIn>stand_examination_in</AnimationNameIn>
<AnimationNameIdle>stand_examination_idle</AnimationNameIdle>
<AnimationNameOut>stand_examination_out</AnimationNameOut>
</AnimationSetupLying>
<AnimationSetupLying>
<AnimationNameIn>stand_examination_in</AnimationNameIn>
<AnimationNameIdle>stand_examination_idle</AnimationNameIdle>
<AnimationNameOut>stand_examination_out</AnimationNameOut>
</AnimationSetupLying>
<DressLevel>HALF</DressLevel>
<Biohazard>false</Biohazard>
<Priority>25</Priority>
</Procedure>
<ExaminationType>EXAMINATION</ExaminationType>
<Cost>50</Cost>
<IconIndex>1693</IconIndex>
<DurationHours>0</DurationHours>
</GameDBExamination>
D) X - ray / Angiography / Radiology examinations
use special scripts (step 3/A)
<RequiredEquipmentList> must include all parts of the object
there are some corresponding special animations for animated objects
<DetachedDepartmentRef> must be se to DPT_RADIOLOGY
Example:
- Code:
<GameDBExamination ID="EXM_X_RAY_BACK">
<AbbreviationLocID>EXM_X_RAY_BACK_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>Low</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_IGNORE_DOCTOR</StaffSelectionRules>
<RequiredSkillsToPrescribe>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredSkillsToPrescribe>
<RequiredStatLabQualificationRef>SKILL_LAB_SPECIALIST_SPEC_RADIOLOGY</RequiredStatLabQualificationRef>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>x_ray_bed</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>x_ray_panel</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>x_ray_board</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>xray_viewer</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>x_ray_machine_anim</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>room_x_ray</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptExaminationXray</ProcedureScript>
<ProcedureAnimationState>STANDING</ProcedureAnimationState>
<AnimationSetupLying>
<AnimationNameIn>move_start_torso</AnimationNameIn>
<AnimationNameOut>move_end_torso</AnimationNameOut>
</AnimationSetupLying>
<AnimationSetupSitting>
<AnimationNameIn>move_start_torso</AnimationNameIn>
<AnimationNameOut>move_end_torso</AnimationNameOut>
</AnimationSetupSitting>
<DressLevel>HALF</DressLevel>
<Priority>0</Priority>
<AnimationFrame>4</AnimationFrame>
<DetachedDepartmentRef>DPT_RADIOLOGY</DetachedDepartmentRef>
</Procedure>
<Cost>50</Cost>
<IconIndex>1669</IconIndex>
<DurationHours>0</DurationHours>
</GameDBExamination>
4 - CREATING TREATMENTS
A) General treatments overview
ID - TRT_... must be unique ...
<AbbreviationLocID> - description
<DiscomfortLevel> - None/Low/Medium/High
<StaffSelectionRules> - like in examinations
REQUIRED_ROOM_OR_DEFAULT_ROOM - provided by doctors in clinics or hospitalization enviroment
DEFAULT_ROOMS - doctors from on-call room are selected
<RequiredSkillsToPrescribe> - contains all skills, that are needed for the prescription of the treatment
<RequiredDoctorQualificationList> - doctor's qualification or skill needed to prescribe and/or execute treatment
<RequiredRoomTypeList> contains all rooms, where can be treatment provided
<RequiredEquipmentList> contains all needed props- e.g.: receipt
<ProcedureScript> - specific treatment script
ProcedureScriptTreatmentPrescription - script for all prescription treatments - "advise patient and send home"
ProcedureScriptTreatmentReceipt - script for receipt treatments - "patient will obtain receipt or in some cases will be sent to some procedure and then will sent home" // read more
ProcedureScriptTreatmentProcedure - script for procedural treatments - "patient will enter some procedure"
ProcedureScriptTreatmentResuscitation - special script for resuscitation treatment procedures
<AnimationSetupSitting> - In + Idle + Out animation for specific treatment (not mandatory)
<DressLevel> - patient's dress level before treatment
<DressLevelAfter> - patient's dress level after treatment
FULL - no change
HALF - no pants
HALF_TOP - no shirt
<TreatmentType> - specific type of treatment
PRESCRIPTION - like the related script, patient will get some talk/advices
RECEIPT - patient will get receipt for some medicine or some
PROCEDURE - patient will get some procedure
In the case of "RECEIPT" treatment type - if not specified (or set to the default value PILLS), patient will get only a receipt to suppress a symptom; otherwise, it has to be specified by:
ReceiptType + HospitalizationTreatmentRef
<ReceiptType>IV_BAG</ReceiptType> - once the patient is hospitalized, they will get the medicine in an intravenous bag
<ReceiptType>BLOOD_BAG</ReceiptType> - once the patient is hospitalized, they will get a blood bag
<ReceiptType>OXYGEN_MASK</ReceiptType> - once the patient is hospitalized, they will get an oxygen mask
Does the treatment require the patient to be hospitalized first?
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_NORMAL</HospitalizationTreatmentRef> - normal hospitalization - valid for IV_BAG and also BLOOD_BAG
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_HIGH_PRIORITY</HospitalizationTreatmentRef> - HDU hospitalization - valid for all 3 types
// HospitalizationTreatmentRef can be defined also apart of ReceiptType, if you want specific treatment that can be done only on hospitalized patient
<AllowedWithAnyHospitalization> true/false - if you want to allow treatment on all types of hospitalization
<IconIndex> - choose icon for current treatment - for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example - Prescription:
- Code:
<GameDBTreatment ID="TRT_HOME_TREATMENT">
<AbbreviationLocID>TRT_HOME_TREATMENT_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>None</DiscomfortLevel>
<Procedure>
<RequiredDoctorQualificationList>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
</RequiredDoctorQualificationList>
<ProcedureScript>ProcedureScriptTreatmentPrescription</ProcedureScript>
<AnimationSetupSitting>
<AnimationNameIn>sit_doc_recommendation_in</AnimationNameIn>
<AnimationNameIdle>sit_doc_recommendation_idle</AnimationNameIdle>
<AnimationNameOut>sit_doc_recommendation_out</AnimationNameOut>
</AnimationSetupSitting>
<DressLevel>FULL</DressLevel>
<DressLevelAfter>FULL</DressLevelAfter>
</Procedure>
<TreatmentType>PRESCRIPTION</TreatmentType>
<Cost>100</Cost>
<IconIndex>1913</IconIndex>
<DurationHours>0</DurationHours>
</GameDBTreatment>
Example - Receipt:
- Code:
<GameDBTreatment ID="TRT_ANALGESICS">
<AbbreviationLocID>TRT_ANALGESICS_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>Positive</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_OR_DEFAULT_ROOM</StaffSelectionRules>
<RequiredDoctorQualificationList>
<SkillRef>SKILL_DOC_QUALIF_GENERAL_MEDICINE</SkillRef>
<SkillRef>SKILL_DOC_SPEC_CRITICAL_CARE</SkillRef>
</RequiredDoctorQualificationList>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>receipt</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>receipt</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptTreatmentReceipt</ProcedureScript>
</Procedure>
<TreatmentType>RECEIPT</TreatmentType>
<Cost>100</Cost>
<IconIndex>1861</IconIndex>
<DurationHours>0</DurationHours>
</GameDBTreatment>
Example - IV BAG:
- Code:
<GameDBTreatment ID="TRT_A1AT_REPLACEMENT">
<AbbreviationLocID>TRT_A1AT_REPLACEMENT_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>Medium</DiscomfortLevel>
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_OR_DEFAULT_ROOM</StaffSelectionRules>
<RequiredSkillsToPrescribe>
<SkillRef>SKILL_DOC_SPEC_GENERAL_SURGERY</SkillRef>
<SkillRef>SKILL_DOC_SPEC_INTERNAL_MEDICINE</SkillRef>
<SkillRef>SKILL_DOC_SPEC_CRITICAL_CARE</SkillRef>
</RequiredSkillsToPrescribe>
<RequiredDoctorQualificationList>
<SkillRef>SKILL_DOC_SPEC_GENERAL_SURGERY</SkillRef>
<SkillRef>SKILL_DOC_SPEC_INTERNAL_MEDICINE</SkillRef>
<SkillRef>SKILL_DOC_SPEC_CRITICAL_CARE</SkillRef>
</RequiredDoctorQualificationList>
<RequiredRoomTags>
<Tag>general_surgery_office</Tag>
<Tag>internal_medicine_office</Tag>
<Tag>icu</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptTreatmentReceipt</ProcedureScript>
<AnimationSetupSitting>
<AnimationNameIn>stand_press_bandage_hand_in</AnimationNameIn>
<AnimationNameIdle>stand_press_bandage_hand_idle</AnimationNameIdle>
<AnimationNameOut>stand_press_bandage_hand_out</AnimationNameOut>
</AnimationSetupSitting>
<DressLevel>FULL</DressLevel>
<DressLevelAfter>FULL</DressLevelAfter>
</Procedure>
<TreatmentType>RECEIPT</TreatmentType>
<ReceiptType>IV_BAG</ReceiptType>
<Cost>100</Cost>
<IconIndex>1951</IconIndex>
<DurationHours>0</DurationHours>
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_NORMAL</HospitalizationTreatmentRef>
<AllowedWithAnyHospitalization>true</AllowedWithAnyHospitalization>
</GameDBTreatment>
Object involved procedure
<RequiredSkillsToPrescribe> - contains skill of doctor that prescribes the examination
<RequiredStatLabQualificationRef> - lab technician's skill to provide
<RequiredEquipmentList> - has to contain tags of all requiered equipment
<AnimationSetupLying> / <AnimationSetupSitting> - animations
<DetachedDepartmentRef> - there must be referrence to department; can be found here:
\Assets\StreamingAssets\Database\Departments.xml
<HospitalizationTreatmentRef> - hospitalization type needed; can be found here:
\Assets\StreamingAssets\Database\Procedures\TreatmentsHospitalization.xml
- Code:
<GameDBTreatment ID="TRT_SHOCK_WAVE_LITHOTRIPSY">
<AbbreviationLocID>TRT_SHOCK_WAVE_LITHOTRIPSY_DESCRIPTION</AbbreviationLocID>
<DiscomfortLevel>Medium</DiscomfortLevel><!--TODO for test only-->
<Procedure>
<StaffSelectionRules>REQUIRED_ROOM_OR_DEFAULT_ROOM</StaffSelectionRules>
<RequiredSkillsToPrescribe>
<SkillRef>SKILL_DOC_SPEC_GENERAL_SURGERY</SkillRef>
</RequiredSkillsToPrescribe>
<RequiredStatLabQualificationRef>SKILL_LAB_SPECIALIST_SPEC_USG</RequiredStatLabQualificationRef>
<RequiredEquipmentList>
<RequiredEquipment>
<Tag>sit_exam</Tag>
</RequiredEquipment>
<RequiredEquipment>
<Tag>shockwave</Tag>
</RequiredEquipment>
</RequiredEquipmentList>
<RequiredRoomTags>
<Tag>gs_sonography_unit</Tag>
</RequiredRoomTags>
<ProcedureScript>ProcedureScriptTreatmentProcedure</ProcedureScript>
<AnimationSetupLying>
<AnimationNameIn>stand_treatment_in</AnimationNameIn> <!--TODO tempAnim-->
<AnimationNameIdle>stand_treatment_idle</AnimationNameIdle>
<AnimationNameOut>stand_treatment_out</AnimationNameOut>
</AnimationSetupLying>
<AnimationSetupLying>
<AnimationNameIn>stand_treatment_in</AnimationNameIn> <!--TODO prop?-->
<AnimationNameIdle>stand_treatment_idle</AnimationNameIdle>
<AnimationNameOut>stand_treatment_out</AnimationNameOut>
</AnimationSetupLying>
<DressLevel>HALF</DressLevel>
<DressLevelAfter>FULL</DressLevelAfter>
<DetachedDepartmentRef>DPT_GENERAL_SURGERY_DEPARTMENT</DetachedDepartmentRef>
</Procedure>
<TreatmentType>PROCEDURE</TreatmentType>
<Cost>50</Cost>
<IconIndex>1953</IconIndex>
<DurationHours>0</DurationHours>
<HospitalizationTreatmentRef>TRT_HOSPITALIZATION_NORMAL</HospitalizationTreatmentRef>
<AllowedWithAnyHospitalization>true</AllowedWithAnyHospitalization>
</GameDBTreatment>
5. COMPLETING THE DIAGNOSIS
ID
- use DIA_XYZ - when creatind some disease
- use TRM_XYZ - when creating trauma
<AbbreviationLocID> - actually localization ID of the description
<Duration> - deprecated
<OccurrenceRef> - category of the occurence rate of the disease
OCCURRENCE_COMMON
OCCURRENCE_UNCOMMON
OCCURRENCE_RARE
Symptoms:
<DayOfFirstOccurence> - always set to 0, experiments with new symptoms appearing over time weren't exactly successful
<ProbabilityPercent> - probability of presence of specific symptom in the set of symptoms that define diagnosis (10-100) - main symptom is always set to 100
<GameDBSymptomRef> - symptom's ID
<Examinations> - list of all examinations needed to discover every single symptom - list represents a recommended sequence of examinations for the AI doctor
<Treatments> - list of treatments that suppress mainly the main symptom and symptoms that are at High hazard
- it is necessary to put treatment for the main symptom at the first place of the sequence
<DepartmentRef> - set the department refference
// list of departments can be found at \Assets\StreamingAssets\Database\Departments.xml
Tags:
If patients with this diagnosis should spawn when the player only has clinic at this department:
- Code:
<Tags>
<Tag>disease</Tag>
<Tag>clinic</Tag>
</Tags>
if diagnosis can be treated at hospitalization:
- Code:
<Tags>
<Tag>disease</Tag>
</Tags>
<InsurancePayment> - how much money will you get if patient will be treated
<IconIndex> - choose icon for current symptom - for custom icons take a look at https://projecthospital.forumotion.com/t2069-modding-tutorial-medical-database-custom-icons
Example - clinic disease:
- Code:
<!-- Pork tapeworm (infection) -->
<GameDBMedicalCondition ID="DIA_PTI">
<AbbreviationLocID>DIA_PTI_DESCRIPTION</AbbreviationLocID>
<Duration>2</Duration>
<OccurrenceRef>OCCURRENCE_UNCOMMON</OccurrenceRef>
<Symptoms>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_NAUSEA</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_ABDOMINAL_PAIN</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_FATIGUE</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_WEIGHT_LOSS</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>70</ProbabilityPercent>
<GameDBSymptomRef>SYM_VITAMIN_DEFICIENCY</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_HUNGER</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>70</ProbabilityPercent>
<GameDBSymptomRef>SYM_WEAKNESS</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<ProbabilityPercent>100</ProbabilityPercent>
<GameDBSymptomRef>SYM_PORK_TAPEWORM_PRESENT</GameDBSymptomRef>
</GameDBSymptomRules>
</Symptoms>
<Examinations>
<ExaminationRef>EXM_INTERVIEW</ExaminationRef>
<ExaminationRef>EXM_ABDOMINAL_PALPATION</ExaminationRef>
<ExaminationRef>EXM_PHYSICAL_AND_VISUAL_EXAMINATION</ExaminationRef>
<ExaminationRef>EXM_BLOOD_TEST_SAMPLING</ExaminationRef>
<ExaminationRef>EXM_STOOL_ANALYSIS_SAMPLING</ExaminationRef>
<ExaminationRef>EXM_DIFFERENTIAL_DIAGNOSIS</ExaminationRef>
</Examinations>
<Treatments>
<TreatmentRef>TRT_ANTITAPEWORM_PILLS</TreatmentRef>
<TreatmentRef>TRT_ANALGESICS</TreatmentRef> <!--ADDITIONAL-->
<TreatmentRef>TRT_VITAMIN_SUPPLEMENTATION</TreatmentRef>
<TreatmentRef>TRT_STOMACHICS</TreatmentRef>
<TreatmentRef>TRT_HOME_TREATMENT</TreatmentRef>
</Treatments>
<IconIndex>1027</IconIndex>
<DepartmentRef>DPT_EMERGENCY</DepartmentRef>
<InsurancePayment>300</InsurancePayment>
<Tags>
<Tag>disease</Tag>
<Tag>clinic</Tag>
</Tags>
</GameDBMedicalCondition>
Example - Hospitalization disease:
- Code:
<!-- Classical cholera -->
<GameDBMedicalCondition ID="DIA_CLC">
<AbbreviationLocID>DIA_CLC_DESCRIPTION</AbbreviationLocID>
<Duration>2</Duration>
<OccurrenceRef>OCCURRENCE_RARE</OccurrenceRef>
<Symptoms>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_DIARRHEA</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>70</ProbabilityPercent>
<GameDBSymptomRef>SYM_VOMITING</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>80</ProbabilityPercent>
<GameDBSymptomRef>SYM_DEHYDRATION</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>60</ProbabilityPercent>
<GameDBSymptomRef>SYM_CRAMPS</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>50</ProbabilityPercent>
<GameDBSymptomRef>SYM_IRRITABILITY</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>50</ProbabilityPercent>
<GameDBSymptomRef>SYM_THIRST</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>50</ProbabilityPercent>
<GameDBSymptomRef>SYM_OLIGURIA</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>70</ProbabilityPercent>
<GameDBSymptomRef>SYM_HYPOTENSION</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<DayOfFirstOccurence>0</DayOfFirstOccurence>
<ProbabilityPercent>30</ProbabilityPercent>
<GameDBSymptomRef>SYM_IRREGULAR_HEARTBEAT</GameDBSymptomRef>
</GameDBSymptomRules>
<GameDBSymptomRules>
<ProbabilityPercent>100</ProbabilityPercent>
<GameDBSymptomRef>SYM_VIBRIO_CHOLERAE_DETECTED</GameDBSymptomRef>
</GameDBSymptomRules>
</Symptoms>
<Examinations>
<ExaminationRef>EXM_INTERVIEW</ExaminationRef>
<!--ExaminationRef>EXM_OBSERVATION</ExaminationRef-->
<ExaminationRef>EXM_PHYSICAL_AND_VISUAL_EXAMINATION</ExaminationRef>
<ExaminationRef>EXM_BLOOD_PRESSURE_AND_PULSE_MEASUREMENT</ExaminationRef>
<ExaminationRef>EXM_ECG</ExaminationRef>
<ExaminationRef>EXM_HEART_MONITORING</ExaminationRef>
<ExaminationRef>EXM_BACTERIA_CULTIVATION_SAMPLING</ExaminationRef>
<ExaminationRef>EXM_DIFFERENTIAL_DIAGNOSIS</ExaminationRef>
</Examinations>
<Treatments>
<TreatmentRef>TRT_HOSPITALIZATION_NORMAL</TreatmentRef>
<TreatmentRef>TRT_INTRAVENOUS_ANTIBIOTICS</TreatmentRef>
<TreatmentRef>TRT_BETA_BLOCKERS</TreatmentRef>
<TreatmentRef>TRT_REHYDRATION</TreatmentRef>
<TreatmentRef>TRT_REST</TreatmentRef>
</Treatments>
<IconIndex>1139</IconIndex>
<DepartmentRef>DPT_INTERNAL_MEDICINE_DEPARTMENT</DepartmentRef>
<InsurancePayment>1000</InsurancePayment>
<Tags>
<Tag>disease</Tag>
</Tags>
</GameDBMedicalCondition>
6.SURGERIES (OPTIONAL)
https://projecthospital.forumotion.com/t1970-modding-tutorial-database-surgeries
- palepurpleskyintern
- Posts : 4
Reputation : 0
Join date : 2019-08-27
Age : 26
Location : Canada
No treatment
Tue Mar 03, 2020 12:28 pm
I'm quite new to modding, so forgive me if this question is a bit dumb/obvious. When creating a symptom that does not require treatment, would <TreatmentRef>NONE</TreatmentRef> be correct?
- igor.oxymorondeveloper
- Posts : 347
Reputation : 25
Join date : 2018-03-23
Location : Czech republic
Re: Modding tutorial - Database - Medical Database
Tue Mar 03, 2020 12:31 pm
Hello!
If you are to create new symptom that does not requiere treatment, you just simply will not mention it.
Example from the game - symptom "Polyuria" does not have any treatment:
Cheers!
If you are to create new symptom that does not requiere treatment, you just simply will not mention it.
Example from the game - symptom "Polyuria" does not have any treatment:
- Code:
<GameDBSymptom ID="SYM_POLYURIA">
<DescriptionLocID>SYM_POLYURIA_DESCRIPTION</DescriptionLocID>
<DiscomfortLevel>Low</DiscomfortLevel>
<PatientComplains>true</PatientComplains>
<Hazard>Low</Hazard>
<PatientMobility>MOBILE</PatientMobility>
<Examinations>
<ExaminationRef>EXM_INTERVIEW</ExaminationRef>
</Examinations>
<ShameLevel>0</ShameLevel>
<IsMainSymptom>false</IsMainSymptom>
<IconIndex>1589</IconIndex>
</GameDBSymptom>
Cheers!
Permissions in this forum:
You cannot reply to topics in this forum