技术问题和解决
文章平均质量分 78
inter_peng
这个作者很懒,什么都没留下…
展开
-
[疑难杂症2024-001] java多线程运行时遇到java.util.ConcurrentModificationException的解决方案
本文由Markdown语法编辑器编辑完成。原创 2024-02-08 21:16:15 · 677 阅读 · 0 评论 -
【科普分享】linux服务器文件挂载技术介绍——mount
mount主要用于服务器之间的硬盘挂载。在非标对接中,我们会遇到医院将数据上传到他们的服务器,同时会通过http的方式,将数据的路径通知我们。然后我们便可以根据每一个病例指定的路径,去服务器上下载过来。而前提是,我们首先需要把医院的数据目录,挂载到我们的服务器上,这时就需要用到mount技术了。这里假设有两台服务器。且假设两边的服务器,都是linux操作系统。原创 2023-10-27 23:18:39 · 279 阅读 · 0 评论 -
[疑难杂症2023-007]multiprocessing.Process使用时遇到的几个棘手问题
本文由Markdown编辑器编辑完成。原创 2023-08-06 17:33:10 · 504 阅读 · 0 评论 -
[疑难杂症2023-006]解压dicom压缩格式文件时的不定时阻塞问题解决方案
本文由Mrakdown语法编辑器编辑完成。原创 2023-07-27 13:08:21 · 352 阅读 · 0 评论 -
[疑难杂症2023-002]不就是Move一个文件吗,怎么会有这么多坑呢?
近期在项目中遇到一个需求.背景是,在一个QT封装的C/S架构的软件中,一个报告的预览页面,是由QT封装了QWebWidget, 里面放着一个网页.这个网页通过调用一定的逻辑,可以将当前看到的网页,生成一个pdf, 存储到一个路径下面.由于前端在执行js(调用jsPdf库)时,无法设置存储路径,因此只能存储在软件安装的当前目录下面.比如,这个C/S架构的软件,是安装在了D盘下面的某个文件夹中.但是,我们希望这个报告的pdf, 默认生成在C盘的一个指定目录下面.因此,原创 2023-01-19 12:15:02 · 1274 阅读 · 0 评论 -
[疑难杂症2023-001]代码没有任何改变,仅用CI打了一个新镜像,运行出错的可能原因分析
本文列举在日常工作中遇到的奇怪问题.在代码几乎未做变更的情况下,打出来的docker镜像报错.这里介绍如何解决这个问题.希望未来再次遇到类似问题时,能够吸取相关教训.原创 2023-01-17 19:58:45 · 563 阅读 · 0 评论 -
你了解DCM的AE Title的长度限制吗?
了解DICOM的各个tag的VR的不同,对于处理相关的业务具有重要的作用。原创 2022-09-23 22:39:24 · 1465 阅读 · 0 评论 -
我的linux系统SSD占用总是100%怎么办?
本文由Markdown语法编辑器编辑完成。1. 前言:你有没有这样的经历,每当要下载一个文件时,就会提示你的磁盘空间已经不太够用了。通过df -h查看,可以看到SSD的占用已经达到了100%.虽然系统上还挂载了一块很大的硬盘,但是毕竟操作系统在SSD上面。因此系统的一些功能会受到影响,比如剪贴板就时灵时不灵的。能够想到的,占用较大空间的文件,一般是:软件的安装程序;软件的一些缓存;数据和图像;docker的image;虚拟环境venv;nodule_modulesjava的.m2等原创 2022-04-09 18:26:44 · 2883 阅读 · 1 评论 -
为什么一个线上运行“稳定“的系统要持续运维?
本文由Markdown语法编辑器编辑完成.1. 问题提出:在互联网行业, 有一个岗位叫运维工程师. 而且开发人员, 也需要在一个项目上线后, 在前几天/几周/几月的时间里, 持续维护这个项目, 以确保这个项目能够平稳地运行.我以前其实不是很理解, 为什么一个系统之前运行得好好的, 突然某一天, 看似也没有发生什么特别的事情, 这个系统突然就出毛病了? 为什么同样的代码, 在不同的客户机器上, 会有不同的表现?难道代码还会选择性工作吗? 还会选择性奔溃吗?最近几天, 我就在查找一个在医院已经上线几原创 2021-02-25 20:13:31 · 552 阅读 · 1 评论 -
如何根据一个.raw文件还原为一个dicom文件
本文由Markdown语法编辑器编辑完成.1. 需求背景已知已经获取到了一幅dicom医学图像的像素文件, 它的格式为.raw文件. 由于市面上通用的dicom viewer软件, 都只能识别dicom格式的文件. 因此, 如何将这个.raw文件, 还原为能够被大部分软件识别的医学dicom文件, 从而进行相应的显示和操作.2. 需求调研11月09日 星期一的有道云笔记, 有相关的记录内容....原创 2021-01-31 00:28:48 · 2949 阅读 · 2 评论 -
python3,解析十六进制字节流为中文字符的方法
本文由Markdown语法编辑器编辑完成。1. 问题提出近期在处理一家医院的DR影像时,发现用pydicom读取出来的相关tag(BodyPartExamined, SeriesDescription等)是乱码,而由于后续还需要基于这些tag的值进行判断。因此,当务之急就是需要把这些乱码的值,想办法解析为正确的内容。通过本机的dcmdump或gdcmdump, 在显示本图的相关信息时,显示出来都不正常。或者是以省略号显示,或是以乱码显示。2. 问题调研3. 问题解决相关链接:...原创 2020-11-16 20:48:29 · 1723 阅读 · 0 评论 -
基于dcm4chee,生成dcm无损压缩格式的图像
本文由Markdown语法编辑器编辑完成。1. 需求提出:由于在医学影像AI相关的公司工作,因此在日常工作中,我主要接触的是胸部CT图像。图像的扫描参数一般是:Rows: 512Columns: 512一张图像的大小,大约是512k左右。一般一套薄层1.25mm的序列,大约有200~300张,那么占用内存空间约为100M ~ 150M。由于三甲医院每天的病人量特别大,因此我们在医院的服务器,一天大约光胸部CT影像,就能接到500 ~ 1000套左右,那么一天需要新增的存储量便是:50G ~ 1原创 2020-10-29 23:47:18 · 1784 阅读 · 0 评论 -
一例与mysql索引相关的线上问题
本文由Markdown语法编辑器编辑完成。1. 问题来源已知一套在医院部署的拉图系统,每天负责从对接的医院PACS系统,或CT机,获取原始影像数据,并进行一定的后处理,存入拉图系统所在的服务器中。由于服务器的容量有限,因此设置了每天凌晨的定时清理:每天凌晨1点,定时任务会启动,从数据库中查询到比较久远的数据,优先删除,保证服务器的硬盘容量,维持在一个稳定健康的水平。而且为了不影响正常的拉图服务,清理数据的定时任务,被设定为每天凌晨1点~7点之间进行。 然而,人算不如天算。尽管已经设定了早上7点的任务原创 2020-07-30 13:06:24 · 180 阅读 · 0 评论 -
Linux在工作中的一些应用和知识点
本文由Markdown语法编辑器编辑完成。1. Linux - Ubuntu 18.041.1 关闭本机的redis服务由于本机的docker服务有redis的container. 由于本机也安装有redis服务。它们用的都是6379的端口。因此,为了能够使docker的redis服务能够正常启动,需要手动关闭系统的redis服务。指令如下:/etc/init.d/redis-server stop 停止本机的redis服务/etc/init.d/redis-server restart/e原创 2020-06-24 11:07:02 · 853 阅读 · 0 评论 -
Celery的apply_async()无法正常工作的解决方案之一
本文由Markdown语法编辑器编辑完成。1. 问题提出任务队列是一种在线程或机器间分发任务的机制。消息队列的输入是工作的一个单元,称为任务,独立的职程(Worker)进程持续监控队列中是否有需要处理的新任务。Celery用消息通信,通常使用中间人(Broker)在客户端和职程间斡旋。这个过程从客户端向队列添加消息开始,之后中间人把消息派送给职程。Celery系统可包含多个职程和中间人,...原创 2020-03-06 23:32:28 · 5491 阅读 · 0 评论 -
Visual Assist的Syntax Coloring功能失效的解决方法
本文由Markdown语法编辑器编辑完成。问题提出: 今天在重装完Visual Studio 2012, 并且安装了番茄出品的软件助手 Whole.Tomato.Visual.Assist.X后。在装载项目后,发现软件助手的语法着色功能失效了。如下图所示为,Visual Assist中默认的语法着色设置。 , 其中:Blue —— Classes, Structures and Typed原创 2016-08-15 18:55:01 · 1299 阅读 · 0 评论 -
Java解析调用webservice服务的返回XML串
本文由Markdown语法编辑器编辑完成。1. 需求分析;已知当在调用某一webservice的服务时,如果调用成功,会接受到该服务的返回XML串。后端在获取了该XML原始串时,需要进行解析,将其解析为JSON格式,以便于发送到前台,供前台页面显示和交互。2. 解决方案:该XML的原始形式为:<?xml version="1.0" encoding="UTF-8" ?><SOAP-ENV:Enve原创 2018-03-19 22:22:38 · 17265 阅读 · 7 评论 -
Java中基于Java对象生成XML的解决方案
本文由Markdown语法编辑器编辑完成。1. 需求分析:2. 解决方案:3. 参考链接:Jaxb annotation初步使用: http://www.cnblogs.com/fragranting/archive/2012/03/25/xml–jaxb.htmlXML element with attribute and content using JAXB:...原创 2018-03-23 23:19:30 · 1433 阅读 · 0 评论 -
解决定时工程schedulePro无法在tomcat中启动的问题
本文由Markdown语法编辑器编辑完成。1. 问题提出:现假设已经有A,B,C三个工程,A为挂号register,B为门诊outpatient,C为收费hisPay三个工程。由于在这三个工程中都存在一些定时功能: 比如, (1)在register挂号工程中,需要定时(每隔5分钟)去查一下挂号表,是否有已经挂了费但是还未缴费的患者。因为一旦挂号,HIS会将号资源锁号(类似于在12306网站上抢到原创 2018-03-29 22:32:02 · 802 阅读 · 0 评论 -
Python,如何将元组中的元素作为参数传入函数
本文由Markdown语法编辑器编辑完成。1. 需求:现在有一个需求需要实现:2. 函数实现:https://stackoverflow.com/questions/1993727/expanding-tuples-into-arguments原创 2018-10-09 09:54:06 · 13731 阅读 · 0 评论 -
Python程序报UnicodeDecodeError: 'utf8' codec can't decode byte 0xd0 in position 0: invalid continuation
本文由Markdown语法编辑器编辑完成。由于对博客标题的长度有限制,为了能够更准确地说明要解决的问题,和问题的适用范围,该文章的副标题如下:Python解析DICOM图像后,调用Json.dumps或request.post时报&quot;nicodeDecodeError: ‘utf8’ codec can’t decode byte 0xd0 in position的错误的解决方案1. 错误出现...原创 2018-12-20 20:05:19 · 16503 阅读 · 0 评论 -
python中两个复制函数的比较
本文由Markdown语法编辑器编辑完成。1 需求确定最近在完成一个需求:需要实现一个拷贝文件夹的功能。比如原来的目录结构是:/media/admin/Data/PatientID现在需要在Data和PatientID之间增加一级目录为CT,因此修改后的目录结构是:/media/admin/Data/CT/PatientID对于这个需求,基本的思路是:(1)根据PatientID的...原创 2018-12-21 20:23:45 · 2140 阅读 · 0 评论 -
Phabricator工具Arcanist, 在创建review时作者名称显示不正确的解决方案
本文由Markdown语法编辑器编辑完成.1. 问题现象:2. 问题分析:3. 问题解决:参考链接:arc diff uses a wrong author creating the code review task on Phabricatorhttps://stackoverflow.com/questions/32501141/arc-diff-uses-a-wrong-aut...原创 2019-01-25 11:07:41 · 840 阅读 · 0 评论 -
解决python fs(filesystem)库在连接FTP服务器时无法显示文件目录的问题
本文由Markdown语法编辑器编辑完成.1. 问题提出:目前有一个需求是:医院的影像数据是存储在FTP服务器上的,医院提供了连接该FTP服务器的host, user, password等参数.(注:该ftp服务是部署在windows操作系统的IIR服务上)采用的python库是fs(filesystem2)的第三方库.fs==2.0.23版本.在根据提供的参数,可以正常的连接到该ftp服...原创 2019-02-13 20:02:29 · 1188 阅读 · 0 评论 -
后台程序报: "Unhandled error in Deferred:"的一种解决方案
本文由Markdown语法编辑器编辑完成.最近在进行后台的一些模块功能开发时,会莫名地出现:"Unhandled error in Deferred:"的异常提示.这个后台模块的基本功能时,当整个进程启动后,该模块会提供一个HTTP的服务接口,这里设为:127.0.0.1:10001/v1/api/notify/stu. 然后等待其他的模块,向该服务发起post请求.这个后台的功能会每隔一段时...原创 2019-03-29 18:54:32 · 5757 阅读 · 0 评论 -
Ubuntu18.04, Python3.7.4, 解决"ImportError: No module named ssl"的问题
本文由Markdown语法编辑器编辑完成。1. 问题描述最近因为项目中的一个模块升级,使用python的版本需要从python2.7升级到python3.7.4. 由于模块中需要用到RabbitMQ, 以及requests等模块,因此需要python支持ssl。之前我的电脑系统是Ubuntu 14.04, python是2.7。由于python需要升级,因此我下载了Python3.7.4源码...原创 2019-08-24 18:07:19 · 6932 阅读 · 1 评论 -
从奔溃记录的dump中获取异常信息并解决的基本流程
本文由Markdown语法编辑器编辑完成。1. dump文件是什么?2. 如何基于dump文件获取程序奔溃信息3. dump解决问题示例:已知从一次奔溃中生成的dump文件中显示的异常信息为: Exception Information: The thread tried to read from or write to a virtual address for which it does no原创 2018-03-14 19:12:20 · 1819 阅读 · 0 评论 -
在Oracle中创建新用户, 并且赋予该用户查看其他用户视图的权限
本文由Markdown语法编辑器编辑完成。1. 需求提出在HIS与第三方系统进行集成时,某第三方系统需要访问HIS数据库的视图而非全部的数据库表。HIS的数据库为Oracle, 因此需要在Oracle中在原有用户的基础上,再增加一个用户,该用户仅能查看HIS中为其开放的视图。这也是为了系统之间的安全考虑的。2. 解决方案经过技术查阅,找到的解决方案如下:(1)以system用户登录oracle数据库原创 2018-03-06 19:02:33 · 25233 阅读 · 1 评论 -
C++调试时出现:“Run-Time Check Failture #0”的解决方案
本文由Markdown语法编辑器编辑完成。1. 问题提出:C++程序在debug模式下遇到了以下的错误提示: Run-Time Check Failture #0 - The value of ESP was not properly saved across a function of call问题。2. 解决方案:参考链接:https://stackoverflow.com/questions原创 2018-02-08 09:05:31 · 5482 阅读 · 0 评论 -
Python安装scipy,scikit-image时提示"no lapack/blas resources found"的解决方法
该文由Markdown语法编辑器编辑完成。问题背景:近期在做有关图像分割的技术调研,在Github上找到一个关于做肝脏自动分割的代码,代码的地址为: https://github.com/mazoku/liver_segmentation。 文中通过采用GrowCut和Active Contour Model的算法实现了肝脏的完全自动分割。 在作者给出的代码中,需要加载的第三方库有: mat原创 2016-11-18 20:28:16 · 27843 阅读 · 0 评论 -
根据透明度组合两张QImage的方法
本文由Markdown语法编辑器编辑完成。问题需求:在之前完成模型切割的功能中,(关于模型切割,后续会有专门的博文介绍),已经实现了利用现有模型库中的模型,来从体数据中分割模型对应的区域。模型切割类似于拿一个固定大小的模具从被分割的体数据中去挖取出模具所包含的区域。为了在模型切割前,准确地将模型与被分割的区域对齐,增加模型透明度的调节功能,这样可以在调节的过程中,同时看到两部分区域,以便于更准确地对原创 2016-10-18 12:28:31 · 1685 阅读 · 1 评论 -
ITK在写图像文件时发生异常的解决方法
本文由Markdown语法编辑器编辑完成。ITK提供了图像文件读入和写出的接口,分别是 itk::ImageFileReader和itk::ImageFileWriter。但是,在实际应用写文件的接口时,却发生了异常。例如当想将itkImage写出一幅png格式的图像时,系统报异常了。经过查阅,最终得出的结论是,在写出文件时,需要为writer指出写出文件的类型名。用SetImageIO()的接口原创 2016-09-30 15:57:13 · 4432 阅读 · 2 评论 -
[预告]WRC2016世界机器人大会即将于2016年10月21日召开
http://www.worldrobotconference.com/index.html转载 2016-09-06 00:17:19 · 946 阅读 · 0 评论 -
使用vtkExtractVOI时未抽取出VOI的问题解决
本文是由Markdown语法编辑器编辑完成。1. 问题提出:今天要解决的问题是,希望能够用一个类似于BoxWidget的模型来切割一个原始体数据,最后希望从原始体数据中抽取出BoxWidget范围内的体数据。即从一个大的体数据中抽取出一块小的体数据。 说到这里,大家可能也猜出在VTK中有一个现成的类就是来完成这个需求的,它就是vtkExtractVOI。关于该类的详细解释可以查看链接: http原创 2016-07-07 19:46:48 · 1718 阅读 · 3 评论 -
关于DICOM Tag(0018,0088) Spacing Between Slices缺失的解决方法
该文由Markdown语法编辑器编辑完成。一、问题提出在读取医学影像序列的Dicom Tag信息时,有几个Tag是与图像的像素信息相关的。如 Pixel Spacing(), Spacing Between Slices()等。 Pixel Spacing是由两个值构成的数组,表明每一张Dicom影像的x方向和y方向上的像素间距。而由于MR或CT等数据是三维的,因此在构建后的三维体数据vtkIm原创 2016-08-02 20:56:30 · 6162 阅读 · 10 评论 -
vtkActor在Render中移动的方法
本文由Markdown语法编辑器编辑完成。1.问题提出:由于已知在一个vtkRenderer可以加入多个vtkActor。那么现在遇到的需求是,我只需要移动(平移或旋转)其中的一个Actor,而其余的Actor应该保持不变。显然,这时不能够通过修改vtkCamera的参数(Position, FocalPoint)来进行了。因为vtkCamera是vtkRenderer的属性,因此原创 2016-07-19 21:03:50 · 6839 阅读 · 9 评论 -
基于vtkTransform进行旋转、平移和缩放
本文由Markdown语法编辑器编辑完成。1. 问题背景在医学软件中,当从外界读入一个STL类型的模型时,其会按照它内部的坐标位置进行显示。因此它的位置和大小是确定的。但是,在实际应用中,有可能需要人为地对这个STL在空间中进行旋转、平移或缩放等操作。在VTK中,用vtkTransform实现该功能。关于vtkTransform的应用,在vtkBoxWidget中有形象化的例子。关于基于vtkTra原创 2016-07-27 20:57:25 · 15299 阅读 · 2 评论 -
vtkDijkstraGraphGeodesicPath在曲面上寻找最短路径的应用
本文由Markdown语法编辑器编辑完成。1. 问题提出在传统的医学软件中,标记测量一般包括距离(distance), 角度(angle), 椭圆或矩形ROI的面积、灰度均值和标准差等。这些测量一般是在MPR的三个切割面上进行的。而在项目进行的过程中,医生提出“想在曲面上测量两个点之间的最短距离”的需求。这个需求也是临床骨科医生在他们日常使用Mimics软件时经常会使用到的一个测量功能。因此,他们希原创 2016-07-21 09:32:18 · 3746 阅读 · 15 评论 -
MPR在旋转轴线时图像周围出现灰色边界的解决方法
本文是由Markdown语法编辑器编辑完成。1. 问题提出:近日公司开发的一款医学影像处理软件,在MPR显示的界面,当旋转MPR上的轴线时,在图像的后面会出现灰色的背景。这让用户觉得很是不方便,会影响对图像的观察和处理。如下图所示为,当旋转MPR的轴线时,随着MPR轴线的旋转会有一个背景为灰色的平面跟随着轴线一起旋转。这便是本文需要解决的问题。2. 解决过程:从界面显示的效果直观上看,应该是把MPR原创 2016-06-20 20:04:43 · 2181 阅读 · 1 评论 -
QT信号槽多次连接引起的错误修改
本文由Markdown语法编辑器编辑完成。1. 问题描述:在有关QT的编程中,遇到了这样的问题,当由于对QT信号槽连接机制的不理解,导致了对同一个信号槽进行了两次或以上的连接,结果在之后的代码调试中便发生了与自己期望不同的结果。通过在网络上查找相关的解答,得出了解答。原因是QT的同一个信号和槽函数是可以进行多次连接的,但是之后,当触发该信号的时候,槽函数便会被触发N次。N即是该信号和槽函数连接的次数原创 2016-05-16 22:25:02 · 4772 阅读 · 0 评论