import os
# 1. Запрашиваем ФИО пациента одной строкой (фамилия имя отчество через пробел)
full_name_input = input("Enter the full name of the patient separated by space (Ivanov Ivan Ivanovich): ")
# Разбиваем введённую строку на отдельные части по пробелам
name_parts = full_name_input.strip().split()
# 2. Проверяем, что введено ровно 3 слова (Фамилия Имя Отчество)
if len(name_parts) != 3:
print("There is no such patient!")
else:
# 3. Формируем имя папки пациента в формате Фамилия_Имя_Отчество
# capitalize() приводит каждое слово к виду "Иванов" из "иванов" или "ИВАНОВ"
formatted_name = name_parts[0].capitalize() + "_" + name_parts[1].capitalize() + "_" + name_parts[2].capitalize()
# 4. Строим полный путь до папки с данными пациента:
# <папка_скрипта>/materials/patients/<Фамилия_Имя_Отчество>
patient_path = os.path.join(os.path.dirname(__file__), "materials", "patients", formatted_name)
# 5. Проверяем, существует ли папка такого пациента
if not os.path.isdir(patient_path):
print("There is no such patient!")
else:
# 6. Путь до папки с приёмами (визитами) пациента
visits_path = os.path.join(patient_path, "visits")
# Собираем список предыдущих приёмов
previous_appointments = []
if os.path.isdir(visits_path):
# Проходим по всем файлам в папке visits
for filename in os.listdir(visits_path):
# Берём только .txt файлы
if filename.endswith(".txt"):
# Отбрасываем расширение .txt, чтобы осталась только дата
previous_appointments.append(filename[:-4])
# Сортируем даты в хронологическом порядке (формат YYYY-MM-DD это позволяет)
previous_appointments.sort()
# 7. Если приёмов нет — это первый визит, программа завершается
if not previous_appointments:
print("This is the first appointement with the doctor")
else:
# 8. Иначе выводим список предыдущих приёмов на экран
print("Previous doctor appointments:")
for appointment in previous_appointments:
print(appointment)
# 9. Запрашиваем дату интересующего приёма
date_input = input("Enter the date of the appointment you want to see: ")
# 10. Строим путь до файла с нужной датой
appointment_path = os.path.join(visits_path, date_input + ".txt")
# 11. Проверяем, существует ли такой файл приёма
if not os.path.exists(appointment_path):
print("There was no such appointment with the doctor!")
else:
# 12. Читаем содержимое файла и выводим его на экран
with open(appointment_path, 'r', encoding='utf-8') as f:
content = f.read()
print(content)