MIDOM - Medical Image Deidentification Object Model
A set of concepts and relations to describe the process of DICOM deidentification and a structured format for a deidentification protocol.
Why?
To use with projects related to DICOM deidentification. I'm running into the problem of not having the right words. I keep inventing terms, coming up with long-winded descriptions. There is a lack of conceptual clarity. Lack of clarity causes:
- misunderstandings
- Ineffective communication
- misguided programming efforts
- wasted time generally.
The DICOM standard is not sufficient. DICOM PS3 E-E1 gives thorough information on what to do to a single dataset, but not on how to reason or talk about multiple deidentifying processess, their differences, their characteristics.
For whom?
People developing or maintaining image deidentification software. Either full pipelines or separate parts.
What is it?
An information model first and foremost. Concept definitions with clear descriptions of their relations. To clearly express these, a structured language is required. Python has been chosen for this, but it should be possible to express MIDOM concepts in any structured language.
What is it not?
- No image processing. Anything that does any actual image processing. No loading of DICOM files anywhere.
- Not married to python. MIDOM uses pydantic for clean, serializable object definitions, pydicom for clean dicom file access and dicomcriterion to encode boolean expressions for DICOM datasets. Beyond that I will try to keep the dependencies to a minimum. This is the ambition. Time will tell whether this is realistic.
For docs editors
Render html docs
Go to
(in docs/build): make docs_html
Fancy auto-updating
Auto-reload a html view as you change the docs source. Requirements:
- Linux or WSL (this uses some subshell and piping tricks)
- entr - Run a command when files change. Apt install this
- livereload - Serve local files and auto-reload on change. Python lib found as dev dependency in midom.
- Possibly firefox to make livereload work properly
Steps:
- Start a shell in this midom base dir (where Makefile is)
- run
uv run make launch_source_listener - Open the livereload url printed in the script output. By default this is http://127.0.0.1:35729/
You might have to reload the page once to link livereload to the browser. After that, any
save to a .rst or .puml file will trigger rebuild of docs/build, which will in turn
trigger a page reload
Release files for midom 0.5.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| midom-0.5.1.tar.gz | 34.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| midom-0.5.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 64.1 kB
Release files / midom-0.5.1.tar.gz
| Download URL | midom-0.5.1.tar.gz |
|---|---|
| Size | 34.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0603ee2b4949ba22dcd6885e13c7e585c85fa2081070ecbadd6cc924c91f48b0
|
|
BLAKE2b-256 checksum How to use checksums |
a00fc8e994956ee003346d4cc80f639f5c61daeb97f6b61902d617c9050b0c10
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / midom-0.5.1-py3-none-any.whl
| Download URL | midom-0.5.1-py3-none-any.whl |
|---|---|
| Size | 29.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a8d629a951d94d277d7253c66fe632742215d46ab3850c697ecc9f1d27f9b691
|
|
BLAKE2b-256 checksum How to use checksums |
e337f9dd592021218c18e53a818c41a25c84f530aaaa9e0c68c79fbb1352befe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.19 {"installer":{"name":"uv","version":"0.12.19","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|