This program implements a simple patient database based on a structure. It demonstrates struct and pointer use.

Dependencies:   mbed

Fork of test_patient_structure by MSOE EE2905

Committer:
CSTritt
Date:
Thu Nov 02 21:22:34 2017 +0000
Revision:
1:060801821b1c
Parent:
0:c435f76658b2
Initial version. Based on demo program by Dr. Sheila Ross.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
CSTritt 1:060801821b1c 1 /*
CSTritt 1:060801821b1c 2 Project: PatientStructure
CSTritt 1:060801821b1c 3 File: patients.h (v. 1.0)
CSTritt 1:060801821b1c 4
CSTritt 1:060801821b1c 5 Header file for patient data base using structure example. See main.cpp
CSTritt 1:060801821b1c 6 for details.
CSTritt 1:060801821b1c 7
CSTritt 1:060801821b1c 8 Modified by Dr. C. S. Tritt
CSTritt 1:060801821b1c 9 */
CSTritt 1:060801821b1c 10 // Defined in main. Used in main & patients.cpp, so declare in header file.
CSTritt 1:060801821b1c 11 // extern is rerequied to avoid duplicate objects that result in a linker
CSTritt 1:060801821b1c 12 // error.
CSTritt 1:060801821b1c 13 extern Serial pc;
rossatmsoe 0:c435f76658b2 14
rossatmsoe 0:c435f76658b2 15 // The patient_record structure stores name and vitals for a patient.
rossatmsoe 0:c435f76658b2 16 struct patient_record {
rossatmsoe 0:c435f76658b2 17 char firstname[30];
rossatmsoe 0:c435f76658b2 18 char lastname[30];
rossatmsoe 0:c435f76658b2 19 int systolic;
rossatmsoe 0:c435f76658b2 20 int diastolic;
rossatmsoe 0:c435f76658b2 21 float spO2;
rossatmsoe 0:c435f76658b2 22 };
rossatmsoe 0:c435f76658b2 23
rossatmsoe 0:c435f76658b2 24 // It is assumed that we will have an array of these patient records.
rossatmsoe 0:c435f76658b2 25 // We define the maximum number of patients that we will support.
rossatmsoe 0:c435f76658b2 26 #define MAX_PATIENTS 100
rossatmsoe 0:c435f76658b2 27
rossatmsoe 0:c435f76658b2 28 //Print the values in the structure for a particular patient.
CSTritt 1:060801821b1c 29 void print_patient_record(struct patient_record *first_patient, int N);
rossatmsoe 0:c435f76658b2 30 //Put patient into record.
CSTritt 1:060801821b1c 31 void newPatient(struct patient_record *patient, char *first, char*last);
rossatmsoe 0:c435f76658b2 32 //Fill in vital signs directly. Note that we use -> when we have a
rossatmsoe 0:c435f76658b2 33 //pointer to a struct and we want to access one of the members.
CSTritt 1:060801821b1c 34 void recordBP(struct patient_record *patient, int sys, int dias, float o2);
rossatmsoe 0:c435f76658b2 35 //Fill in vital signs through the serial monitor (for BP) and the oxygen sensor,
rossatmsoe 0:c435f76658b2 36 //assumed to be an analog input giving the SpO2 level as a fraction.
CSTritt 1:060801821b1c 37 void recordBPinteractive(struct patient_record *first_patient, AnalogIn oxygen);
rossatmsoe 0:c435f76658b2 38 //Look up the patient number by searching through the array of patients
rossatmsoe 0:c435f76658b2 39 //and matching the first and last name. strcmp returns 0 if two strings
rossatmsoe 0:c435f76658b2 40 //are identical. Return the patient's position in the array if name is
rossatmsoe 0:c435f76658b2 41 //found, -1 if it is not found.
CSTritt 1:060801821b1c 42 int lookup_patient_name(struct patient_record *first_patient, char*first,
CSTritt 1:060801821b1c 43 char*last);