- Dcm4che简介
IT-Franky
JavaWeb
Dcm4che是一个应用于医疗IT行业的的开源项目,其核心工具包基于java,对DICOM标准和HL7标准提供良好的支持,且严格遵循IHE规范。特性:1.模块化设计2.基于WEB的用户界面3.DICOM标准接口,HL7标准接口,DICOM对象的WEB访问(webaccessDICOMobject,WADO)接口dcm4che项目主要有两个核心内容:dcm4chetoolkit和dcm4chee。1
- DCM4CHE图像显示
啸鸢
DCM4CHEEDicom医学影像处理
概述本文主要介绍dicom图像从拿到像素数据到显示到图像的基本过程,通过DCM4CHE获取dicom文件像素数据,通过默认窗宽窗位,显示到java的BufferedImage上,并将BufferedImage保存成jpg到本地有关窗宽窗位的解释和处理方法可以参考:https://blog.csdn.net/songzitea/article/details/8505469通过DCM4CHE获取di
- dcm4che
jamie_zhengmin
dcm4chearchivejboss工具服务器
dcm4che工具包DICOMtoolkitDICOM工具包dcm4chee归档服务器器IHE影像管理器和影像归档执行器(dcm4jbossarchive影像归档器,影像扫描检查和报告的管理)dcm4che2重架构dcm4che的重架构实现
- 详解 FO-DICOM:医疗影像处理的强大工具
猿享天开
DICOM医学影像专业知识精讲人工智能
在现代医疗领域,DICOM(数字成像和通信医学)标准是用于存储和传输医学影像的广泛采用的协议。FellowOakDICOM(简称FO-DICOM)是一个功能齐全的.NET库,专门用于处理DICOM文件和协议。本文将详细介绍FO-DICOM的功能、优点以及在开发医疗影像应用中的应用。主要功能1.DICOM文件操作FO-DICOM提供了全面的方法来处理DICOM文件。开发者可以通过同步或异步的方式读取
- 交互开发---测量工具(适用VTK或OpenGL开发的应用程序)
伍心
VTK-医学图像处理c++visualstudio开发语言microsoft软件工程
简介:经常使用RadiAntDICOMViewer来查看DICOM数据,该软件中的测量工具比较好用,就想着仿照其交互方式自己实现下。后采用VTK开发应用程序时,经常需要开发各种各样的测量工具,如果沿用VTK的widgets的思路,绘制出来的的控件不够漂亮,且交互不太灵活,并且随着测量工具的增强,渲染的效率也会有所降低。基于上面的原因,就仿照RadiAntDICOMViewer的交互封装了一个DLL
- 如何解析DICOM文件中的Pixel Data ?
雪下的那么认真
DICOM
DICOM文件可以大致分为两部分:一部分:与图像相关的元信息,包括患者信息,检查信息,序列信息,图像信息等等。另一部分:图像的像素数据。在解析DICOM文件中的像素数据的时候,我们先需要读取以下图像相关信息:以下是某个CT影像中的图像信息示例:(0028,0002)SamplesperPixelVR:USLength:2Value:1(0028,0004)PhotometricInterpreta
- Python进行简单医学影像分析的示例
go5463158465
python深度学习算法python开发语言
以下是一个使用Python进行简单医学影像分析的示例,这里我们以常见的DICOM格式医学影像为例,使用pydicom库读取DICOM文件,使用matplotlib进行影像显示,使用scikit-image进行简单的影像处理。需求复现讲解1.安装必要的库在进行医学影像分析之前,需要安装几个必要的Python库:pydicom:用于读取和处理DICOM格式的医学影像文件。matplotlib:用于显示
- DICOM标准详解
浩瀚之水_csdn
三维图像dcm
DICOM(DigitalImagingandCommunicationsinMedicine)标准是医学图像和相关信息的数字图像通信的国际标准。以下是DICOM标准的详细内容:一、概述DICOM标准由医学图像处理和通信的专业组织DICOM标准委员会(DICOMStandardsCommittee)负责维护和更新。它定义了医学影像设备(如X射线、CT扫描、MRI等)生成、存储、传输和显示的规范,以
- Pacs系统开发之下载DICOM文件方式
_半夏曲
PACS系统相关pacs
在PACS系统的下载检查功能中,用户可以选择不同的下载选项,其中包括:Compress(压缩)IncludeDICOMDIR(包含DICOMDIR文件)这两个选项会影响下载的DICOM影像文件格式,具体作用如下:1.Compress(压缩)作用是否对DICOM影像文件进行压缩,减少文件体积,加快下载速度。压缩方式可能包括:ZIP格式(打包成.zip文件)7z或TAR(某些PACS可能支持)特点✅减
- Pacs系统开发之导出检查方式
_半夏曲
PACS系统相关dicomjavapacs
在PACS系统中,ExportStudy(导出检查)允许用户将DICOM影像数据导出到不同的目标系统或存储。用户可以选择不同的Exporter(导出器)类型来决定数据传输方式。以下是3种导出类型的详细分析:1.同步DICOMC-STORE导出器作用通过DICOMC-STORE(DICOM影像存储协议),将检查(Study)同步发送到目标DICOM服务器(PACS、Workstation或其他影像存
- DICOM图像处理:深入解析DICOM彩色图像中的Planar配置及其对像素数据解析处理的实现
猿享天开
DICOM医学影像知识图像处理医学影像DICOMPlanar
引言在DICOM(DigitalImagingandCommunicationsinMedicine)标准中,彩色图像的存储与显示涉及多个关键属性,其中**PlanarConfiguration(平面配置)**属性(标签(0028,0006))尤为重要。当遇到彩色DICOM图像在浏览时被错误地分割为9张小图,而实际应显示为一张完整的图像的问题,很可能与PlanarConfiguration属性的解
- CPR曲面重建代码
peanut_wu
算法
废话不说,直接上代码:#include"vtkAutoInit.h"#include"vtkPolyData.h"#include"vtkProbeFilter.h"#include"vtkParametricFunctionSource.h"#include"vtkParametricSpline.h"#include"vtkDICOMImageReader.h"#include"vtkPoin
- cornerstonejs介绍
花花进修
DICOM医学影像查看器html5javascriptnpmyarn
Cornerstone.js是一个用于医疗成像应用程序的开源JavaScript库。它专门设计用于在Web浏览器中处理和显示DICOM(数字成像和通信在医学领域)图像。Cornerstone.js为开发者提供了强大的工具,可以轻松构建功能丰富的医学图像查看器,广泛应用于放射学、病理学、超声成像等领域。特点高性能图像渲染:支持大尺寸医学图像的快速渲染,包括CT扫描、MRI、X光片等。利用GPU加速(
- OHIF记录(十)——初始页面的table配置
Leonopteryxw
OHIFreactjs
OHIF记录(十)——初始页面的table配置在根路径页面的table包含两部分:第一部分:由三个搜索框组成的检索模块,包括患者姓名,Description,检查日期等三种不同类型的检索。第二部分:库中所有dicom数据的无序列表,源码中有24条数据。在platform/ui/components/studyList.js里定义了用于修改检索模块的接口,即mediumTableMeta数组,数组同
- OHIF Viewer医学影像学习日记
刘斩仙的笔记本
javascriptOHIFViewer医学影像vuereact
前言:OHIFViewer一个开源的,基于Web的,医学影像查看器。项目文档GitHub项目大概流程:我们下载OHIFViewer项目运行打包,发布到服务器,然后暴露访问地址;再由后端提供返回固定格式json的接口,完整路径例如:http://www.baidu.com/#/viewer?url=http://www.your.com/apiv1/dicom/analysis/studies把此链
- mitk插件有哪些以及作用
zhangyihu321
mitk插件
MITK(MedicalImagingInteractionToolkit)是一个用于医疗图像处理与交互的开源软件框架。它提供了一套丰富的插件,使其功能得到扩展和定制。以下是一些常见的MITK插件及其作用:1.**DICOM支持插件**:-**作用**:提供对DICOM(DigitalImagingandCommunicationsinMedicine)格式的支持,包括加载、浏览和存储DICOM图
- PyQt Python 使用 VTK ITK 进行分割 三维重建 医学图像可视化系统 流程
恋恋西风
PythonpyqtpythonVTKITK
效果:重建流程:1.输入可以读取DICOM,niinrrd等数据设置读取器以加载DICOM图像系列。使用itk::GDCMImageIO作为DICOM图像的输入输出接口。使用itk::GDCMSeriesFileNames获取指定路径下的所有DICOM文件名。使用itk::ImageSeriesReader读取DICOM图像序列,并将其作为3D图像存储。2.分割创建itk::ThresholdIm
- some resources about meditation
搬布
AndyPuddicombe--allittakesis10mindfulminutes?Atalkaboutmeditationheadspace.comHeadspacehavesomefreetrial
- Softing mobiLink Power:集成FDI技术,简化多协议总线设备的配置方式
SoftingChina
FDI多协议总线通信工具现场总线配置方式故障排查
Softing的mobiLinkPower是一款多协议总线通信工具,用于调试和维护过程自动化现场设备。目前,该工具已具备完整的FDICommServer(包括FF、PA、HART),并支持与FDI客户端一起使用,如艾默生的AMSDeviceConfigurator,以配置现场总线设备。mobiLinkPower简化了过程工业运维人员对现场设备的配置方式,并支持三种常用的总线通信协议:HART、FO
- 【从0上手cornerstone3D】核心概念解析(下)
云之遥_
CornerStone3D前端javascriptcornerstone
前言渲染Dicom文件的具体流程请查看:如何渲染一个基础的Dicom文件(上)Github演示:https://github.com/jianyaoo/vue-cornerstone-demo逻辑图在线链接:逻辑图在线链接在线查看显示效果(加载需时间,可先点击运行),欢迎fork接上文:如何渲染一个Dicom文件(上)五、核心概念解析(二)在上文中解释了渲染过程中遇到的一些核心概念:imageId
- ITK编译及安装
痛&快乐着
ITK学习ITK
文章目录前言CMake配置选项说明运行VS2015编译及安装VTK转ITKITK转VTK参考文献最近想利用ITK读取整个Dicom图像到内存,再将读取到的ITK数据转换到VTK。于是乎,开始了一段ITK编译之路。以下将记录一些有用的信息,以备后用。前言DICOM图像的读取问题相比于VTK类库中vtkDICOMImageReader类读取DICOM序列图像,借助ITK类库实现对DICOM序列图像的读
- 一文(10图)了解Cornerstone3D核心概念(万字总结附导图)
云之遥_
CornerStone3Dcornerstone3D医学影像前端
Cornerstone3D介绍Cornerstone3D是一个专门为处理三维医学影像而设计的JavaScript库。它是Cornerstone项目的一部分,旨在为医学影像社区提供高性能、可扩展且易于使用的开源Web工具,专注于提供交互式的3D医学图像浏览体验,适用于多种医学影像格式。特性健壮的DICOM解析:能够处理和显示各种3D医学影像格式,如CT、MRI和PET扫描等,支持Dicom格式、Ni
- FoDicom 取值时注意事项
bianguanyue
c#
FoDicom查看DataSet时,点开结果视图后可看到相应的Dicom标签及相应的值。另外Value中如果有\\将两个值分开的,那么就表示这个值是多值,也就是由不只一个值构成,这时取值时需要用多值数据结构进行获取(如数组),否则会导致错误……Dicom中NumberOfSlices如果不能通过Tag获取时,则需要通过计算才能得到,其计算逻辑如下:
- ITK + ANT,无法显示三维
qq_1248742467
pytorch人工智能python
背景:之前用ANT保存ima格式的数据,选择的是保存所有的序列用python将dicom转为nii的格式,importnibabelasnibimporttorch"""不管是nii还是nii.gz都是二维的,为啥呢"""fobj=nib.load("nii/NII.nii.gz")sobj=nib.load("nii/orig/5converted-0.nii.gz")inp,out=torch
- 医学图像的图像处理、分割、分类和定位-1
无水先生
图像处理分类人工智能
一、说明本报告全面探讨了应用于医学图像的图像处理和分类技术。开展了四项不同的任务来展示这些方法的多功能性和有效性。任务1涉及读取、写入和显示PNG、JPG和DICOM图像。任务2涉及基于定向变化的多类图像分类。此外,我们在任务3中包括了胸部X光图像的性别分类(男性/女性的2类分类),并在任务4中通过回归分析从X射线图像中估计了年龄。任务5侧重于胸部X射线图像中的肺区域分割,任务6将隔离扩展到四个不
- Dicom Tag: Image Position,Image Orientation和Patient Position
北方骑马的萝卜
Dicom图像处理dicom医学图像
文章目录ImagePosition,ImageOrientation和PatientPositionImagePosition(0020,0032):ImageOrientation(0020,0037):PatientPosition(0018,5100):ImagePosition,ImageOrientation和PatientPosition在DICOM图像中,ImagePosition和
- python读取Dicom文件
北方骑马的萝卜
Dicom图像处理python服务器开发语言
文章目录1.pydicomLibrary2.SimpleITKLibrary3.ITKLibrary(InsightToolkit)4.GDCMLibrary(GrassrootsDICOM)下面提供几种用python方法读取Dicom文件1.pydicomLibraryimportpydicom#ReadDICOMfiledataset=pydicom.dcmread("path_to_dico
- docker-compose安装DCM4CHEE
晓夜残歌
docker容器运维
简介docker-compose是一个用于定义和运行多容器Docker应用程序的工具。通过编写docker-compose.yml文件,你可以配置多个Docker容器,并通过简单的命令将它们一起启动。DCM4CHEE是一个开源的医学影像存档和通信系统(PACS)。它支持DICOM(数字图像与通信医学)标准,用于存储、检索、传输和查看医学影像。以下是使用docker-compose安装DCM4CHE
- 用Photoshop查看DICOM
优视魔方
医学影像基础经验分享
想看简单了解一下DICOM的图像内容,但又没有DICOM浏览器,可以用PS打开简单观看,步骤如下:1.将DICOM文件的后缀改成.raw(一般DICOM文件后缀为.dcm),如下图0000.dcm复制改名后为0000.raw2.鼠标右键点击0000.raw,记录该文件的占用空间,比如该文件尺寸为554950字节,如下图3.打开PS,将0000.raw拖入PS窗口,会弹出一个对话框,一般DICOM的
- DICOM体位信息说明
优视魔方
医学影像基础经验分享
DICOM数据方向DICOM中定义了一个以病人为基础的坐标系①,该坐标系是笛卡尔空间直角坐标系。DICOM中的跟图像相关的字段为:[0010,2210](AnatomicalOrientationType)=BIPED二足动物(默认)=QADRUPED四足动物以人举例,标准定义的方向是+X右肩膀到左肩膀+Y前胸到后背+Z足到头由此可知,该坐标系是右手坐标系。[7FE0,0010](PixelDat
- PHP,安卓,UI,java,linux视频教程合集
cocos2d-x小菜
javaUIPHPandroidlinux
╔-----------------------------------╗┆
- 各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
bozch
.net.net mvc
在.net mvc5中,在执行某一操作的时候,出现了如下错误:
各表中的列名必须唯一。在表 'dbo.XXX' 中多次指定了列名 'XXX'。
经查询当前的操作与错误内容无关,经过对错误信息的排查发现,事故出现在数据库迁移上。
回想过去: 在迁移之前已经对数据库进行了添加字段操作,再次进行迁移插入XXX字段的时候,就会提示如上错误。
&
- Java 对象大小的计算
e200702084
java
Java对象的大小
如何计算一个对象的大小呢?
 
- Mybatis Spring
171815164
mybatis
ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
CustomerService userService = (CustomerService) ac.getBean("customerService");
Customer cust
- JVM 不稳定参数
g21121
jvm
-XX 参数被称为不稳定参数,之所以这么叫是因为此类参数的设置很容易引起JVM 性能上的差异,使JVM 存在极大的不稳定性。当然这是在非合理设置的前提下,如果此类参数设置合理讲大大提高JVM 的性能及稳定性。 可以说“不稳定参数”
- 用户自动登录网站
永夜-极光
用户
1.目标:实现用户登录后,再次登录就自动登录,无需用户名和密码
2.思路:将用户的信息保存为cookie
每次用户访问网站,通过filter拦截所有请求,在filter中读取所有的cookie,如果找到了保存登录信息的cookie,那么在cookie中读取登录信息,然后直接
- centos7 安装后失去win7的引导记录
程序员是怎么炼成的
操作系统
1.使用root身份(必须)打开 /boot/grub2/grub.cfg 2.找到 ### BEGIN /etc/grub.d/30_os-prober ### 在后面添加 menuentry "Windows 7 (loader) (on /dev/sda1)" { 
- Oracle 10g 官方中文安装帮助文档以及Oracle官方中文教程文档下载
aijuans
oracle
Oracle 10g 官方中文安装帮助文档下载:http://download.csdn.net/tag/Oracle%E4%B8%AD%E6%96%87API%EF%BC%8COracle%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3%EF%BC%8Coracle%E5%AD%A6%E4%B9%A0%E6%96%87%E6%A1%A3 Oracle 10g 官方中文教程
- JavaEE开源快速开发平台G4Studio_V3.2发布了
無為子
AOPoraclemysqljavaeeG4Studio
我非常高兴地宣布,今天我们最新的JavaEE开源快速开发平台G4Studio_V3.2版本已经正式发布。大家可以通过如下地址下载。
访问G4Studio网站
http://www.g4it.org
G4Studio_V3.2版本变更日志
功能新增
(1).新增了系统右下角滑出提示窗口功能。
(2).新增了文件资源的Zip压缩和解压缩
- Oracle常用的单行函数应用技巧总结
百合不是茶
日期函数转换函数(核心)数字函数通用函数(核心)字符函数
单行函数; 字符函数,数字函数,日期函数,转换函数(核心),通用函数(核心)
一:字符函数:
.UPPER(字符串) 将字符串转为大写
.LOWER (字符串) 将字符串转为小写
.INITCAP(字符串) 将首字母大写
.LENGTH (字符串) 字符串的长度
.REPLACE(字符串,'A','_') 将字符串字符A转换成_
- Mockito异常测试实例
bijian1013
java单元测试mockito
Mockito异常测试实例:
package com.bijian.study;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import org.junit.Assert;
import org.junit.Test;
import org.mockito.
- GA与量子恒道统计
Bill_chen
JavaScript浏览器百度Google防火墙
前一阵子,统计**网址时,Google Analytics(GA) 和量子恒道统计(也称量子统计),数据有较大的偏差,仔细找相关资料研究了下,总结如下:
为何GA和量子网站统计(量子统计前身为雅虎统计)结果不同?
首先:没有一种网站统计工具能保证百分之百的准确出现该问题可能有以下几个原因:(1)不同的统计分析系统的算法机制不同;(2)统计代码放置的位置和前后
- 【Linux命令三】Top命令
bit1129
linux命令
Linux的Top命令类似于Windows的任务管理器,可以查看当前系统的运行情况,包括CPU、内存的使用情况等。如下是一个Top命令的执行结果:
top - 21:22:04 up 1 day, 23:49, 1 user, load average: 1.10, 1.66, 1.99
Tasks: 202 total, 4 running, 198 sl
- spring四种依赖注入方式
白糖_
spring
平常的java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依赖类不由程序员实例化,而是通过spring容器帮我们new指定实例并且将实例注入到需要该对象的类中。依赖注入的另一种说法是“控制反转”,通俗的理解是:平常我们new一个实例,这个实例的控制权是我
- angular.injector
boyitech
AngularJSAngularJS API
angular.injector
描述: 创建一个injector对象, 调用injector对象的方法可以获得angular的service, 或者用来做依赖注入. 使用方法: angular.injector(modules, [strictDi]) 参数详解: Param Type Details mod
- java-同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待
bylijinnan
Integer
public class PC {
/**
* 题目:生产者-消费者。
* 同步访问一个数组Integer[10],生产者不断地往数组放入整数1000,数组满时等待;消费者不断地将数组里面的数置零,数组空时等待。
*/
private static final Integer[] val=new Integer[10];
private static
- 使用Struts2.2.1配置
Chen.H
apachespringWebxmlstruts
Struts2.2.1 需要如下 jar包: commons-fileupload-1.2.1.jar commons-io-1.3.2.jar commons-logging-1.0.4.jar freemarker-2.3.16.jar javassist-3.7.ga.jar ognl-3.0.jar spring.jar
struts2-core-2.2.1.jar struts2-sp
- [职业与教育]青春之歌
comsci
教育
每个人都有自己的青春之歌............但是我要说的却不是青春...
大家如果在自己的职业生涯没有给自己以后创业留一点点机会,仅仅凭学历和人脉关系,是难以在竞争激烈的市场中生存下去的....
&nbs
- oracle连接(join)中使用using关键字
daizj
JOINoraclesqlusing
在oracle连接(join)中使用using关键字
34. View the Exhibit and examine the structure of the ORDERS and ORDER_ITEMS tables.
Evaluate the following SQL statement:
SELECT oi.order_id, product_id, order_date
FRO
- NIO示例
daysinsun
nio
NIO服务端代码:
public class NIOServer {
private Selector selector;
public void startServer(int port) throws IOException {
ServerSocketChannel serverChannel = ServerSocketChannel.open(
- C语言学习homework1
dcj3sjt126com
chomework
0、 课堂练习做完
1、使用sizeof计算出你所知道的所有的类型占用的空间。
int x;
sizeof(x);
sizeof(int);
# include <stdio.h>
int main(void)
{
int x1;
char x2;
double x3;
float x4;
printf(&quo
- select in order by , mysql排序
dcj3sjt126com
mysql
If i select like this:
SELECT id FROM users WHERE id IN(3,4,8,1);
This by default will select users in this order
1,3,4,8,
I would like to select them in the same order that i put IN() values so:
- 页面校验-新建项目
fanxiaolong
页面校验
$(document).ready(
function() {
var flag = true;
$('#changeform').submit(function() {
var projectScValNull = true;
var s ="";
var parent_id = $("#parent_id").v
- Ehcache(02)——ehcache.xml简介
234390216
ehcacheehcache.xml简介
ehcache.xml简介
ehcache.xml文件是用来定义Ehcache的配置信息的,更准确的来说它是定义CacheManager的配置信息的。根据之前我们在《Ehcache简介》一文中对CacheManager的介绍我们知道一切Ehcache的应用都是从CacheManager开始的。在不指定配置信
- junit 4.11中三个新功能
jackyrong
java
junit 4.11中两个新增的功能,首先是注解中可以参数化,比如
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runn
- 国外程序员爱用苹果Mac电脑的10大理由
php教程分享
windowsPHPunixMicrosoftperl
Mac 在国外很受欢迎,尤其是在 设计/web开发/IT 人员圈子里。普通用户喜欢 Mac 可以理解,毕竟 Mac 设计美观,简单好用,没有病毒。那么为什么专业人士也对 Mac 情有独钟呢?从个人使用经验来看我想有下面几个原因:
1、Mac OS X 是基于 Unix 的
这一点太重要了,尤其是对开发人员,至少对于我来说很重要,这意味着Unix 下一堆好用的工具都可以随手捡到。如果你是个 wi
- 位运算、异或的实际应用
wenjinglian
位运算
一. 位操作基础,用一张表描述位操作符的应用规则并详细解释。
二. 常用位操作小技巧,有判断奇偶、交换两数、变换符号、求绝对值。
三. 位操作与空间压缩,针对筛素数进行空间压缩。
&n
- weblogic部署项目出现的一些问题(持续补充中……)
Everyday都不同
weblogic部署失败
好吧,weblogic的问题确实……
问题一:
org.springframework.beans.factory.BeanDefinitionStoreException: Failed to read candidate component class: URL [zip:E:/weblogic/user_projects/domains/base_domain/serve
- tomcat7性能调优(01)
toknowme
tomcat7
Tomcat优化: 1、最大连接数最大线程等设置
<Connector port="8082" protocol="HTTP/1.1"
useBodyEncodingForURI="t
- PO VO DAO DTO BO TO概念与区别
xp9802
javaDAO设计模式bean领域模型
O/R Mapping 是 Object Relational Mapping(对象关系映射)的缩写。通俗点讲,就是将对象与关系数据库绑定,用对象来表示关系数据。在O/R Mapping的世界里,有两个基本的也是重要的东东需要了解,即VO,PO。
它们的关系应该是相互独立的,一个VO可以只是PO的部分,也可以是多个PO构成,同样也可以等同于一个PO(指的是他们的属性)。这样,PO独立出来,数据持