文章目录
dicom
专用名词理解
IOD (Information Object Definitions)
面向对象程序设计中有“类”的概念(Class)。比如说Rectangular类,有Length和Width两个属性。根据一个类,可以定义一个具体的对象(Object),赋予其Length和Width。
IOD就是Dicom世界中的类,明白了吧。而且,这些类都是规定好的,比如:Patient IOD。
VR(Value Representations)
- C语言里面有很多数据类型,比如整型,浮点等,人所共知。DICOM世界里的所有数据类型,为了“表达的准确性和普适性”,偏偏就不叫数据类型,而叫“数值代表”,即VR。现行DICOM版本一共有27种。比较常见的VR有:
UI - Unique Identifier (maximum length : 64 characters)
CS - Code String (maximum length: 16 characters)
ST - Short Texts
很多DICOM通讯中的问题,是设计者因为对VR的理解不透彻造成的。比如一个特别值得注意的问题是:DICOM标准对一些VR的长度都做了限定。不遵守这些限定,写出来的软件就会有较差的DICOM兼容性(比如生成了某个UID多余64个字符)。此外,不管VR的长度(字符串个数)是否有限定,它一定是个偶数。如遇奇数长度,应以尾部空格补足。自然,和别的系统通信的时候会遇到问题。
AE (Application Entity)
- DICOM 世界中的应用实体…
跟没说一样? 没错,实体(Entity)这个词比较狡猾。其实指得就是符合DICOM标准的通讯网络中的一台电脑。如果你较真,说一台电脑上可以装个虚拟机,同时以DICOM连通,这样就是两个AE了。那么你就明白为什么这个概念的名字叫Application Entity而不是Application Computer了吧。叫Entity就是让你没法较真,你可以看到起这个名字的人多么狡猾了吧。
AE既可以是一个成像设备(Modality),也可是一个PACS Server, 也可以是QA Client Machine,等等等等。
AET(Application Entity Title)
每个网络上的设备都应该会有网卡和它自己的IP地址,只有这样别的设备才能够找到它。除标准的网络设置之外,DICOM为每个AE规定了它自己的DICOM名称,即“应用实体名(Application Entity Title AET)”。
SOPs (Service-Object Pairs) -
服务是Client-Server 构架中最基本的概念。DICOM中所有的服务都无外乎是在传递IOD。分析问题的时候往往将他们一起考虑,成为SOPs。再说白一点儿就是服务端与客户端概念
SCU SCP
CT机向图像归档请求图像存储服务,而图像归档向CT机提供存储服务。为了区分服务请求者和服务提供者,DICOM称前者为服务类用户(Service Class Users,SCU),称后者为服务类提供者(Service Class Providers,SCP)。在之前CT的那个例子中,CT机扮演CT存储服务类用户(CT Storage SCU),数字图像归档扮演CT存储服务类提供者(CT Storage SCP),这东西也是服务端与客户端,再说白一点,SCU 就是服务端,SCP就是客户端
附:dcm4chee安装
环境
- win2003
- mysql5.5
- jdk7
- jboss-4.2.3.zip
- 测试工具jdicom
- dcm4chee 2.18.3.mysql.zip
- dcm4chee 2.18.0.mysql.zip
以下路径说明
- %java_home% jdk安装路径
- %dcm4chee_home% dcm4chee2.18.3安装路径
- %jboss_home% jboss安装路径
配置
- mysql安装不会的百度
- jdk7
我的电脑(右键)->属性->高级->环境变量
# 设置 java_home
java_home c:\dicom\jdk7
# 设置 path
%java_home%\bin
# 设置classpath
%java_home%\lib\dt.jar;%java_home%\lib\tools.jar
- 解压dcm4chee 2.18.3.mysql.zip
- 解压jboss-4.2.3.zip
- 解压dcm4chee 2.18.3.mysql.zip
因为dcm4chee-2.18.3中缺少配置文件,复制dcm4chee-2.18.0/bin中的install_jboss.bat到dcm4chee-2.18.3/bin中,在cmd中执行install_jboss.bat [jboss-4.2.3路径] 这个路径是做为参数传给install_jboss.bat的,然后就会复制一大堆的jboss文件,做完这一步,jboss和dcm4chee-2.18.0的文件就都没用了
- 配置dcm4chee-2.18.3的数据源
d
c
m
4
c
h
e
e
h
o
m
e
dcm4chee_home
dcm4cheehome/server/default/deploy/pacs-mysql-ds.xml
修改这里面的数据库jdbc连接配置,主要是user-name 和password,jndi名不要改,数据库名改了应该没事,以下是我的配置,做java开发的应该都会
<datasources>
<local-tx-datasource>
<jndi-name>pacsDS</jndi-name>
<connection-url>jdbc:mysql://localhost:3306/pacsdb</connection-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
<user-name>root</user-name>
<password>root</password>
<exception-sorter-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLExceptionSorter</exception-sorter-class-name>
<!-- should only be used on drivers after 3.22.1 with "ping" support
<valid-connection-checker-class-name>org.jboss.resource.adapter.jdbc.vendor.MySQLValidConnectionChecker</valid-connection-checker-class-name>
-->
<!-- sql to call when connection is created
<new-connection-sql>some arbitrary sql</new-connection-sql>
-->
<!-- sql to call on an existing pooled connection when it is obtained from pool - MySQLValidConnectionChecker is preferred for newer drivers
<check-valid-connection-sql>some arbitrary sql</check-valid-connection-sql>
-->
<!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional) -->
<metadata>
<type-mapping>mySQL</type-mapping>
</metadata>
</local-tx-datasource>
</datasources>
- 建数据库
# cmd下执行
mysql -u root -proot // 这是我的密码,
create database pacsdb;
use pacsdb ;
\. %dcm4chee%/sql/create.mysql
# 数据库建完成
- 启动dcm4chee
%dcm4chee%/bin/run.bat
访问:http://127.0.0.1:8080/dcm4chee-web3
登录名为admin密码也是admin
- 安装jdicom
# cmd下转到jdicom的文件位置
java -jar install.jar
# 然后就会像安装其它软件一样,安装后会看到很多文件,都java开的,所以在linux下也可以用