Maximize Your Potential

BackEnd 47

[병원 HIS] 국가명(국적명) 공통코드 가나다순 정렬 적용하기

[HIS 유지보수] 국가명(국적명) 공통코드 가나다순 정렬 적용하기병원 HIS 개발/유지보수를 하다 보면 자주 들어오는 요청 중 하나가 드롭다운 코드 정렬입니다.특히 국가명(국적명) 같이 선택지가 많은 필드는 가나다순이나 알파벳순으로 깔끔하게 보여줘야 실무자들이 실수를 줄일 수 있습니다.이번 글에서는 국가명 공통코드 정렬 요청이 들어왔을 때 처리 방법을 간단히 공유합니다.✅ 요청 배경기존 화면 : 국가명이 코드 테이블 등록순(dispseq)으로만 나와서 찾기 불편.요청 : 사용자들이 나라를 쉽게 찾을 수 있도록 국가명을 가나다/ABC순으로 정렬해 달라는 요구.적용 화면 : 예) 전염병 신고서, 외국인 환자 등록 등 국적 선택 필드가 있는 모든 화면.✅ 처리 방법 요약1️⃣ 공통 코드 호출 파라미터 수정우..

BackEnd/HIS System 2025.07.16

[병원 HIS] 건강증진센터 진료내역 수정요청 쿼리 정리

건강증진센터 진료내역 수정요청 쿼리 정리이번에는 건강증진센터 진료내역 수정 요청 업무를 진행하면서 기록해 둔 쿼리를 공유합니다. 데이터 흐름을 이해하고 문제를 해결하기 위해 각 테이블별로 어떤 조건과 로직으로 접근했는지 정리해두면 추후 유사 사례 처리 시 도움이 됩니다. 이번 케이스에서는 진료내역 기본 테이블과 실행 내역 테이블, 그리고 상태 테이블까지 세 단계로 나누어 조건을 검증했습니다. 기본 키는 pid, prcdd, CALCSOCORD이며 각 테이블 간 데이터 연계를 통해 누락되거나 불필요한 정보가 남아있지 않은지 꼼꼼히 확인하는 것이 핵심입니다.1️⃣ 기본 진료내역 조회가장 먼저 ast_aeahaacpt 테이블을 기준으로 진료내역을 확인합니다. 이 테이블은 환자별로 등록된 기본 진료내역이 기록되..

BackEnd/HIS System 2025.07.15

[42경산 라피신 과제 뽀개기] C01 과제 기본기 잡는 출력 함수 완전 정리

[42경산 라피신 과제 뽀개기] C01 과제 기본기 잡는 출력 함수 완전 정리 42서울/42경산에서 C01 과제를 시작하면 누구나 만나는 대표 포인터 함수들!단순해 보여도 포인터의 개념과 메모리 흐름을 한 번에 익히기 딱 좋습니다.이번 글에서는 꼭 알아야 할 함수들을 예제 소스와 함께 흐름까지 줄글로 풀어봅니다.✅ 1️⃣ ft_ft#include void ft_ft(int *nbr) { *nbr = 42; } ft_ft 함수는 가장 기본적인 포인터 대입 연습입니다.매개변수로 정수형 포인터를 하나 받는데, 이 포인터는 어떤 변수의 주소를 가리키게 됩니다.함수 내부에서 *nbr = 42;를 하면 포인터가 가리키는 주소에 들어있는 값이 42로 바뀝니다.즉, 함수가 끝나더라도 원본 변수의 값이 바뀌는 것이..

BackEnd/C 2025.07.14

[병원 HIS] CVR(이상결과보고) 기본설정 하드코딩 → 함수 호출로 개선하기

[병원 HIS] CVR(이상결과보고) 기본설정 하드코딩 → 함수 호출로 개선하기✅ 작업 배경영상의학과 CVR(이상결과보고) 알림 로직에서기존에는 부서별 전송번호, 기본설정시간, 전송타입이 쿼리 안에 하드코딩 되어 있었습니다.🔍 문제점부서 담당자나 전송 기준이 바뀔 때마다 SQL을 다시 수정하고 배포해야 함관리 포인트가 분산되어 실수 발생 가능성 높음이번 작업에서는 이 부분을 표준 함수 호출로 통일해 하드코딩을 제거했습니다.✅ 개선 핵심: 표준 함수 구조COM.FN_ZB_GETUSERCDNM부서별 전송번호, 기준시간, 전송타입 등을 테이블에서 조회EMR.FN_MM_GETTELNO사용자 휴대폰 번호를 사용자 테이블에서 조회 ✅ 예시Before (하드코딩)sendtelno = '01012345678' unc..

BackEnd/HIS System 2025.07.14

[42경산 라피신 과제 뽀개기] C00 과제 기본기 잡는 출력 함수 완전 정리

안녕하세요!이번 글에서는 42 c00 과제를 준비하시는 분들을 위해 제가 직접 풀어본 내용과 함께,왜 이런 함수를 만드는지, 각각 어떤 개념을 익힐 수 있는지 간단히 정리해보려고 합니다.c00 과제는 딱 보기엔 간단해 보여도, C언어 기초와 시스템 호출, 반복문, 재귀, 아스키코드 처리까지생각보다 많은 걸 배우게 해줍니다. ✏️ ft_putchar — 출력의 시작ft_putchar는 출력 함수의 기본 중 기본이에요.write라는 시스템 호출을 사용해서 문자 하나만 표준 출력(콘솔)에 찍습니다.printf 같은 라이브러리 없이도 출력이 가능하다는 걸 배우고,이후 다른 함수들이 ft_putchar를 계속 불러서 동작한다는 점도 같이 기억해두면 좋아요. #include void ft_putchar(char c..

BackEnd/C 2025.07.13

[병원 HIS] 재고관리 출력버튼 추가 개발 기록

[병원 HIS] 재고관리 출력버튼 추가 개발 기록안녕하세요. 이번 포스팅에서는 병원 물류관리 시스템의 항목별 재고관리 화면에 출력 버튼 추가 작업을 진행한 과정을 정리합니다.출력 요청이 들어온 배경부터 적용한 함수 코드 일부까지 간략히 기록했습니다.📌 1. 개발 배경요청: 특정 재고관리 화면에 출력 버튼이 없어 직원단위 출력 참고용으로 추가 요청위치: 식재관리 서비스관련 화면: 항목별 재고관리참고사항: 동일한 출력이 필요한 다른 화면(등급관리/보고서관리)에도 동일한 방식으로 적용 예정📌 2. 주요 작업 내용✅ 1) 출력 버튼 기능 추가화면의 데이터셋을 DOM 구조로 변환 → XML 생성 → 출력 미리보기 전달rpt_setNodeListToDOM 함수로 데이터셋 노드리스트 작성✅ 2) 출력 함수 예시f..

BackEnd/HIS System 2025.07.11

[Oracle / 오라클] Oracle 함수에서 SELECT INTO가 필요한 이유

📌 Oracle 함수에서 SELECT INTO가 필요한 이유데이터베이스에서 SELECT는 원하는 데이터를 테이블에서 꺼내오는 기본 명령어예요.근데 SELECT만 쓰면 결과가 집합(표 형태) 으로 나옵니다.예를 들어, SQL Developer 같은 툴에서 SELECT * FROM 테이블 하면 표가 뜨죠.하지만 PL/SQL 함수나 프로시저 안에서는 다릅니다.함수(Function): 결과를 하나의 값으로 반환해야 함프로시저(Procedure): 변수나 OUT 파라미터로 값을 내보냄그래서 SELECT 결과를 변수에 담아야다음 로직에서 가공하거나 RETURN 할 수 있어요.✅ SELECT INTO는 무조건 한 건만 반환해야 함중요한 특징:SELECT INTO는 결과가 하나면 OK.결과가 없으면 → NO_DATA..

BackEnd/Database 2025.07.10

[병원 HIS] 신장실당직 프로그램 Free Text 추가

신장실 당직알림말 수정기능을 추가하는 작업을 했습니다.당직알림을 하드코딩으로 아예 고정 시켜놨는데, 사용자코드를 통해서 사용자가 직접 알림말을 수정하면 그대로 반영되는 방식입니다.처음에는 삽질 을 했지만 데이터셋 바인딩구조를 충분히이해하고 기존에 사용자코드 설정 함수를 잘 설정하니 바로 반영되었습니다.📌 1) 데이터셋 및 바인딩 구조Invisible Objectsds_cond : 조건값 데이터셋 (ex. 당직날짜, 부서, 사용자코드)ds_UC0070, ds_UC0071 : 사용자 코드 조회용Bind Itemitem1 : day_searchCal.value → ds_cond.dutyymitem2 : Static00 (Static) expr → ds_UC0070.cdomitem3 : Static03 (St..

BackEnd/HIS System 2025.07.04

[병원 HIS] 외래채혈 혈액학검체 조회 화면 가접수 및 접수 통합목록추가

병원 정보시스템(HIS)을 유지보수하다 보면 화면, 쿼리, XML Mapper가 하나로 딱 맞물려야 데이터가 제대로 출력됩니다. 이번에는 외래채혈실에서 사용하는 혈액학검체 조회 프로그램을 유지보수하면서 실제로 겪었던 시행착오와 그 과정을 통해 다시 다잡은 핵심 포인트를 기록해 보았습니다.제가 맡았던 화면은 외래채혈실에서 환자별로 혈액학검체 이력을 조회할 수 있는 프로그램입니다. 화면은 XPLATFORM으로 되어 있고, 환자번호와 기간, 그리고 ‘검체구분’을 선택할 수 있는 ComboBox가 Dataset과 연동되어 있습니다. 선택된 옵션은 Oracle 쿼리로 전달되어 spcflag라는 코드값에 따라 전수, 채혈, 가검수 등으로 분기 처리되도록 되어 있었습니다.✅ 구조 요약화면(XPLATFORM)Combo..

BackEnd/HIS System 2025.06.30

[Oracle / 오라클] XMLAGG, XMLELEMENT 함수로 다수 검사자/진단명 1행으로 병합하기 (HIS 시스템 기준)

병원 전산시스템(HIS)에서는 하나의 검사나 진료 건에 대해 여러 명의 의료진이나 다수의 진단명이 연관된 경우가 많습니다. 이런 경우, 다수 레코드를 하나의 문자열로 병합해서 보여주는 SQL이 필요합니다.오늘은 Oracle의 XMLELEMENT, XMLAGG 함수를 활용하여 1건의 검사에 여러 검사자 이름을 쉼표로 연결해 한 줄로 표현하는 방법을 소개하겠습니다.💡 적용 배경 (병원 HIS 예시)한 환자 진료 건에서 여러 진단명이 함께 내려진 경우한 건의 병리 검사를 여러 명의 병리사 또는 검사자가 분담 처리한 경우한 건의 처방 오더에 여러 명의 의료진이 관여한 이력 표시→ 이런 데이터는 병원 DB에서 1:N 구조로 존재하며, UI 또는 보고서에서 "한 줄로" 표현되어야 합니다.📌 1. XMLELEME..

BackEnd/Database 2025.04.24