해외 공급용 영상의학과 예약·처방 관리 시스템(RIS)의 초기 개발물을 인수해 구조 재설계와 기능 개발을 담당했습니다.
<aside>
예약·처방 시스템을 재설계하고 해외 공급까지 연결했습니다.
전체 참여 기간: 2022.08 – 2025.04
단계: 2023.12 1차 개발 완료 → 2025.04까지 업데이트·기능 추가
단독 담당: 2023.12 1차 개발 완료까지의 약 1년간 구조 재설계와 예약·처방·기준코드 기능 개발
기술: Java, Spring, MyBatis, JSP
업무 모델 사이의 상속을 없애고, 필요한 값은 명시적으로 전달했습니다. 예약 처리 순서는 서비스가 관리합니다.
해외 공급처에서는 의료영상 저장·전송 시스템(PACS)과 함께 예약·처방·기준코드 관리 기능이 필요했습니다. SI 초기 개발물을 인수한 뒤 기능을 추가하면서, 기존 업무 구조도 재정리했습니다.
예약 모델은 촬영코드 모델을, 촬영코드 모델은 기준코드 모델을, 기준코드 모델은 처방 모델을 상속하고 있었습니다. 예약을 수정할 때 다른 업무의 필드와 접근자까지 따라가야 했고, 일부 하위 모델은 부모와 같은 이름의 필드·접근자를 다시 선언하고 있었습니다.
기능을 추가할 때 필요한 데이터와 변경 범위를 업무 단위로 파악할 수 있도록 모델 경계를 나누기로 했습니다.
| 기존 문제 | 직접 변경한 내용 | 변경의 목적 |
|---|---|---|
| 예약·촬영·기준코드·처방 모델의 연쇄 상속 | 업무별 DTO·VO를 독립된 클래스로 분리 | 한 업무의 변경을 위해 따라가야 하는 상속 관계 축소 |
| 예약에서 처방으로 전달하는 값이 상속된 필드에 섞임 | 처방 DTO를 생성할 때 환자·병원·예약일시·검사실 등을 명시적으로 전달 | 업무 사이에 전달되는 데이터를 코드에서 확인 |
| 예약 마스터 저장·휴일·예외 적용 순서가 컨트롤러에 존재 | 처리 흐름을 서비스 메서드에 모으고 컨트롤러는 결과를 반환 | 예약 처리 책임과 실행 순서를 한곳에서 관리 |
번호 중심 이름도 업무명으로 변경했습니다. 예를 들어 처방 모델을 RisRIS1201VO에서 RisPrescriptionDto로 정리해 이름만으로 처리 대상을 파악할 수 있도록 했습니다.
RIS를 사용하는 공급처와 PACS로 바로 데이터를 전달하는 공급처를 모두 지원해야 했습니다. 연동 담당자와 데이터 처리·수정 범위를 조율하고, RIS와 PACS 사이의 연동용 DB 테이블을 설계했습니다.