프로젝트 명: cdss - swbank.krswbank.kr/html/pdf/m_instance/5.pdf프로젝트 명: cdss ......

27
프로젝트 : CDSS 설계서 CDSS Version <1.0>

Upload: others

Post on 24-Feb-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

프로젝트 명: CDSS

설계서

CDSS

Version <1.0>

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

2

제.개정 이력서

버전 제.개정 일자 제.개정 페이지 및 내용 작성자 승인자

1.0 초기 작성

1.1 시스템 디자인 및 실행 결과 갱신

1.2 보완

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

3

목 차

1. CDSS 시스템 개요 ................................ ................................ ......... 4

2. CONVERTER SYSTEM CONTEXT ................................ ................................ .. 7

3. SYSTEM ARCHITECTURE................................ ................................ ....... 8

가. 정적 아키텍처 ................................ ................................ ........ 8

나. 동적 아키텍처 ................................ ................................ ........ 9

4. 시스템 디자인 ................................ ................................ ........... 10

5. 변환 알고리즘 ................................ ................................ ........... 12

가. EMR 과 독립적으로 동작하는 EXPRESSION ................................ .................. 12

가. EMR 에 종속적으로 동작하는 EXPRESSION ................................ .................. 18

6. 사용자 정의함수 ................................ ................................ ......... 24

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

4

1. CDSS 시스템 개요

SAGE 기반의 CDSS(Clinical Decision Support System)는 SAGE Knowledge 를 uBrain 에서 실행가능

한 Guideline 으로의 변환과 EMR Database 의 Query 의 중간단계인 EVMR Query 로의 변환을 담당

하는 Converter 모듈과, 병원의 EMR Schema 에 독립적인 EVMR Query 를 EMR Schema 맞는 EMR

Query 로 변환을 담당하는 EMR Supporter, Guideline 과 EMR Query 를 실행하는 uBrain 과 DIA2 로

구성된다. 그림 1은 CDSS 를 구성하는 모듈간의 지식변환 및 전달과정을 나타낸다.

Converter

EVMR QueryGenerator

MappingEditor

(Terminology Mapping,

EMR Mapping)

Rule&ProcessConverter

EVMR InterfaceModel

Generator

EMR QueryGenerator

EMR InterfaceModel

Generator

EVMRIM

EVMRQuery

EMR Supporter

Terminology /SchemaMapping Data

EMRQuery

EMRIM

AppDIA(Query Executor)

SAGESAGEGuideline

uBrain

uBrainGuideline

그림 1 EHR 지식변환 시나리오

가이드라인을 저작하고, 이를 각각의 병원에 배포하여 어플리케이션과 통합 운영되는 가이드라인의

생명주기는 Converter 로부터 시작된다. 가이드라인 저작환경으로 널리 사용되고 있는 SAGE 프레임

워크에서 저작된 가이드라인을, 지식실행엔진인 uBrain 위에서 실행될 수 있는 uBrain 의 가이드라인

포맷으로 변환하는 과정을 Converter 모듈에 속한 하위 모듈인 Rule&Process Converter 가 담당한다.

Rule&Process Converter 는 SAGE 로 저작된 가이드라인 중에서 흐름과 관계된 부분을 Process 기술

형식으로 변환하고, 로직과 관계된 부분을 Rule 기술형식으로 변환함으로써 SAGE 가이드라인을

uBrain 가이드라인으로 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

5

SAGE 가이드라인에서 EMR Database 로부터 데이터를 Query 해 와야 하는 부분은 두 단계에 걸쳐

변환이 이루어 진다. 먼저 표준 Schema 와 Terminology 로 기술되어 있는 Query 인 EVMR Query 로

변경된다. 이후에 각각의 병원 Schema 와 Terminology 를 기반으로 작성된 Mapping 정보를 이용하

여 각각의 병원의 EMR 에 맞는 EMR Query 로 변환된다.

EVMR Query Generator 는 SAGE 가이드라인 중, 데이터 Query 와 관련된 부분을 EVMR Class 와

EHR Concept 로 기술 되있는 EVMR Query 로 변경하는 역할을 한다. EVMR Query 는 이후에, EVMR

Class 와 EMR Schema 와의 매핑정보인 Schema Mapping, 그리고 EHR Concept 과 병원 Concept 과

의 매핑정보인 Terminology Mapping 을 기반으로 EMR Query Generator 에 의해 EMR Query 로 변환

된다. 변환된 EMR Query 는 DIA 모듈에 의해 실행된다.

Converter 와 EMR Supporter 에 의해 SAGE 가이드라인으로부터 변환된 uBrain 가이드라인과 EMR

Query, 그리고 EMR Interface Model 은 그림 2와 같은 과정을 거쳐 실행된다. 각 단계를 요약하면

아래와 같다.

1. DIA 는 실행하려고 하는 가이드라인의 EMR Query 를 로딩한다.

2. 사용자는 어플리케이션 실행을 요청한다.

3. 어플리케이션은 DIA 모듈에 환자 ID 를 넘겨 인터페이스 XML 조합을 요청한다.

4. DIA 모듈은 넘겨진 환자 ID 를 기반으로 EMR Database 에 Query 하여 인터페이스 XML 을 생성

한다.

5. DIA 모듈은 생성된 인터페이스 XML 을 어플리케이션에 리턴한다.

6. 어플리케이션은 생성된 인터페이스 XML 을 이용하여 uBrain 에 가이드라인 실행을 요청한다.

7. uBrain 의 uEngine 은 프로세스를 실행한다.

8. uEngine 은 프로세스 실행 중 로직에 해당하는 부분의 실행을 Rule Engine 에 요청한다.

위 7, 8 을 가이드라인이 끝날 때 까지 반복한다.

9. uBrain 은 결과값을 어플리케이션에 리턴한다.

10. 어플리케이션은 사용자에게 결과를 리턴한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

6

AppDIA

(Query Executor) EMR

EMR Query

Control DirectionLegend

3: Request InterfaceXML

4: query to EMR

6: RequestFor Reasoning

1: Load Query

Rule Engine

uBrain…

7: Execute Process Guidelines

uEngine

8: RequestFor Criterion

User 2: Request

InterfaceXML

5: Return InterfaceXML

InterfaceXML

9: ReturnResult

10: ReturnResult

그림 2 EHR Reasoning 서비스 시나리오

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

7

2. Converter System Context

Converter 는 Protégé 의 Plug-in 형태로 저작되어 크게 아래 그림과 같은 방식으로 작동된다. 먼저,

지식 저작자는 SAGE 를 통해 Guideline 을 저작한다. 저작을 마친 뒤 지식저작자는 이를 실행하기

위해 Converter Plug-in 이 제공하는 ‘Export’기능을 을 이용하여 BRAIN 이 해석할 수 있는 Output 으

로 Export 요청을 한다.

Export 요청이 들어오면 Converter 는 현재 Protégé 에 열려 있는 온톨로지를 파악하여, 이 중에서

Rule 의 요소로 변경되어야 하는 요소들을 선정하여 Converter 자체적인 내부 자료구조로 변환하는

일을 가장 먼저 수행한다. 그 뒤에 Converter 는 내부적인 자료구조로 변환된 요소들을 그에 맞는

전략에 따라 Brain 이 해석할 수 있는 Rule 로 변환하여 XML 형태로 출력해 준다.

그림 3 Converter Context Diagram

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

8

3. System Architecture

가. 정적 아키텍처 시스템은 크게 Composer 와 Converter, 이렇게 두 부분으로 나뉜다. Composer 부분은 Protégé

의 Plug-in 으로써, Protégé 에서 지식저작자의 Export 명령을 받아서, Protégé 의 Internal Data 형

태로 저장되어 있는 SAGE 데이터를 Converter 의 내부 자료구조로 변환하는 역할을 한다.

Converter 부분에서는 Converter 내부 자료구조형태로 변환된 SAGE 결과물을 BRAIN 이 해석할

수 있는 Rule 로 변환하는 변환하는 역할을 한다.

Composer 부분은 Protégé Plug-in 을 구현하는 ConverterPlugin 클래스와, Protégé 의 자료구조를

Converter 의 자료구조로 변환하는 Class Composer 그리고, 변환된 데이터를 담고 있는 Class

Repository 부분으로 구성된다.

Converter 부분은 추 후에 Brain 이외의 룰엔진이 받아들일 수 있는 Output 형태로 Export 할

수 있도록 하는 확장의 가능성을 감안하여 ClassRepository 를 입력으로 갖는 Converter 라는 인

터페이스를 두었다. 이 인터페이스를 BRAINConverter 라는 클래스가 상속하여 BRAIN 의 입력물

로 변환한다. BRAIN Converter 는 InterfaceModel 변환기와, DomainModel 변환기, Rule 변환기를

갖고 있으며, 이들 변환기는 Class Repository 로부터 각각 InterfaceModel, DomainModel, Rule 에

해당하는 정보들을 가져와서 InterfaceModel, DomainModel, Rule 를 생성한다.

그림 2 는 Convert 의 정적 아키텍처를 나타낸다.

Class Composer

+requestComposition(aSAGEOutput:XML)()

RuleConverter

+convertRule(aClassReposiroty:ClassRepository,aConvertedInputXMLNProductXML:ConvertOutput):ConvertOutput()

DomainModelConverter

+convertProductXML(aClassRepository:ClassRepository):ConvertOutput()

InterfaceModelConverter

+convertInputXMLSchema(aClassRepository:ClassRepository):ConvertOutput()

Class Repository

+registerClass(aClass:SAGEClass)()

ConverterPlugin

+convert(aSAGEOutput:XML):ConvertResultMessage()+classComposed(aEvent:Event)() BRAIN

Rules

SAGE

BRAIN Converter

+convert(aClassRepository:ClassRepository):ConvertResultMessage()

Converter<<interface>>

SAGE Internal Data

그림 4 Static Architecture

그림 3 은 Converter 시스템 내부 자료구조를 나타낸다. 내부 자료구조는 Class 와 Class 의 인스

턴스 그리고 어트뷰트를 담을 수 있도록 설계되었다. SAGEClass 클래스는 SAGE 의 각 요소들에

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

9

대응되는 클래스이고, SAGEInstance 클래스는 지식저작자가 저작한 SAGE 요소들의 인스턴스에

대응된다. SAGE 요소는 크게 두 가지의 Slot 을 갖고 있는데, 하나는 문자열, 숫자, 날짜등의

primitive 값을 갖는 Slot 이고(Datatype Property), 다른 Slot 은 다른 SAGE 요소를 가르키는 Slot

이다(Object Property). 전자는 PremitiveAttributeInstance 에 담겨지고, 후자는

ReferenceAttributeInstance 에 담겨진다. 또한, 하나 이상의 값을 갖는 Slot 을 처리하기 위해

AttributeInstanceComposite 를 두었다.

Class Structure in a Class Repository

SAGEInstance

+aAttributes: List+aInstanceID: String+aClassID: String

AttributeInstance

+aAttributeName: String

PrimitiveAttributeInstance

+aType: String+aValue: String

ReferenceAttributeInstance

+aReferencingClassID: String

SAGEClass

+aClassID: String+aClassName: String

reference

AttributeInstanceComposite

그림 5 Converter 내부 자료구조

나. 동적 아키텍처 사용자가 Protégé 의 Export 요청을 하면, ConverterPlugin 은 Protégé 의 내부저장구조로 되어 있

는 SAGE 저작결과를 ClassComposer 에게 넘긴다. ClassComposer 는 입력된 데이터를 파악하여,

이 중에서 Rule 의 요소로 변경되어야 하는 요소들을 선정하여 Converter 자체적인 내부 자료구

조인 SAGEInstance 로 변환하여 ClassRepository 에 저장한다. (현재, Rule 로 변경되어야 할 부분

에 대한 파악은 Expression 클래스의 하위인지 여부로 결정한다.) 모든 대상데이타가 SAGEInput

으로 변경되어 ClassRepository 에 저장되면 ConverterPlugin 은 ClassRepository 를

BRAINConverter 에 넘긴다. BRAINConverter 는 ClassRepository 가 제공하는 Select 기능을 통해

현재 변환이 가능한 클래스들을 선택해 와서 Brain 이 해석할 수 있는 Rule 로 변환한다. 변환

된 결과는 최종적으로 XML 형태 출력된다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

10

: SAGE User

: ConverterPlugin : Class Repository : Class Composer : BRAIN Converter : InterfaceModelConverter : DomainModelConverter : RuleConverter

export()

requestComposition(aSAGEOutput:XML)()

addSAGEInstance()

convert(aClassRepository:ClassRepository):ConvertResultMessage()

convertInputXMLSchema(aClassRepository:ClassRepository):ConvertOutput()

convertProductXML(aClassRepository:ClassRepository):ConvertOutput()

convertRule(aClassReposiroty:ClassRepository,aConvertedInputXMLNProductXML:ConvertOutput):ConvertOutput()

generateOutputs()

그림 6 시스템 동적 아키텍처

4. 시스템 디자인

대부분의 구조는 아키텍처섹션에서 기술한 구조를 따른다.

RuleConverter 부분은 Design 과정에서 좀더 자세히 정제되었는데, SAGE 의 Criterion 마다 Rule 의

Condition 부분의 생성 전략이 다르기 때문이다. RuleConverter 는 RuleConditionConverterManager 를

갖고 있으면서 Condition 부분에 대한 변경을 이 클래스에 맡겨 버린다. 이 클래스는 입력된 데이터

에 맞는 RuleConditionConverter 를 찾아서 해당 클래스에 Condition 의 변환을 맡긴다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

11

RuleConditionConvertManager

NaryCriterionCriterion

RuleConditionConverter

ObservationPresenceCriterion PresenceCriterion VariableComparisionCriterion

ConverterPlugin

+convert(aSAGEOutput:XML):ConvertResultMessage()+classComposed(aEvent:Event)()

Class Repository

+registerClass(aClass:SAGEClass)()+addSAGEInstance()

BRAIN Converter

+convert(aClassRepository:ClassRepository):ConvertResultMessage()

Class Composer

+requestComposition(aSAGEOutput:XML)()

InterfaceModelConverter

+convertInputXMLSchema(aClassRepository:ClassRepository):ConvertOutput()

DomainModelConverter

+convertProductXML(aClassRepository:ClassRepository):ConvertOutput()

RuleConverter

+convertRule(aClassReposiroty:ClassRepository,aConvertedInputXMLNProductXML:ConvertOutput):ConvertOutput()

SAGEInstance

+aAttributes: List+aInstanceID: String+aClassID: String

AttributeInstance

+aAttributeName: String

PrimitiveAttributeInstance

+aType: String+aValue: String

ReferenceAttributeInstance

+aReferencingClassID: String

reference

SAGEClass

+aClassID: String+aClassName: String

AttributeInstanceComposite

Converter<<interface>>

composed by

ComparisionCriterionMedication_Presence_Criterion

CodeHandlerValidWindowHandler

그림 7 System Design

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

12

5. 변환 알고리즘

SAGE 의 Expression 을 Rule 로 변환하는 방법은 Expression 이 EMR(Data Base)에 독립적인지의 여부

에 따라 두 가지로 나뉜다. 먼저, EMR 에 독립적인 Expression 은 EMR 의 값에 의존적이지 않기 때

문에, 순수 룰표현식으로 변환된다. EMR 에 종속적인 Expression 은 결과값을 내기 위해서 EMR 의

데이터가 필요하다. 이는 EMR 로부터 데이터를 얻어오는 부분(DIA)과 얻어온 데이터를 해석하는 룰

표현식으로 변환된다.

가. EMR 과 독립적으로 동작하는 EXPRESSION EMR 과 독립적으로 동작하는 Expression 은 N_ary_Criterion, Relation_Query,

Variable_Comparison_Criterion, 그리고 VKB_Query 이다.

1) N_ary_Criterion N_ary_Criterion 은 두 개 이상의 Criterion 간의 AND, OR, NOT 연산을 표현한다.

N_ary_Criterion 은 N_ary_Criterion 에 기술되어 있는 하위 Criterion 들을 룰로 하고, 그 결과

를 지정된 연산자로 연산하는 룰 표현식으로 변환된다.

SAGE 인코딩

Rule 변환결과

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

13

2) Relation_Query Relation_Query 는 특정 약물에 대하여 환자가 적응증, 금기증 또는 부작용이 있는지를

Query 하는 기능을 표현한다. 약물과 증상의 적응증, 금기증, 부작용 관계는

Evidence_Statement 에 기록되어 있고, Relation_Query 는 Evidence_statement 를 대상으로

하는 Query 의 실행을 표현한다. Relation_Query 의 변환은 Evidence_Statement 변환과,

Relation_Query 변환의 두 단계로 나뉜다. SAGE 의 포맷을 따르는 Evidence_Statement 는

uBrain 에 적합한 형식인 EvidenceStatement.dat 파일로 변환되고, Relation_Query 는

EvidenceStatement.dat 파일을 대상으로 하는 Query 를 표현하는 룰표현식으로 변환된다.

SAGE Encoding

Evidence_Statement

Relation_Query…

EvidenceStatement.dat

RuleExpression

Converter(Protégé Plug-in)

Query

그림 8 VKB_Query 의 변환

l 1 단계 : Evidence_Statement 의 변환

약물 클래스와 증상과의 적응증, 금기증, 부작용관계는 SAGE 의 Evidence_Statement 에 의

해 기술되어 있다. 변환기는 SAGE 의 Evidence_Statement 인스턴스들을 리스트업 하여, 각

각 인스턴스의 intervention, Relation Type, conditions 정보를 차례로 EvidenceStatement.dat

파일에 기술한다. EvidenceStatement.dat 파일은 어떤 약물에 대하여 적응증, 금기증 또는

부작용에 해당하는 증상을 판단하는 conditions 들의 리스트를 얻어낼 수 있는 구조로 이루

어져 있다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

14

Evidence_Statement(SAGE Class)

EvidenceStatement.dat

To Intervention Condition [Rule]

BB Oral Preparation Side effect Aches in the limb …

ACEi Oral Preparation Absolute contraindication Angioedema

그림 9 두 개의 Evidence_Statement 에 대한 변환 예

l 2 단계 : Relation_Query 의 변환

To slot 에 정의된 약물클래스와, Relationship Type Slot 에 정의된 적응증, 금기증, 부작용에

부합하는 Condition 들을 EvidenceStatement.dat 에 Query 하여 각각의 Condition 에 해당하는

룰을 실행하는 사용자정의함수인 ExecuteVKBQery_RQ 로 변환된다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

15

SAGE 인코딩

Rule 변환결과

3) Variable_Comparison_Criterion Variable_Comparison_Criterion 은 Variable 로 표현된 값과 Value 를 비교하는 연산을 표현한

다. 기본적으로 Variable 과 Value 의 비교연산은 값과 값을 비교하는 룰 표현식으로 변환된

다. 비교되는 값의 Type 에 따라 변환되는 결과가 다르다.

값의 종류 Rule 로 변환되는 결과 TimeQuantity TimeQuantity 가 Reference 하고 있는 값으로 변환 PhysicalQuantity PhysicalQuantity 가 Reference 하고 있는 값으로 변환 VMR_Query InterfaceXML 의 지정된 VMR_Query 결과값을 지칭하도록 변환 VKB_Query InterfaceXML 의 지정된 VKB_Query 결과값을 지칭하도록 변환 Variable InterfaceXML 의 지정된 Variable 을 지칭하도록 변환

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

16

SAGE 인코딩

Rule 변환결과

4) VKB_Query VKB_Query 는 Virtual Knowledgebase 를 대상으로 하는 Query 의 실행을 표현한다.

VKB_Query 의 변환은 Virtual Knowledgebase 변환과, VKB_Query 변환의 두 단계로 나뉜다.

SAGE 의 포맷을 따르는 Virtual Knowledgebase 는 uBrain 의 적합한 형식인

ConceptExpression.dat 파일로 변환되고, VKB_Query 는 ConceptExpression.dat 파일을 대상으

로 하는 Query 를 표현하는 룰표현식으로 변환된다.

SAGE Encoding

Virtual Knowledgebase

VKB_Query…

ConceptExpression.dat

RuleExpression

Converter(Protégé Plug-in)

Query

그림 10 VKB_Query 의 변환

l 1 단계 : Virtual Knowledgebase 의 변환

현재 SAGE 의 Virtual Knowledgebase 는 ConceptExpression 과 ActiveIngredientPreparation 클

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

17

래스를 이용하여 약품클래스, 성분, 제품과의 관계 및 각 성분별 최대 복용량의 정보를 기

술하고 있다.

변환기는 ConceptExpression 중 최상위 클래스를 기술하는 인스턴스를 추출하여, 이를 이용

하여 하위 성분 및 제품과의 관계정보를 뽑아낸다. 마지막으로, 중간레벨인 성분들의 코드

와 같은 ActiveIngredientPreparation 클래스의 인스턴스를 뽑아내어, 최대 복용량 정보를 얻

어온 후 이를 ConceptExpression 에 기록한다.

ACEi Oral Preparation

Captoril ..

넬슨 캅토프릴정 25mg

명인 캅토프릴정 50mg

Enalapril.. 나라프릴정 10mg

ConceptExpression

ConceptExpression

ConceptExpression

ConceptExpression

ConceptExpression

ConceptExpression

Max Dose = 100mgActiveIngredientPreparation

Virtual Knowledgebase

ConceptExpression

그림 11 ACEi 클래스의 약품에 대한 변환 예

l 2 단계 : VKB_Query 의 변환

Vkb Specification Slot 에 지정된 변수의 값을 파라미터로하여 ConceptExpression.dat 에

Query 하는 사용자 정의 함수인 ExecuteVKBQuery 로 변환된다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

18

SAGE 인코딩

Rule 변환결과

가. EMR 에 종속적으로 동작하는 EXPRESSION

1) Presence_Criterion Presence_Criterion 환자의 현재 상태가 특정 값 또는 경우에 해당하는지를 판단할 수 있는

기능을 표현한다. 모든 Presence_Criterion 의 결과값은 EMR Database 에 대한 Query 실행을

통해 얻어지기 때문에 룰이 실행될때는 이미 DIA 모듈에서 모든 Presence_Criterion 의 결과

값들을 구하여 InterfaceXML 의 정해진 위치에 초기한 상태이다. 따라서, 변환기는 SAGE 의

Presence_Criterion 을 Interface 의 지정된 위치에서 결과값을 얻어오는 사용자 정의함수인

ExecuteVMRQuery_PC 를 호출하여 결과값을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

19

SAGE 인코딩

Rule 변환결과

2) Adverse_Reaction_Presence_Criterion Adverse_Reaction_Presence_Criterion 환자의 현재 상태가 특정 부작용에 해당하는지 아닌지

를 판단할 수 있는 기능을 표현한다. 모든 Adverse_Reaction_Presence_Criterion 의 결과값은

EMR Database 에 대한 Query 실행을 통해 얻어지기 때문에 룰이 실행될때는 이미 DIA 모듈

에서 모든 Adverse_Reaction_Presence_Criterion 의 결과값들을 구하여 InterfaceXML 의 정해

진 위치에 초기한 상태이다. 따라서, 변환기는 SAGE 의

Adverse_Reaction_Presence_Criterion 을 Interface 의 지정된 위치에서 결과값을 얻어오는 사

용자 정의함수인 ExecuteVMRQuery_AC 를 호출하여 결과값을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

20

SAGE 인코딩

Rule 변환결과

3) Observation_Presence_Criterion Observation_Presence_Criterion 환자의 특정한 검사결과가 지정된 값을 만족시키는지의 여부

를 판단하는 기능을 표현한다. 모든 Observation_Presence_Criterion 의 결과값은 EMR

Database 에 대한 Query 실행을 통해 얻어지기 때문에 룰이 실행될때는 이미 DIA 모듈에서

모든 Observation_Presence_Criterion 의 결과값들을 구하여 InterfaceXML 의 정해진 위치에

초기한 상태이다. 따라서, 변환기는 SAGE 의 Observation_Presence_Criterion 을 Interface 의

지정된 위치에서 결과값을 얻어오는 사용자 정의함수인 ExecuteVMRQuery_OC 를 호출하여

결과값을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

21

SAGE 인코딩

Rule 변환결과

4) Medication_Presence_Criterion Medication_Presence_Criterion 환자가 특정 약물을 복용중인지의 여부를 판단하는 기능을 표

현한다. 모든 Medication_Presence_Criterion 의 결과값은 EMR Database 에 대한 Query 실행

을 통해 얻어지기 때문에 룰이 실행될때는 이미 DIA 모듈에서 모든

Medication_Presence_Criterion 의 결과값들을 구하여 InterfaceXML 의 정해진 위치에 초기한

상태이다. 따라서, 변환기는 SAGE 의 Medication_Presence_Criterion 을 Interface 의 지정된

위치에서 결과값을 얻어오는 사용자 정의함수인 ExecuteVMRQuery_MC 를 호출하여 결과값

을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

22

SAGE 인코딩

Rule 변환결과

5) Comparison_Criterion Comparison_Criterion 은 EMR 에 저장되어 있는 값을 Variable 이나 Value 로 기술된 값과 비

교하는 연산을 표현한다. Comparison_Criterion 의 일부 Slot 들은 EMR 에서 데이터를 Query

하기 위한 정보들을 표현하고, 일부 Slot(Operator, Value)들은 비교할 값(Value)과 비교 연산

자(Operator)를 기술한다. 따라서 룰이 실행될때는 이미 DIA 모듈에서 EMR Query 정보를 이

용하여 결과값들을 구하여 InterfaceXML 의 정해진 위치에 초기한 상태이다. 따라서, 변환기

는 SAGE 의 Comparison_Criterion 을 Interface 의 지정된 위치에서 결과값을 얻어오는 사용

자 정의함수인 ExecuteVMRQuery_CC 를 호출하여 얻어진 값과 Operator 과 Value 를 이용하

여 연산한 결과값을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

23

SAGE 인코딩

Rule 변환결과

6) VMR_Query VMR_Query 는 환자의 약물복용, 검사, 생활습관, 생년월일 등의 정보를 Query 해 오는 기능

을 표현한다. 인코딩된 Query 정보에 의해 Query 된 결과값은 EMR Database 에 대한 Query

실행을 통해 얻어지기 때문에 룰이 실행될때는 이미 DIA 모듈에서 모든 VMR_Query 의 결

과값들을 구하여 InterfaceXML 의 정해진 위치에 초기한 상태이다. 따라서, 변환기는 SAGE

의 VMR_Query 을 Interface 의 지정된 위치에서 결과값을 얻어오는 사용자 정의함수인

ExecuteVMRQuery_VMR_Query 를 호출하여 결과값을 리턴 하도록 변환한다.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

24

SAGE 인코딩

Rule 변환결과

6. 사용자 정의함수

함수명 ExecuteVMRQuery_CC 기능 Comparison_Criterion 에서 사용하는 메소드로, 넘겨진 파라미터가 지칭하는 결과값을

InterfaceXML 에서 얻어오는 역할을 한다. 파라미터 RuleID : Comparison_Criterion 의 Instance ID

strVmrClassAttrValue : VMR Class strAggValue : Aggregation Operation strCode : Code strCodeSystem : Code System strValidWindowsFrom : Valid Windows From strValidWindowsTo : Valid Windows To strAssume : Assumption

리턴값 String : Comparison Criterion 에서 정의한 값 비고 현재는 모든 8 가지의 파라미터를 받도록 정의되어 있으나, 추후에 RuleID 만 받도록 수정

할 예정임. 이는 아키텍처의 변화로 인하여 예전코드가 남아 있어서 수정이 필요함. 여기

서의 아키텍처의 변화는 DIA 컴포넌트가 BRAIN 과 병원의 DB 사이에 위치하여 BRAIN의 호출로 인해서 병원의 DB 를 호출하였다가, BRAIN 앞에 위치하여 BRAIN 에게 병원 DB 의 호출 결과를 전달하는 형식으로의 변화를 의미함.

함수명 ExecuteVMRQuery_MC 기능 Medication_Presence_Criterion 에서 사용하는 메소드로, 넘겨진 파라미터가 지칭하는 결과

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

25

값을 InterfaceXML 에서 얻어오는 역할을 한다. 파라미터 RuleID : Comparison_Criterion 의 Instance ID

strVmrClassAttrValue: VMR Class strCode : Code strCodeSystem : Code System strValidWindowsFrom : Valid Windows From strValidWindowsTo : Valid Windows To

리턴값 Boolean : Medication Criterion 처리 결과 비고 ExecuteVMRQuery_CC 와 동일한 이유로 RuleID 만 받도록 수정이 필요함. 함수명 ExecuteVMRQuery_OC 기능 Observation_Presence_Criterion 에서 사용하는 메소드로, 넘겨진 파라미터가 지칭하는 결

과값을 InterfaceXML 에서 얻어오는 역할을 한다. 파라미터 RuleID : Comparison_Criterion 의 Instance ID

Vmr Class Attribute Value Code Code System Subject Subject Code System Valid Windows From Valid Windows To Status Status Code System Method Method Code System Distinguisher Value Value Code System Unit UnitCodeSystem Presence

리턴값 Boolean: Observation Presence Criterion 처리 결과 비고 ExecuteVMRQuery_CC 와 동일한 이유로 RuleID 만 받도록 수정이 필요함. 함수명 ExecuteVMRQuery_PC 기능 Presence_Criterion 에서 사용하는 메소드로, 넘겨진 파라미터가 지칭하는 결과값을

InterfaceXML 에서 얻어오는 역할을 한다. 파라미터 RuleID : Presence_Criterion 의 Instance ID

Vmr Class Attribute Value Code Code System Subject Subject Code System Valid Windows From Valid Windows To

리턴값 Boolean: Presence Criterion 처리 결과 비고 ExecuteVMRQuery_CC 와 동일한 이유로 RuleID 만 받도록 수정이 필요함.

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

26

함수명 ExecuteVMRQuery_RPC 기능 Relation_Presence_Criterion 에서 사용하는 메소드로, 넘겨진 파라미터를 이용하여

EvidenceStatement.dat 로부터 Rule 리스트를 얻어온 후 이들을 실행하여 결과값을 생성해 내는 역할을 한다.

파라미터 Presence Relationship Class To Code To Code System Relationship Type Code Relationship Type Code System

리턴값 Boolean: Relation Presence Criterion 처리 결과 비고

함수명 ExecuteVMRQuery_VMR_Query 기능 VMR_Query 에서 사용하는 메소드로, 넘겨진 파라미터가 지칭하는 결과값을 InterfaceXML

에서 얻어오는 역할을 한다. 파라미터 Rule ID: Instance ID 리턴값 String: VMR_Query 수행 결과 비고 이것은 아키텍처의 변화에 대처하여 수정한 함수 파라미터를 가짐. 함수명 ExecuteVMRQuery_RQ 기능 Relation_Query 에서 사용하는 메소드로, 넘겨진 파라미터를 이용하여

EvidenceStatement.dat 로부터 Rule 리스트를 얻어온 후 이들을 실행하여 조건에 만족시키

는 룰들의 코드값 리스트를 리턴하는 역할을 한다. 파라미터 Presence

Relationship Class To Code To Code System Relationship Type Code Relationship Type Code System

리턴값 String[]: Relation_Query 수행 결과 비고 이것은 아키텍처의 변화에 대처하여 수정한 함수 파라미터를 가짐.

함수명 ExecuteVKBQuery 기능 넘겨진 상품명의 약물정보를 이용하여 ConceptExpression 으로부터 약물 최대치를 얻어오

는 역할을 한다. 파라미터 약품 코드 리턴값 String : VKB Query 의 결과 (예. 최대 복용량) 비고

함수명 GetCurrTime

설계서 프 로 젝 트 CDSS 반 복

시 스 템 CDSS 단 계

승 인 자 승 인 일 활 동

작 성 자 작성시작일 작성완료일

27

기능 현재 시간을 리턴한다 파라미터 Rule ID: Instance ID 리턴값 String: 현재의 시간을 리턴한다. 비고

함수명 GetAge 기능 넘겨진 생년월일을 기반으로 나이를 리턴한다. 파라미터 Date Of Birth 리턴값 String: VMR_Query 수행 결과 비고

함수명 GetEndOfToday 기능 실행된 시점전날의 자정시간을 리턴한다. 파라미터 리턴값 String: End of Today 비고