본문 바로가기

BackEnd70

[병원 HIS] 제증명 관리 모듈 리팩토링 – 데이터 흐름 및 출력 개선기 [병원 HIS] 제증명 관리 모듈 리팩토링 – 데이터 흐름 및 출력 개선기병원 전산 시스템(HIS)에서 제증명 관리 기능은 환자, 행정, 진료부서 모두에게 중요한 기능입니다. 이번 글에서는 제증명 발급 데이터 조회 로직을 개선하면서 경험했던 코드 리팩토링, 모듈 간 연계 구조 분석, 출력 형식 문제 해결 과정을 공유합니다.1. 시스템 구조 개요제증명 발급 기능은 단일 모듈에서 끝나지 않고 여러 모듈이 연동되어 동작합니다.EMR 모듈 → 발급 요청(reqGetList) 발생AST 모듈 → 제증명 데이터 조회 및 상세 매핑 (RslRef, RslRefImpl)LIS 모듈 → 검사 결과 조회 (getListData)아래 다이어그램은 실제 구조를 단순화한 모습입니다.2. 문제 배경이슈: 제증명 발급 화면에서 일.. 2025. 8. 22.
[병원 HIS] Repexrt 조건스타일 처리 및 통합결과조회 속도 개선 [병원 HIS] Repexrt 조건스타일 처리 및 통합결과조회 속도 개선병원 정보시스템(HIS)에서 레포트 출력은 필수적인 업무 흐름 중 하나입니다.특히 검사 결과, 통합 결과 조회 등은 실시간으로 출력되어야 하며, 사용자가 버튼 한 번만 눌러도 빠르게 반영되어야 합니다. 그러나 Report 조건스타일이 많아질 경우 데이터셋 처리 속도가 저하되고, 로직이 복잡해지는 문제가 발생합니다. 이번 글에서는 Report 조건스타일 처리 과정과 실제 속도 개선 로직 적용 사례를 정리해 봅니다.1. 문제 상황검사 통합결과 조회 화면에서 출력 버튼을 눌렀을 때,조건스타일이 많아 실행 속도가 지연됨조건식(Expression) 내에서 row마다 조건을 반복 연산 → 성능 저하결과적으로 Repexrt 출력이 늦어져 업무 처.. 2025. 8. 21.
[백준 11659] JAVA 알고리즘 구간합구하기 [Java 알고리즘] 구간 합 구하기 (Prefix Sum) 예제프로그래밍 문제를 풀다 보면 구간 합 (Prefix Sum)을 자주 만나게 됩니다.특히 배열에서 특정 구간의 합을 빠르게 구해야 할 때, 단순 반복문으로 매번 계산하면 시간 초과가 나기 쉽습니다.이럴 때 누적 합 배열을 사용하면 효율적으로 해결할 수 있습니다.오늘은 Java로 구현한 구간 합 구하기 예제를 소개하겠습니다.📌 문제 상황첫 번째 줄: 수의 개수(suNo), 구간의 개수(quizNo)두 번째 줄: 수열이후 quizNo개의 줄: 합을 구하고자 하는 구간의 시작 인덱스와 끝 인덱스👉 예를 들어, 5 3 5 4 3 2 1 1 3 2 4 1 5 이 입력이 들어오면,1 ~ 3 구간 합 = 5+4+3 = 122 ~ 4 구간 합 = 4+3.. 2025. 8. 20.
[병원 HIS] 결핵환자 신고 프로세스 튜닝과 전산 개선 병원 정보시스템(HIS)에서는 감염병 신고가 단순 전산 기능을 넘어, 환자 안전과 법적 보고 의무와 직결됩니다.그중 결핵환자 신고는 특히 중요도가 높은데, 실제 현업에서 운영되는 시스템에는 몇 가지 개선 포인트가 있었습니다.이번 글에서는 제가 진행했던 결핵환자 신고 프로세스 개선 경험과 함께,관련 SQL 쿼리 최적화 및 화면 스크립트 개선 사례를 공유합니다.1. 문제 상황기존 결핵환자 신고 로직에는 다음과 같은 문제들이 있었습니다.신고 팝업은 저장 이후에만 조회 가능 → 의사가 즉시 확인하기 불편데이터 정합성 부족 → 결핵환자가 누락되거나 중복되는 경우 발생신고 제외 사유를 기록할 수 없어, 단순히 99991231 같은 특수 코드 처리에 의존불필요한 팝업 발생 → 의료진의 업무 피로도 증가2. 개선 목표.. 2025. 8. 20.
[병원 HIS] 병리과 동결절편 검체 블록 생성 오류 추적기 업무 중 병리과에서 동결절편 검체(Block) 생성이 되지 않는 오류가 발생해 SQL 조회 및 로그 확인을 통해 원인을 추적했습니다. 병원정보시스템(LIS)에서 자주 발생할 수 있는 사례이기에, 기록 차원에서 정리해 봅니다.📌 1. 문제 현상 요약병리과에서 동결절편 의뢰 후 블록이 생성되지 않음정상적으로 등록한 수납번호/검체번호를 기준으로도 ljspmcen 테이블에 insert되지 않음ljspmact, ljspmcen 등 병리 관련 테이블 확인 필요🔍 2. 초기 SQL 확인 및 로그 추적✔️ 주요 테이블LIS.ljspmact: 병리 의뢰 데이터LIS.ljspmcen: 병리 검체 생성 데이터 (Block 생성 여부 확인 대상)sql복사편집-- 검체 등록 여부 확인 SELECT * FROM LIS.ljs.. 2025. 8. 20.
[백준 11720번] 숫자의 합 구하기 📝 문제 설명 (BOJ 11720)입력첫째 줄: 숫자의 개수 N (1 ≤ N ≤ 100)둘째 줄: 공백 없이 이어져 있는 N개의 숫자 문자열출력입력된 N개의 숫자를 모두 더한 합을 출력합니다. 입력554321출력15📘 개념 설명1. 입력 형태 (문자열 vs 숫자)문제에서 두 번째 줄은 숫자들이 공백 없이 한 줄에 붙어서 들어옵니다.예: 54321이걸 int로 받으면 하나의 큰 수(54321)가 되어버립니다.하지만 우리는 5+4+3+2+1처럼 각 자릿수의 합을 구해야 하므로,문자열(String) 로 입력받아 한 글자씩 분리해야 합니다.2. 문자와 아스키코드 (char → int 변환)Java에서 문자는 내부적으로 유니코드 정수로 저장됩니다.'0' → 48, '1' → 49, ..., '9' → 57따라.. 2025. 8. 20.