Skip to content

자격증/면허

프로세스

  • 승인 완료되면 자격증/면허로 넘어가서 등록됨

Works(mobile)

  • 결재>문서관리 > 제출 > 옵션으로 자격증/면허 옵션 제공
  • 자격증/면허의 경우 다른 파이프라인(프로세스)를 따른다.
  • Works UI만 문서 제출과 같은 것으로 한다

자격증/면허 등록 팝업

1️⃣ 자격증/면허 제출 토글이 비활성화 일때

  • 필수 : 직원, 자격 유형
  • 선택 : 비고 2️⃣ 자격증/면허 제출 토글이 활성화 일때
  • 필수
    • 직원
    • 자격유형
    • 면허증명
    • 면허번호
    • 발급기관
    • 발급일
    • 원본 파일
  • 선택
    • 최근 면허 신고일
    • 차기 면허 신고일
  • 규칙
    • 필수 정보의 경우 * 표시가 되어 있어야한다.
    • [저장] 버튼 활성화 조건
      • 필수 정보를 모두 입력했을 때

리스트

1️⃣ 상단 영역

  • 왼쪽
    • [엑셀 다운로드]
      • 현재 필터 결과 기준으로 엑셀 내보내기
  • 오른쪽
    • [등록] ➡️ 자격증/면허 등록 모달 제공
      • 직원
        • 필수 입력
        • 검색으로 변경
        • placeholder : 사번 / 이름
      • 자격 유형
        • 필수 입력
        • 옵션: 간호사, 간호조무사, 물리치료사, 작업치료사, 언어치료사, 방사선사, 임상병리사, 약사, 영양사, 사회복지사, 의사, 치과의사, 응급구조사, 요양보호사, 기타
        • placeholder : 자격증/면허 유형을 선택하세요.
      • 자격증/면허 제출
      • 아래 항목은 기본으로 제공되는 내용이며, 자격증/면허 설정에서 수정 가능
필드필수형식placeholder, default기타
면허증명O(필수 표시*)textplaceholder : 간호사 면허증
면허번호O(필수 표시*)textplaceholder:제00000호
발급기관O(필수 표시*)textplaceholder: 보건복지부placeholder로 변경
발급일O(필수 표시*)datepickerYYYY.MM.DD.
파일O(필수 표시*)file upload파일을 추가해 주세요.파일 업로드하면 미리보기가 보이도록 수정
최근 면허 신고일XdatepickerYYYY.MM.DD.
차기 면허 신고일XdatepickerYYYY.MM.DD.신고일 입력 시 차기 신고 +3년 12/31 자동
등록일XdatepickerYYYY.MM.DD.문서 결재를 통해 넘어온 경우, 승인된 날짜로 자동으로 되어 있음,수정 가능

2️⃣ 필터링

  • 자격 유형
    • 옵션 : 전체, 간호사, 간호조무사, 물리치료사, 작업치료사, 언어치료사, 방사선사, 임상병리사, 약사, 영양사, 사회복지사, 의사, 치과의사, 응급구조사, 요양보호사, 기타
    • 기본 : 전체
  • 소속
    • 멀티셀렉트 드롭다운
    • 기본 : 전체(미선택)
    • placeholder : 조직 선택
    • 선택한 팀 중 하나라도 소속된 직원만 표시
    • 선택 해제(X) → 필터 초기화 · 목록 갱신
  • 차기 면허 신고일
    • 차기 면허 신고 기한 구간 · 시작일 ~ 종료일
    • 기본 : 미입력(전체)
  • 검색
    • 위치 : 필터 영역 오른쪽
    • placeholder : 이름 / 사번
    • 결과 없음 : 검색 결과가 없어요.

3️⃣ 요약

  • 필터 위로 고정
  • 조직 전체 기준 · 리스트 필터와 무관 (pill 요약)
항목 예시표시 예설명
간호사3 / 12미제출 수 / 해당 유형 전체 수
물리치료사1 / 5미제출 수 / 해당 유형 전체 수

4️⃣ 리스트 뷰

사번이름소속입사일자격유형자격증/면허 이름발급일등록일관리
EMP-003홍길동간호팀>1병동2026.06.20.간호사간호사2020.06.13.2026.06.23.[보기][삭제]
  • 칼럼 정의
    • 사번 : 없으면 - 로 표시
    • 이름 :
    • 소속
      • 팀 표시, 상위팀이 있을 경우 >로 표시
      • 예시) 간호팀 > 1병동
    • 입사일 : 직원 정보에 있는 입사일
    • 발급일 : 자격증/면허에 입력된 발급날짜
    • 등록일 : Works(mobile)로 등록된 자격증/면허 문서를 문서 제출에서 결재한 날짜
    • 관리 : 해당 내용을 관리하기 위한 버튼을 제공하는 컬럼(5️⃣, 6️⃣ 에서 확인)

5️⃣ [보기] 버튼으로 제공하는 팝업

  • 자격증/면허 수정 팝업 제공
    • 자격증/면허 등록 팝업과 동일
    • 단, 입력된 정보가 있을 경우 보임

6️⃣ [삭제] 버튼으로 제공하는 팝업

  • 팝업
삭제
{성이름}님의 {자격증명} 정보를 삭제할까요? 삭제하면 복구할 수 없어요.

[취소] [삭제]

자격증/면허 커스텀 설정 → 새롭게 개발 필요한 화면

  • 페이지 위치 : 문서 양식 > 자격증/면허 설정
    • 문서 양식 옆의 자격증/면허탭으로 제공
  • 1️⃣ 상단 영역
  • [유형 추가] (오른쪽 · 공통정책)
    • 클릭 시 자격 유형 추가 모달

2️⃣ 유형 추가·수정 모달

  • title
    • 추가 : 자격 유형 추가
    • 수정 : 자격 유형 수정
  • 필드
필드필수형식설명
이름 *Otextplaceholder : 간호사영양사 등
설명Xtext유형 안내
기본 면허증명Xtextplaceholder : 간호사 면허증 · 유형 선택 시 자동 입력
상태O (표시 없음)select활성 / 비활성 · default 활성
  • 푸터
    • [취소], [X] : 닫기
    • [저장] : 필수 입력 시 활성 · 저장 후 목록 최상단(추가) 또는 갱신(수정) · 자격 유형을 저장했어요. 토스트
  • 수정일 경우 다른 경우
    • 기존 값 prefill
    • 이미 대장·결재에 사용 중인 유형도 이름·설명·기본 면허증명·상태 변경 가능
    • 이름 변경 시 기존 레코드 유형 라벨 즉시 반영

3️⃣ 리스트 뷰

이름설명상태관리
간호사간호사 면허 관리활성✏️ 🗑️
물리치료사-활성✏️ 🗑️
영양사(커스텀)병원 자체 분류비활성✏️ 🗑️
  • 컬럼 정의
    • 이름 : 유형 표시명 (대장·필터·Works·직원 추가에 노출)
    • 설명 : 없으면 -
    • 상태 : 활성 / 비활성 배지
      • 비활성 → Works 제출 옵션·직원 추가 유형 체크·대장 필터 미노출
      • 기존 대장 레코드는 유지 (읽기 가능)
    • 관리 : [수정] [삭제] 아이콘
  • 정렬 : 최근 추가 순 (상단)
  • 빈 목록 : 등록된 자격 유형이 없어요. 유형을 추가해 주세요.

4️⃣ 기본 제공 유형

  • 현재(2026.06.29.)기준으로 자동으로 셋팅되는 유형을 제공
  • 조직 최초 진입 시 시스템 기본 유형 일괄 제공 (현행 enum 기준)
    • 간호사, 간호조무사, 물리치료사, 작업치료사, 언어치료사, 방사선사, 임상병리사, 약사, 영양사, 사회복지사, 의사, 치과의사, 응급구조사, 요양보호사, 기타
  • 기본 유형도 이름·설명·상태 수정 가능
  • 기본 유형 삭제/수정 가능

5️⃣ 관리의 [삭제] 버튼이 제공하는 팝업 ① 활성 상태

  • title : 삭제
  • message : {유형 이름} 유형을 삭제할 수 없어요. 먼저 비활성 상태로 변경한 뒤 삭제할 수 있어요.
  • [확인]만 제공

② 비활성 + 해당 유형 사용 이력 있음 (대장 레코드·Works 제출·결재)

  • title : 삭제
  • message : `{유형 이름} 등록된 기록이 있어요. 등록된 기록이 있으면 삭제할 수 없어요.
  • [확인]만 제공

③ 비활성 + 사용 이력 없음

  • title : 삭제
  • message : {유형 이름} 유형을 삭제할까요?
  • [취소], [X] : 해당 팝업 닫힘

⚠️ 구현 현황 · 하드닝 후보 (2026-08-13)

CODE가 진실이에요. 자격증/면허 대장은 공단 자격 신고를 먹이는 도메인이라 조용한 데이터 누락이 특히 위험해요.

EmployeeCertification 은 상태/승인 필드가 없음 — 승인 상태는 파생

  • EmployeeCertification 엔티티에는 status/approval 컬럼이 없어요(employee-certification.entity.ts). 승인 상태는 sourceDocumentId + registeredAt 두 nullable 컬럼에서 파생돼요.
    • 관리자 직접 등록 → 즉시 등록(registeredAt = 오늘, employee-certification.router.ts:213).
    • Works 제출 → 승인 전까지 대장에서 숨김(대장 조회에 (sourceDocumentId IS NULL OR registeredAt IS NOT NULL) 필터 적용).
    • 등록일(대장 노출일) = 결재 승인일(team-manager.router.ts:1802 registeredAt = approvedAt).

Works 자격증사본 제출이 비트랜잭션 이중 쓰기 [기능 수정 후보 — 조용한 누락]

  • Works 에서 자격증사본을 제출하면 employee-app 이 비트랜잭션 2개 호출을 연달아 해요: document.upload(Document, category=certification) → employeeCertification.submitMy(생성 후 sourceDocumentId 로 Document 연결).
  • 두 번째 호출이 실패하면 링크 없는 Document 만 남아요. 이후 결재 승인 시 EmployeeCertification 갱신이 0행이 되어 — 문서는 "승인" 이지만 대장엔 아무것도 안 들어가요(에러 없음).

두 번째 승인 경로 document.review 가 cert→대장 파이프라인을 우회 [판단 필요]

  • 정상 cert 승인은 team-manager 경로(documentManagement.approve)가 registeredAt 을 세팅해 대장에 노출시켜요(team-manager.router.ts:1802).
  • 그런데 별도 엔드포인트 document.review(document.router.ts:182-201)는 Document.status 만 APPROVED/REJECTED 로 바꾸고 EmployeeCertification.registeredAt건드리지 않아요. 자격증 문서를 이 경로로 승인하면 registeredAt 이 영구 null → 대장/요약/export 에 영원히 미노출돼요.
  • 두 승인 엔드포인트의 동작이 비동등해서 잠재적 조용한 파손(silent breakage)이에요.

결재 승인/반려 시 직원 알림 없음

  • 문서·자격증 결재는 제출 시에만 결재자에게 알림을 보내고(document.router.ts:124-128 새 문서 제출), 승인/반려 시 직원(제출자)에게 알림이 없어요. 알림 문서 alarm.md 의 문서/자격증 표는 승인/반려 → 신청자 본인 행을 담고 있으나 미구현이에요(백로그 DOC-BL-029, flow 문서의 optional 표기와 일치).
  • [확인] : 삭제 · 목록 갱신