CrimsonCare
CrimsonCare is a C project designed to provide a robust solution for blood management.
 
Loading...
Searching...
No Matches
blood_manager.h
Go to the documentation of this file.
1
31#ifndef BLOOD_MANAGER_H
32#define BLOOD_MANAGER_H
33
34#include <stdbool.h>
35#include <stdint.h>
36#include <stdio.h>
37#include <stdlib.h>
38#include <string.h>
39#include <errno.h>
40#include "misc.h"
41
42#include "transaction_manager.h"
43
49#define BLOOD_GROUP_NAME_LENGTH 4
50
56typedef struct BloodStock {
57 float price;
58 uint32_t id;
59 uint32_t quantity;
61 struct BloodStock* next;
63
68extern BloodStock* bloodHead;
69
83bool isValidBloodGroup(uint32_t id);
84
105bool addBloodGroup(uint32_t id, const char* bloodGroup, float price, uint32_t quantity);
106
117void initializeBloodGroups(void);
118
132void saveBloodGroups(void);
133
150bool updateBloodQuantity(uint32_t id, uint32_t newQuantity);
151
168bool updateBloodPrice(uint32_t id, float newPrice);
169
184void loadBloodGroups(void);
185
205bool isBloodAvailable(uint32_t* id, TransactionType type);
206
214void displayBloodGroups(void);
215
225void displayBloodStocks(void);
226
240char* getBloodGroupById(uint32_t id);
241
249void freeBloodList(void);
250
251#endif
#define BLOOD_GROUP_NAME_LENGTH
Blood group name length.
BloodStock * bloodHead
Globally exposed blood stock head pointer.
Misc header file.
Blood stock structure.
uint32_t quantity
uint32_t id
char bloodGroup[BLOOD_GROUP_NAME_LENGTH]
struct BloodStock * next
Transaction manager header file.
TransactionType
Transaction type enum.