해외 공급용 영상의학과 예약·처방 관리 시스템(RIS)의 초기 개발물을 인수해 구조 재설계와 기능 개발을 담당했습니다.

<aside>

예약·처방 시스템을 재설계하고 해외 공급까지 연결했습니다.

전체 참여 기간: 2022.08 – 2025.04

단계: 2023.12 1차 개발 완료 → 2025.04까지 업데이트·기능 추가

단독 담당: 2023.12 1차 개발 완료까지의 약 1년간 구조 재설계와 예약·처방·기준코드 기능 개발

기술: Java, Spring, MyBatis, JSP

구조 한눈에 보기

ris-model-structure.svg

업무 모델 사이의 상속을 없애고, 필요한 값은 명시적으로 전달했습니다. 예약 처리 순서는 서비스가 관리합니다.

1. 해외 공급에 필요한 기능을 구현하면서 구조를 정리했습니다

해외 공급처에서는 의료영상 저장·전송 시스템(PACS)과 함께 예약·처방·기준코드 관리 기능이 필요했습니다. SI 초기 개발물을 인수한 뒤 기능을 추가하면서, 기존 업무 구조도 재정리했습니다.

예약 모델은 촬영코드 모델을, 촬영코드 모델은 기준코드 모델을, 기준코드 모델은 처방 모델을 상속하고 있었습니다. 예약을 수정할 때 다른 업무의 필드와 접근자까지 따라가야 했고, 일부 하위 모델은 부모와 같은 이름의 필드·접근자를 다시 선언하고 있었습니다.

기능을 추가할 때 필요한 데이터와 변경 범위를 업무 단위로 파악할 수 있도록 모델 경계를 나누기로 했습니다.

2. 모델 경계와 처리 책임을 바꿨습니다

기존 문제 직접 변경한 내용 변경의 목적
예약·촬영·기준코드·처방 모델의 연쇄 상속 업무별 DTO·VO를 독립된 클래스로 분리 한 업무의 변경을 위해 따라가야 하는 상속 관계 축소
예약에서 처방으로 전달하는 값이 상속된 필드에 섞임 처방 DTO를 생성할 때 환자·병원·예약일시·검사실 등을 명시적으로 전달 업무 사이에 전달되는 데이터를 코드에서 확인
예약 마스터 저장·휴일·예외 적용 순서가 컨트롤러에 존재 처리 흐름을 서비스 메서드에 모으고 컨트롤러는 결과를 반환 예약 처리 책임과 실행 순서를 한곳에서 관리

번호 중심 이름도 업무명으로 변경했습니다. 예를 들어 처방 모델을 RisRIS1201VO에서 RisPrescriptionDto로 정리해 이름만으로 처리 대상을 파악할 수 있도록 했습니다.

3. 공급처에 따라 달라지는 PACS 연동을 조율했습니다

RIS를 사용하는 공급처와 PACS로 바로 데이터를 전달하는 공급처를 모두 지원해야 했습니다. 연동 담당자와 데이터 처리·수정 범위를 조율하고, RIS와 PACS 사이의 연동용 DB 테이블을 설계했습니다.