hardware는 shared memory를 이용하여 이미지를 software (scanner)로 전달한다: Figure: Software and Hardware Interface 위의 연결을 시퀀스 다이어그램으로 표현하면 다음과 같다: Figure: Sequence diagram for Hardware and Scanner interface
Articles Tagged: MEDICAL SOFTWARE
SWA: 8. Swa – 8.7. 다국어 지원 (Native Language Support)
소프트웨어는 화면에 표시하는 다국어 문자열을 message_file.xls 파일로 관리하며, xls2mc.exe를 이용하여 message_file.xls을 message_file.xml 파일과 message_file.mc 파일로 변환한다. message_file.mc 파일은 mc.exe, rc.exe, 및 link.exe를 이용하여 message_file.h 파일과 message_file.dll 파일을 생성한다. 아래 그림은 위의 빌드 과정을 표시한다:. Figure: Message file build process xls2mc에서 link까지의 빌드과정은 다음과 같다: if exist mc.exe mc.exe $(PROJECT_RES)nls\ message_file.xls if exist message_file.mc mc -c […]
SWA: 8. Swa – 8.6. Control Panel
Control panel은 virtual control panel을 포함한다: Figure: control panel classes 위에서, hardware control panel 또는 virtual control panel에서 키가 눌리면, cp_manager는 해당 키 입력을 받아 이를 PostMessage()를 통해 Main.exe로 보낸다. Main.exe는 해당 키 입력을 send_global_key()를 global event로 바꾼 후, 타겟 컴포넌트에게 전달한다.
SWA: 8. Swa – 8.5. Image Common
8.5.1. Parameter Model 소프트웨어는 다음과 같이 Parameter model을 이용하여 Model을 구현한다: Figure: Parameter Model 위에서, param은 model에 포함되는 데이터이며, param_acessor는 param 집합에서 개별적인 param을 access하기 위한 클래스이다. param_accessor에서 파생되는 param_container와 asc_param_container는 다수의 파라메터를 갖는다. asc_param_container는 param을 param::id 순으로 정렬하여 유지한다. param_model은 parameter container, change mediator, lock을 템플릿 파라메터로 가지며, transaction을 지원하기 위해 param_mementors를 포함한다. change […]
SWA: 8. Swa – 8.4. 데이터 공유 (Data Sharing)
Scanner 컴포넌트는 Nonscanner의 setup, patient 및 report 컴포넌트와 데이터 공유가 복잡하게이루어지므로, 이들간 데이터 공유를 단순하게 할 필요가 있다. 8.4.1. 컴포넌트와 프로세스간 통신 컴포넌트와 별도 프로세스간 통신은 IPC(예 소켓, 파이프)를 활용하며, 통신 프로토콜은 컴포넌트와 프로세스간으로 한정한다. 8.4.2. 리소스 공유 사용자가 Setup 항목을 변경하면, Setup 컴포넌트는 변경된 항목에 대응하는 리소스를 저장하고 event를 발생시킨다. Figure: Resource changes 8.4.3. […]
SWA: 8. Swa – 8.3 CPP/CS Interface
컴포넌트는 C++ 기반으로 구현되지만, 유연한 UX/UI 기능을 제공하기 위해서는 WPF로 프런트엔드 기능을 구현한 후 cpp_cs_intf를 이용하여 WPF 기반의 프런트엔드와 C++ 기반의 컴포넌트를 연결한다. Figure: C++ component to WPF Frontend Interface interface manager는 컴포넌트의 Component interface를 통해 event를 전달하고 property를 엑세스하고 command를 실행한다. 컴포넌트는 역시 cpp_cs_intf를 통해 WPF에 event를 event를 전달하고 property를 엑세스하고 command를 실행한다. 이를 […]
SWA: 8. Swa – 8.2 컴포넌트 관리 (Component Management)
소프트웨어는 서로 밀접하게 연관된 기능을 구현한 소프트웨어 모듈을 컴포넌트라고 명명한다. 소프트웨어는 컴포넌트를 관리하고 다른 컴포넌트와의 통신을 위해 interface manager를 제공하는데, interface manager는 버스 토폴로지 구조를 이용하며, event와 command 통신 채널을 지원한다. Figure: Component communication through the interface manager 위에서, main.exe는 component를 포함하는 실행파일로 실제 이름은 구현에 따른다. interface manager는 main.exe 실행시 component를 로드하고, main.exe 실행시 […]
SWA: 8. Swa – 8.1. 리소스 관리 (Resource Management)
소프트웨어는 리소스의 개별 항목을 parameter로 명명한다. 소프트웨어는 parameter를 tree 구조를 차용하여 하위의 parameter를 포함하는 node와 value를포함하는 leaf로 구분한다. 그리고 리소스 파일로 관리하기 위해 다음과 같이 xml 파일 형식을 이용한다: <node_name attribute=”attribute_value”> <leaf_name attribute=”attribute_value”>value</leaf_name> </node_name> 위에서, node_name은 node 리소스의 이름이며, 사용가능한 attribute는 다음과 같다: Table: Node parameter attributes and their values No. Attribute Value 1 size […]
SWA: 7. 소프트웨어 빌드 (Software Build)
7.1 폴더 구조 소프트웨어는 다음과 같이 네 가지 폴더로 구성된다: 7.1.1. Project 폴더 Project 폴더는 %PROJECT_ROOT%로 관리하며, 다음과 같은 하위 디렉토리를 포함한다: Table: Project folder structure No. 폴더 내용 1 ots 산출물에 포함되며, 제3자가 개발한 소프트웨어를 포함한다. 2 package 산출물에는 포함되지 않으며, 설치 파일을 생성하기 위한 패키지 파일을 포함한다.소프트웨어는 Inno Setup을 이용하여 설치 파일을 생성한다. […]
SWA: 6. 개요 (Overview)
소프트웨어는 Windows 10 또는 상위 버전에서 동작하며, 개념적으로 다음과 같은 구조를 가진다: Figure: Software Architecture Concept 위에서, 소프트웨어는 크게 Frontend Layer와 Backend Layer로 구분한다. Frontend Layer는 소프트웨어의 사용자 인터랙션 기능을 지원하는 components의 계층이며, Backend Layer는 Frontend Layer의 components를 지원하기 위한 계층이다. Hardware는 하드웨어 자체가 될 수도 있고, 하드웨어와 하드웨어를 제어하는 소프트웨어를 포함할 수도 있다. […]