Giter Site home page Giter Site logo

mypacs's Introduction

MyPACS

Prerequisites

Overview

  • 一个自己实现的完整的基于DICOM协议的PACS系统。
  • 实现功能:
    • 将产生的DICOM文件存储到远端Server并将其序列索引写入数据库。
    • 打开本地DICOM文件和文件夹并显示DICOM序列。
    • DICOM传输,从远端Server通过DICOM Q-R获取DICOM图像。
    • 对DICOM图像进行一些简单的图像处理(在前端处理)和数据标注的可视化(从后端拉取结果)。

Structure

MyPACS-structure

  • MyPACSViewer:一个集成了ViewerSCU(一个DICOM Q-R SCU)的前端UI界面,模拟的是客户端。
  • MyPACSServer:一个DICOM Q-R/C-STORE SCP,并连接了一个本地用于存储DICOM数据索引信息和文件路径的MySQL数据库和一个adapter模块,模拟一个DICOM服务器工作站。
  • Adapter:一个数据标注可视化的适配器(可扩展自定义,在本项目中使用LIDC-IDRI数据集标注作为示例)。

Workflow

  1. 在MyPACSServer端,将DICOM数据的索引信息和文件路径写入数据库。
  2. 用户在使用MyPACSViewer时,可以打开本地文件浏览,也可以通过DICOM Q-R机制,从MyPACSServer获取DICOM文件。
  3. 用户可以对图像进行简单的处理,这一部分的处理在MyPACSViewer内部进行。
  4. 用户在自定义Adapter后,通过在C-GET Request中插入特定的Tag信息,可以使MyPACSServer返回相应的带标注的处理结果返回前端进行可视化。

Submodules

  • 一个基于WPF开发的DICOM Viewer,使用MVVM设计模式(Model-View-ViewModel)。

  • DICOM协议使用fo-dicom库。

  • 内部集成了一个DICOM Q-R SCU,可用于与MyPACSServer通信。

    MyPACS-ui

  • 一个基于Python 3.9开发的DICOM Server,使用json配置文件,示例见default.json
  • DICOM协议使用pydicompynetdicom库。
  • 数据库可以自行配置。使用records库进行连接和处理。在本项目中使用MySQL作为示例。
  • 使用Python内置的logging模块在控制台输出日志并写入文件。
  • 集成了数据集标注的Adapter,用于统一转换标注数据。
  • 一个标注可视化的适配模块,如需自定义则必须继承AdapterBase类并在配置文件中注册

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.