diff options
author | Paweł Redman <pawel.redman@gmail.com> | 2019-07-16 11:24:20 +0200 |
---|---|---|
committer | Paweł Redman <pawel.redman@gmail.com> | 2019-07-16 11:24:20 +0200 |
commit | 0a25815768786155371db7154da84d9cdfc43b3f (patch) | |
tree | 7a185bf6ca52bf5cebfe0c4398b7fa55e281172e /src/e2e.h | |
parent | 581f08da5335122ca04afc3d59c2ec1861290c6a (diff) |
Begin restructuring the data
Diffstat (limited to 'src/e2e.h')
-rw-r--r-- | src/e2e.h | 47 |
1 files changed, 44 insertions, 3 deletions
@@ -1,10 +1,13 @@ #include <inttypes.h> +#include <uthash.h> #include "eli.h" #define errorf(fmt, ...) (fprintf(stderr, fmt, ##__VA_ARGS__)) -#define IMAGE_FUNDUS 0x02010201 -#define IMAGE_TOMOGRAM 0x02200201 +#define E2E_NONE 0xffffffff + +#define E2E_IMAGE_FUNDUS 0x02010201 +#define E2E_IMAGE_TOMOGRAM 0x02200201 struct e2e_image { size_t size, width, height; @@ -16,7 +19,7 @@ struct e2e_image { }; }; -#define CHUNK_IMAGE 0x40000000 +#define E2E_CHUNK_IMAGE 0x40000000 struct e2e_chunk { const char *origin; @@ -56,11 +59,49 @@ struct e2e_directory { eli_header data_list; }; +struct e2e_slice { + int id; + + struct e2e_image *image; + + UT_hash_handle hh; +}; + +struct e2e_series { + int id; + + struct e2e_slice *slices; + + UT_hash_handle hh; +}; + +struct e2e_study { + int id; + + struct e2e_series *series; + + UT_hash_handle hh; +}; + +struct e2e_patient { + int id; // FIXME: hopefully this doesn't overflow... + + struct e2e_study *studies; + + UT_hash_handle hh; +}; + struct e2e_data { + // file buffer const char *start, *end; + // E2E structure struct e2e_directory *dirs; + + // logical structure + struct e2e_patient *patients; }; + int e2e_read(struct e2e_data *data, const char *start, const char *end); void e2e_destroy(struct e2e_data *data); |