aboutsummaryrefslogtreecommitdiff
path: root/logic/database_entry.gd
diff options
context:
space:
mode:
authordam <dam@gudinoff>2022-04-18 09:06:19 +0000
committerdam <dam@gudinoff>2022-04-18 09:06:19 +0000
commit79691f93bab7aa093bb606bfb80d2b4b236ee091 (patch)
tree6e90c6601893895d7640f478f0cad402cc7590b4 /logic/database_entry.gd
parent697e1ba3c4cb0a96c4584f1553de368d46287ab7 (diff)
parentee31a9a3d387121030a5f4503adeac5816d7726f (diff)
downloadsurgery-log-1.0.tar.zst
surgery-log-1.0.zip
Merge godot branch.v1.0
Diffstat (limited to 'logic/database_entry.gd')
-rw-r--r--logic/database_entry.gd74
1 files changed, 74 insertions, 0 deletions
diff --git a/logic/database_entry.gd b/logic/database_entry.gd
new file mode 100644
index 0000000..8b0c51f
--- /dev/null
+++ b/logic/database_entry.gd
@@ -0,0 +1,74 @@
+extends Reference
+class_name DatabaseEntry
+
+const DATE_SEPARATOR: String = "-"
+const DATE_FORMAT: String = "%04d-%02d-%02d"
+const ENTRY_PROTOTYPE: Dictionary = {
+ "process_id": "",
+ "surgery_id": "",
+ "date_year": 1,
+ "date_month": 1,
+ "date_day": 1,
+ "place": "",
+ "anesthesia": "",
+ "first_assistant": "",
+ "type": "",
+ "sub_type": "",
+ "sub_sub_type": "",
+ "pathology": "",
+ "intervention": "",
+ "is_urgency": false,
+ "notes": "",
+}
+
+
+static func instance_entry(params: Dictionary = {}) -> Dictionary:
+ var new_entry := ENTRY_PROTOTYPE.duplicate(true)
+ new_entry.process_id = params.get("process_id", "")
+ new_entry.surgery_id = params.get("surgery_id", "")
+
+ var today = OS.get_date()
+ new_entry.date_year = params.get("date_year", today.year)
+ new_entry.date_month = params.get("date_month", today.month)
+ new_entry.date_day = params.get("date_day", today.day)
+
+ new_entry.place = params.get("place", "")
+ new_entry.anesthesia = params.get("anesthesia", "")
+ new_entry.first_assistant = params.get("first_assistant", "")
+ new_entry.type = params.get("type", "")
+ new_entry.sub_type = params.get("sub_type", "")
+ new_entry.sub_sub_type = params.get("sub_sub_type", "")
+ new_entry.pathology = params.get("pathology", "")
+ new_entry.intervention = params.get("intervention", "")
+ new_entry.is_urgency = params.get("is_urgency", false)
+ new_entry.notes = params.get("notes", "")
+
+ return new_entry
+
+
+static func is_valid_entry(entry: Dictionary) -> bool:
+ var is_valid: bool
+
+ is_valid = entry.has_all(ENTRY_PROTOTYPE.keys()) && ENTRY_PROTOTYPE.keys().size() == entry.keys().size()
+
+ for it in ENTRY_PROTOTYPE.keys():
+ if typeof(ENTRY_PROTOTYPE[it]) != typeof(entry[it]):
+ is_valid = false
+ break
+
+ return is_valid
+
+
+static func get_entry_date(entry: Dictionary) -> String:
+ return DATE_FORMAT % [entry.date_year, entry.date_month, entry.date_day]
+
+
+static func set_entry_date(entry: Dictionary, date: String):
+ date = date.strip_edges().replace(" ", DATE_SEPARATOR).replace("/", DATE_SEPARATOR).replace("\\", DATE_SEPARATOR)
+ var year_month_idx := date.find(DATE_SEPARATOR)
+ var month_day_idx := date.find(DATE_SEPARATOR, year_month_idx + 1)
+ entry.date_year = int(date.substr(0, year_month_idx))
+ entry.date_month = int(date.substr(year_month_idx + 1, month_day_idx - year_month_idx - 1))
+ entry.date_day = int(date.substr(month_day_idx + 1))
+
+