Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 65 additions & 63 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,83 @@ Understanding how these codes work, and how to build accurate codelists from the

The articles listed below explore the function of coding systems, the intricacies of SNOMED, and the careful methodology behind constructing reliable codelists.

https://www.carolinemorton.co.uk/blog/what-is-snomed/
https://www.bennett.ox.ac.uk/blog/2023/09/what-are-codelists-and-how-are-they-constructed/
https://www.bennett.ox.ac.uk/blog/2023/06/an-introduction-to-clinical-codes-and-terminology-systems/
- [Blog on SNOMED](https://www.carolinemorton.co.uk/blog/what-is-snomed)
- [What is a codelist?](https://www.bennett.ox.ac.uk/blog/2023/09/what-are-codelists-and-how-are-they-constructed/)
- [Quick guide to clinical terminology servers](https://www.bennett.ox.ac.uk/blog/2023/06/an-introduction-to-clinical-codes-and-terminology-systems/)

### Structure of Project
## Structure of Project

The project is divided into two main components:

1. **rust**: The libraries written in Rust.
2. **python**: Python bindings for the Rust library.
2. **bindings**: Bindings for the Rust library.
- _Python_ - Python bindings for our codelist tools
- _R_ - R bindings for codelist tools

#### Rust Library
### Rust Library

The Rust library is a collection of modules for working with medical codelists:

- **codelists-rs**: Base library for working with codelists. This has basic
structs and functions for working with codelists.
- **codelist-validator-rs**: Library for validating codelists.
- **codelist-builder-rs**: Library for building codelists.
- **codelist-builder-rs**: Library for building codelists. 🚧 **Under Construction** 🚧

## Development Utilities

We use a [`justfile`](https://github.com/casey/just) to define common tasks for
development and CI.

### How to Install `just`

Install `just` using
[the instructions here](https://github.com/casey/just#installation), or with a
package manager:

```bash
# macOS (Homebrew)
brew install just

# Debian or Ubuntu
sudo apt install just

# Arch Linux
pacman -S just
```

### How to Use It

To run a task, use:

```bash
just <recipe>
```

For example:

```bash
just ci
```

This will run the CI tasks defined in the `justfile`, which include running
tests, formatting checks, and linting. You can also run individual tasks like

```bash
just fmt
```

These tasks help ensure consistent code style and formatting before committing
or opening a pull request.

To see all available tasks, run:

```bash
just --list
```

Make sure you run `just ci` before opening a pull request to ensure that all
tasks pass. This will help catch any issues early and ensure that the code is
formatted correctly and passes all tests.

## Formatting

Expand Down Expand Up @@ -94,59 +152,3 @@ In VS Code, it's even easier to configure Prettier to run on save:
2. Open **Settings** and search for `Format On Save`.
3. Enable **Editor: Format On Save**.
4. Optionally, add a `.prettierrc` file to customize the formatting rules.

## Development Utilities

We use a [`justfile`](https://github.com/casey/just) to define common tasks for
development and CI.

### How to Install `just`

Install `just` using
[the instructions here](https://github.com/casey/just#installation), or with a
package manager:

```bash
# macOS (Homebrew)
brew install just

# Debian or Ubuntu
sudo apt install just

# Arch Linux
pacman -S just
```

### How to Use It

To run a task, use:

```bash
just <recipe>
```

For example:

```bash
just ci
```

This will run the CI tasks defined in the `justfile`, which include running
tests, formatting checks, and linting. You can also run individual tasks like

```bash
just fmt
```

These tasks help ensure consistent code style and formatting before committing
or opening a pull request.

To see all available tasks, run:

```bash
just --list
```

Make sure you run `just ci` before opening a pull request to ensure that all
tasks pass. This will help catch any issues early and ensure that the code is
formatted correctly and passes all tests.
Loading