공급내역 보고서
의약품 공급내역 데이터를 업로드하고, 자동 처리 후 검증·수정하는 전체 과정을 안내합니다.
갑지와 을지
KPIS에 제출하는 공급내역 보고서는 갑지와 을지 두 종류로 구성됩니다.
| 구분 | 역할 | 열 수 | 핵심 내용 |
|---|---|---|---|
| 갑지 | 공급자 보고 문서 | 21열 (A~U) | 공급사업자, 제품명, 표준코드, 수량/단가/금액, 공급구분 |
| 을지 | 일련번호 문서 | 3열 (A~C) | 갑지 연번에 매칭되는 의약품 일련번호/RFID |
갑지 주요 열 구조
| 열 | 필드명 | 설명 | 편집 가능 |
|---|---|---|---|
| A | 연번 | 순서 번호 (을지 매칭 키) | — |
| B | 공급사업자등록번호 | 제조업체 사업자번호 | — |
| E | 공급구분 | 1:출고, 2:반품, 3:폐기, 4:정정, 5:취소 | — |
| G | 공급받은자 명칭 | 거래처명 | — |
| J | 제품명 | 의약품 제품명 | — |
| K | 표준코드 | KPIS 13자리 식별코드 | O |
| L | 공급규격 | 포장단위 (단위변환 대상) | O |
| M | 공급수량 | 수량 (단위변환 대상) | O |
| N | 공급일자 | YYYYMMDD 형식 | — |
| O | 공급금액 | 총액 — 단위변환 시에도 불변 유지 | — |
| P | 공급단가 | 단가 (단위변환 대상) | O |
| R | 반송사유 | DC코드 (반품/폐기 시 필수) | O |
총 21열의 전체 목록은 관리자 가이드 API 레퍼런스에서 확인할 수 있습니다.
을지 구조
| 열 | 필드명 | 설명 |
|---|---|---|
| A | 연번 | 갑지 A열과 매칭 |
| B | 일련번호 | 16자리 고유번호 |
| C | RFID/바코드 | GS1 바코드 |
갑지-을지 매칭 규칙
- 갑지 A열(연번) = 을지 A열(연번)으로 자동 매칭됩니다.
- 1:1(한 갑지에 한 을지), 1:n(한 갑지에 여러 을지), 1:0(을지 없음) 모두 허용됩니다.
- 갑지 U열(일련번호구분)이
0이면 을지 필수,1이면 을지 생략 가능합니다.
엑셀 업로드
파일 형식
업로드할 엑셀 파일은 다음 조건을 충족해야 합니다.
| 항목 | 조건 |
|---|---|
| 파일 확장자 | .xlsx (Excel 2007 이상) |
| 헤더 행 | 없음 — 첫 행부터 데이터 |
| 갑지 | A~U열 (21열) |
| 을지 | A~C열 (3열) |
파일명 규칙
시스템이 파일명에서 보고 날짜를 자동 추출합니다. 다음 4가지 형식을 인식합니다.
YYYY-MM-DD_실적보고(갑지).xlsx 예: 2026-03-08_실적보고(갑지).xlsx
YYYYMMDD_실적보고(갑지).xlsx 예: 20260308_실적보고(갑지).xlsx
YY-MM-DD_실적보고(갑지).xlsx 예: 26-03-08_실적보고(갑지).xlsx
YYMMDD_실적보고(갑지).xlsx 예: 260308_실적보고(갑지).xlsx
업로드 절차
- 사이드바에서 파일 업로드를 클릭합니다.
- 갑지 파일을 드래그앤드롭하거나 파일 선택으로 등록합니다.
- 을지 파일이 있으면 함께 등록합니다. (을지는 선택사항)
- 업로드 버튼을 클릭하면 시스템이 파일을 파싱하고 날짜를 추출합니다.
- 업로드 완료 후 자동 처리 단계로 진입합니다.
같은 날짜의 데이터가 이미 존재하면 기존 데이터를 덮어씁니다.
자동 코드매핑 및 규칙 적용
업로드가 완료되면 시스템이 자동으로 3단계 처리를 수행합니다.
1단계: 코드매핑 자동적용
제품명(J열)을 기준으로 이전에 학습된 표준코드 매핑을 자동 적용합니다.
- 과거 동일 제품명에 매핑했던 표준코드가 있으면 자동 채움
- 사용 횟수(
usageCount)가 높은 매핑이 우선 적용 - 공급구분별로 독립적으로 매핑 관리 (출고와 반품에서 같은 제품이 다른 코드를 가질 수 있음)
2단계: 규칙 자동적용
관리자가 등록한 일괄 수정 규칙(batch_rules)이 우선순위 순서대로 적용됩니다.
- 조건(제품명 포함, 거래처 일치 등)에 해당하는 행을 찾아 액션(필드 값 변경) 실행
- 규칙별 적용 횟수가 자동 집계됩니다
3단계: 자동보정 제안
과거 수정 패턴을 학습한 자동보정 규칙이 적용됩니다.
- 동일한 오류 패턴에 대해 과거 수정 이력을 분석
- 신뢰도(
confidence)가 충분히 높은 보정만 자동 적용 - 낮은 신뢰도의 보정은 사용자 확인을 요청합니다
데이터 수정
자동 처리 후 남은 오류와 경고를 사용자가 직접 확인하고 수정합니다.
오류와 경고
| 구분 | 의미 | 제출 가능 여부 |
|---|---|---|
| 오류 (빨간색) | 필수값 누락, 형식 불일치, 비즈니스 규칙 위반 | 제출 불가 — 반드시 수정 |
| 경고 (노란색) | 잠재적 문제 (단가 이상, 중복 의심 등) | 제출 가능 — 확인 권장 |
편집 가능 필드
데이터 테이블에서 직접 수정할 수 있는 필드는 다음과 같습니다.
- 표준코드 (K열): 검색 팝업에서 정확한 13자리 코드 선택
- 공급규격 (L열): 포장단위 변경 시 단가/수량 자동 재계산 (총액 불변)
- 공급수량 (M열): 수량 변경 시 단가 자동 재계산 (총액 불변)
- 공급단가 (P열): 단가 변경 시 수량 자동 재계산 (총액 불변)
- 반송사유 (R열): DC001~DC007 중 선택
핵심 규칙: 공급금액(총액, O열)은 어떤 수정을 하더라도 절대 변하지 않습니다. 단가 x 수량 = 금액이 유지되도록 시스템이 자동 재계산합니다.
수정 이력 추적
모든 편집은 edit_history에 기록됩니다. 각 수정 건마다 다음 정보가 저장됩니다.
- 수정 시각, 대상 행, 변경 전/후 값
- 수정 유형:
manual(사용자 수동),rule(규칙),correction(자동보정),auto_match(코드매핑)
공급구분별 탭
데이터는 공급구분 코드에 따라 5개 탭으로 자동 분류됩니다. 각 탭은 규칙, 코드매핑, 검증이 독립적으로 동작합니다.
| 탭 | 코드 | 설명 | 특이사항 |
|---|---|---|---|
| 출고 | 1 | 일반 공급 | 기본 보고 형태, 모든 필수 필드 입력 |
| 반품 | 2 | 반품 처리 | 반송사유코드(R열) 필수, 금액은 원래 출고 금액과 동일 |
| 폐기 | 3 | 폐기 처리 | 단가 = 0, 금액 = 0 필수, 수량만 기재 |
| 정정 | 4 | 기등록 건 정정 | 기존 접수번호 필요, 변경 필드만 수정 |
| 취소 | 5 | 기등록 건 취소 | 기존 접수번호 필요, 원래 데이터 그대로 제출 |
정정(4)과 취소(5)는 이미 KPIS에 등록된 건을 수정하거나 취소할 때 사용합니다. 기존 접수번호(
rcptNo)가 반드시 필요합니다.
유효성 검증 3단계
제출 전 시스템이 자동으로 3단계 유효성 검증을 수행합니다.
1단계: 필수값 검증
누락되면 안 되는 기본 필드를 확인합니다.
| 검증 항목 | 내용 |
|---|---|
| 공급사업자등록번호 (B열) | 빈 값 여부 |
| 표준코드 (K열) | 13자리 존재 여부 |
| 공급수량 (M열) | 양수 여부 |
| 공급일자 (N열) | 빈 값 여부 |
| 공급금액 (O열) | 숫자 여부 |
| 반송사유 (R열) | 반품/폐기 시 필수 |
2단계: 형식 검증
값이 존재하더라도 형식이 올바른지 확인합니다.
| 검증 항목 | 형식 |
|---|---|
| 표준코드 | 정확히 13자리 |
| 사업자등록번호 | 10자리 |
| 공급일자 | YYYYMMDD (8자리) |
| 유효기간 | YYMMDD (6자리) |
| 요양기관기호 | 공급형태=9일 때 8자리 필수 |
| 공급구분 | 1~5 범위 |
3단계: 비즈니스 검증
데이터 간의 정합성과 KPIS 기준 준수 여부를 확인합니다.
| 검증 항목 | 내용 |
|---|---|
| 표준코드 존재여부 | 마스터 DB에 등록된 코드인지 확인 |
| 단가 x 수량 정합성 | 단가 x 수량 ≈ 금액 (1원 이내 오차 허용) |
| 폐기 금액 제로 | 공급구분=3일 때 단가/금액이 0인지 확인 |
| 을지 필수 여부 | 일련번호구분=0인데 을지 데이터가 없으면 오류 |
| 중복 의심 | 같은 거래처+제품+수량+날짜 조합이 이미 존재하면 경고 |
오류가 1건이라도 남아있으면 API 제출(MA111)이 차단됩니다. 경고는 사용자 판단에 따라 무시하고 제출할 수 있습니다.