2017年2月19日 星期日

安裝Mantis作為事件追蹤系統

最近開會一直有橫向聯繫不夠的問題發生,因此老闆指示要加強各單位橫向聯繫的功能。
所以打算導入Mantis讓「支票攤在陽光下,自己開的支票自己坦」

1. 安裝 CentOS 7.3.1611 使用最小安裝,設定固定IP

2. 修改 /etc/selinux/config 將模式改為 permissive

3. 使用yum安裝所需的套件 net-tools unzip wget  mariadb-server httpd php php-pdo php-mysql

4. 設定服務開機啟動 systemctl enable httpd

5. 啟動服務 systemctl start mariadb

6. 關閉防火牆 systemctl disable firewalld  (好孩子不要學)

7. 下載 mantisbt-2.1.0.zip 解壓縮放置到 /var/www/html/

8. 下載 adminer.php 放置到 /var/www/html/

9. 使用adminer登入mariadb建立一個新的資料庫與使用者

10. 使用瀏覽器連接到mantis目錄會導向installer

11. 依照installer的引導完成mantis初始化

12. 最後需要將config.inc.php內容放置到 /var/www/html/mantis/config/config_inc.php

13. 預設帳號為administrator 密碼為 root

以上就是基本安裝


2017年2月12日 星期日

使用C#抓取PACS系統中的Worklist

PACS系統使用的通訊協定為DICOM,這是一個醫療影像通訊協定,目前大多數實作於TCP/IP基礎上,分為Client (SCU) 與 Server (SCP) 兩種腳色,Server端的認證方式有IP ACL、Port與AE Title,AE Title等同於HL7中的 Sending/Receiving Application 這個資料欄位的用途

Worklist為PACS系統其中的一個組件,可以跟HIS的檢查系統連線取得目前所有開立的檢查項目清單,並提供標準的DICOM協定讓醫療設備或第三方影像軟體可以存取這些資訊

在C#中可以使用fo-dicom這個library https://github.com/fo-dicom/fo-dicom
存取Worklist的動作稱為C-Find,在fo-dicom專案上有提供sample


2017年1月2日 星期一

垃圾郵件防治 EFA-Project 自訂關鍵字

EFA使用的是spamassassin作為計算分數的引擎,而spamassassin有自訂規則的功能


EFA裡面規則放置於 /etc/mail/spamassassin 目錄,可以看到一個 KAM.cf 的檔案,會自動更新 (從http://www.pccc.com/downloads/SpamAssassin/contrib/KAM.cf)


規則格式說明
https://wiki.apache.org/spamassassin/WritingRules


寫好規則之後需要重新啟動 MailScanner 服務才會套用


測試時發現在EFA的Spam Report項目看不到規則的說明(Description)

這是因為這個說明文字是存在資料庫中,因此要在EFA的Tools選單中執行「Update SpamAssassin Rule Descriptions」的動作才行


2016年3月13日 星期日

垃圾郵件防治 EFA-Project SPAM Gateway



話說垃圾郵件一直都是MIS的痛,尤其是沒預算買SPAM閘道的(最小25U、50U對於10多人的小企業負擔不起),上Gmail就更不用說了(10U一年就要一萬多),防火牆或者UTM上面的SPAM過濾往往是半殘(在主旨加上SPAM或對中文內容無法過濾),雖然知道Linux可以架設SPAM閘道但是身為兼職的MIS多一事不如少一事,遲遲沒時間研究,偶然找到EFA這個專案(https://www.efa-project.org),他有ova在虛擬化上部署極快,啟動後經過簡單的設定即可開始運作。


EFA使用的是 CentOS6 + Postfix + MailScaner + SpamAssassin + MailWatch
而且已經預先配置完成,在CLI的精靈模式設定可以很容易地完成初始化
只需要設定欲接收的網域與轉送的Mail Server IP即可

其實公司的Mail Server有內建垃圾郵件過濾與灰名單功能,但是提供可設定的項目太少,隔離清單還是英文的,內勤人員根本不知道怎麼用。至於灰名單功能,時常會造成郵件延遲,所以後來關掉了。

基本上EFA滿足了對於一個基本的SPAM閘道需求
1. 有隔離所
2. 有spam分數,用來分析校調
3. 能做客製化調整(MailWatch是PHP寫的配合的資料庫是MySQL)


2015年7月19日 星期日

從OpenWebmail遷移帳號至Zimbra

前言

前一陣子受託將OpenWebmail帳號轉移至Zimbra上,在網路上找了一些文件,原以為能直接匯入帳號,等SE安裝完後發現匯入的只能是明文的帳號密碼,而內建的帳號轉移功能不錯能將信箱郵件也匯入不過一樣需要明文的密碼,對於默默轉移的系統IT/MIS而言無法使用,而唯一能匯入密文密碼的方式只有透過LDIF匯入的方式了,而這個Zimbra的LDAP是安裝自帶的非OS本身的LDAP套件


步驟

1. 首先要取得舊有OpenWebmail系統的帳號(passwd)與密碼(shadow),然後利用下面這個PHP Script轉換成LDIF文件(注意:這個Script會將原本停用的帳號也轉換並「啟用」)



2. 取得Zimbra的LDAP連接資訊,剛開始誤以為是使用OS自帶的openLDAP,看LDAP設定檔的rootDN與password卻一直連不上去,後來才發現是自帶的服務,rootDN與password都不同,password是安裝隨機產生的需要使用「zmlocalconfig -s -m nokey zimbra_ldap_password」才能取得,rootDN「uid=zimbra,cn=admins,cn=zimbra」

3. 使用ldapadd命令匯入LDIF,如果匯入的LDIF有問題則會中斷匯入,造成某些帳號匯入某些尚未匯入,這時候就要修改LDIF錯誤以及去除已經匯入的帳號才能繼續進行匯入

2013年8月9日 星期五

自製一個窮舉法測試的小程式(按鍵精靈)

相較於web介面的系統可以直接用HTTP要求去處理,Window介面的系統似乎只能靠按鍵精靈來處理了

最近有個需求是測試一個輸入框從100000到999999的數值輸入

由於不太想撰寫按鍵精靈的Script,於是爬文找了些文章打算自己寫一個簡單的程式來處理

主要流程就是先用FindWindow找到要測試的視窗/子視窗/Form
接著用SetForegroundWindow取得焦點(因為測試的項目只有一個text控制項沒有focus問題)
最後用SendKeys.SendWait將要輸入的字串填入
建議送出後有一個短暫的暫停,否則在高速的迴圈中發送的要求可能會導致RPC失敗

C#模擬滑鼠鍵盤動作
http://roronoa.pixnet.net/blog/post/25312590-c%23-%3A-%E6%A8%A1%E6%93%AC%E6%BB%91%E9%BC%A0%E9%8D%B5%E7%9B%A4%E5%8B%95%E4%BD%9C

send “spacebar key” using SendKeys.sendwait()
http://stackoverflow.com/questions/3153394/send-spacebar-key-using-sendkeys-sendwait

2013年7月13日 星期六

心電圖資料電子化2

接續上一篇的內容,因為某些原因還是把批次轉換服務寫好了,並且找了dicom receiver測試,結果有些意外,有的可以接收有的會有錯誤,稍微查資料發現DICOM格式除了圖形之外還可以包含文字資料的報告等內容,且各科有已定義的ID(類似LDAP那種GUID分類模式),有的接收器會檢查是否全數的格式都能紀錄才轉換,如果有不認識的就會Reject上載的要求,是一種比較嚴謹的傳輸模式。

另外廠商寄給來的DICOM可以用GIMP開啟(對!就是那套Linux上的繪圖軟體),令人意外的發現,不過使用C# ECG Toolkit轉換的DICOM無法用GIMP開啟,推測裡面包含了一些額外的資料(病例號、機器參數、分析報表....),而廠商寄給來的是已經將這些資料轉換成圖像合併到原有的ECG紀錄上了是一張很單純的影像,所以才會有這種差別。


底下為測試使用的dicom receiver

ITC DICOMpiler
http://itc.wustl.edu/DICOMpiler/index.htm
十分簡易,似乎會過濾掉不認得的內容(接收到的檔案比送出的小)


Conquest DICOM
http://ingenium.home.xs4all.nl/dicom.html
滿完整的,內建Sqlite也可連接MySQL,帶有一個cgi程式可以在網頁中檢索(未測試)



ECG格式會有錯誤需手動調整
http://forum.image-systems.biz/viewtopic.php?f=33&t=13037&p=21124&hilit=ECG




可以在這邊找到更多資訊
http://www.mccauslandcenter.sc.edu/mricro/dicom/

原本想測試PacsOne,但是看起來架構滿龐大的就沒測試了,不過文件資訊很多可以參考PACS要注意哪些
http://www.pacsone.net/conformance.htm


順便補充一下,在C# ECG Toolkit的論壇有人打算製作MFER格式的轉換程式了,然後原作者年初開發了一個Html5介面的ECG Viewer (http://www.vanettinger.info/webecg/)