Как добавить информацию к существующему «пациенту», не стирая существующие данные?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как добавить информацию к существующему «пациенту», не стирая существующие данные?

Сообщение Anonymous »

Мне нужно создать программу для проекта на Python, в которой я регистрирую пациента и его информацию, а также его жизненные показатели (вариабельность сердечного ритма (VFC), насыщение кислородом (VSO), артериальное кровяное давление (VPA), температуру тела ( VTC)) но я также хочу иметь возможность добавлять больше значений к жизненным показателям одного человека без необходимости его повторной регистрации.
(Я португалец, поэтому некоторая часть кода будет на этом языке)
Это код, который у меня есть:

Код: Выделить всё

import csv
import os
from datetime import datetime, date
import statistics
import matplotlib.pyplot as plt

registos_dir = "A52810_registos_pacientes_v01"
os.makedirs(registos_dir, exist_ok=True)

valores_normais = {"VFC": (50, 100), "VSO": (1, 3), "VPA": (0, 10), "VTC": (0.5, 1.0)}

def calcular_idade(data_nascimento):
hoje = date.today()
return hoje.year - data_nascimento.year - ((hoje.month, hoje.day) < (data_nascimento.month, data_nascimento.day))

def calcular_desvio_padrao_lista(dados):
desv_pad = statistics.stdev(dados)
return desv_pad

def calcular_desvio_padrao_arquivo(arquivo):
try:
with open(arquivo, 'r') as f:
valores = [float(line.strip()) for line in f.readlines() if line.strip()]
if len(valores) < 2:
raise ValueError("O arquivo precisa conter pelo menos dois valores numéricos.")
return statistics.stdev(valores)
except Exception as e:
print(f"Erro ao processar o arquivo {arquivo}: {e}")
return None

def obter_float(prompt):
while True:
try:
return float(input(prompt))
except ValueError:
print("Entrada inválida. Por favor, insira um número válido.")

def obter_data(prompt):
while True:
try:
return datetime.strptime(input(prompt), "%d-%m-%Y").date()
except ValueError:
print("Formato inválido. Insira a data no formato DD-MM-AAAA.")

def obter_dados():
dados = []
while True:
try:
valor = float(input("Insira um valor numérico: "))
dados.append(valor)
while True:
continua = input("Inserir mais dados? (s/n): ").strip().lower()
if continua == "n":
if len(dados) >= 2:
return dados
else:
print("É preciso fornecer pelo menos dois valores numéricos.")
elif continua == "s":
break
else:
print("Resposta inválida. Digite 's' para sim ou 'n' para não.")
except ValueError:
print("Erro. Insira um número válido.")

def obter_arquivo(prompt):
while True:
arquivo = input(prompt)
if os.path.exists(arquivo):
return arquivo
print("Arquivo não encontrado. Tente novamente.")

def registar_paciente():
nome = input("Nome completo do paciente: ").strip()
data_nasc = obter_data("Data de nascimento (DD-MM-AAAA): ")
peso = obter_float("Peso (kg): ")
altura = obter_float("Altura (cm): ")
idade = calcular_idade(data_nasc)

resultados = {}

while True:
tipo = input("Deseja fornecer os dados manualmente ou através de um arquivo?\n1. Manual\n2.  Arquivo\nEscolha: ").strip()
if tipo == "1":
for sinal in ["VFC", "VSO", "VPA", "VTC"]:
print(f"\nInsira os dados para {sinal}:")
valores = obter_dados()
desv_pad = calcular_desvio_padrao_lista(valores)
dentro_do_normal = valores_normais[sinal][0] 

Подробнее здесь: [url]https://stackoverflow.com/questions/79345504/how-to-add-information-to-an-existing-patient-without-erasing-the-existing-dat[/url]
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»