CS207-HW3/Patient.hpp

54 lines
1.4 KiB
C++

#ifndef PATIENT_HPP
#define PATIENT_HPP
#include "Visit.hpp"
#include <iostream>
#include <istream>
#include <ostream>
#include <string>
#include <sys/types.h>
#include <vector>
////////////////////////////////////
// File: patient_files/3.txt //
// 3 //
// Amirah //
// Asaad //
// F //
// 26 //
// 3 1/1/2018 Abdullah Alshareef //
// 9 4/1/2018 Helen Philips //
// 14 8/1/2018 Abdullah Alshareef //
////////////////////////////////////
class Patient {
private:
// clang-format off
u_int32_t id;
std::string first_name;
std::string last_name;
bool gender; // true gender = M, false gender = F
u_int32_t age;
std::vector<Visit> visits;
char gender_char() { return gender ? 'M' : 'F'; }
public:
void write_patient();
Patient(){};
Patient(u_int32_t id, std::string first_name, std::string last_name, bool gender, u_int age)
: id(id), first_name(first_name), last_name(last_name), gender(gender), age(age) {
// clang-format on
write_patient();
}
Patient(u_int32_t id);
u_int32_t get_id() const;
public:
void add_visit(Visit const &visit);
friend std::ostream &operator<<(std::ostream &out, Patient &patient);
friend std::istream &operator>>(std::istream &in, Patient &patient);
};
#endif