Files
genome2025/backend/doc/검사가능조건요약.md

4.8 KiB

유전체/유전자 검사 가능 조건 요약

1. DB 상태값 정의

chipSireName (아비명)

DB 값 의미 분석 가능 여부
일치 친자감별 일치 가능
불일치 친자감별 불일치 유전체 불가 / 유전자 가능
분석불가 모근 오염/불량 등 기타 사유 불가
정보없음 개체 식별번호/형식 오류 불가
null 미분석 (의뢰 없음) - 표시

- 아비명 가능한 개체에 대해서 어미명 판단 진행

chipDamName (어미명)

DB 값 의미 분석 가능 여부
일치 친자감별 일치 통과
불일치 친자감별 불일치 유전체 불가 / 유전자 가능
이력제부재 모 이력제 정보 없음 유전체 불가 / 유전자 가능
정보없음 정보 없음 통과
null 정보 없음 통과

2. 탭별 검사 가능 조건

유전체 탭

유효 조건 (모두 충족해야 함):
1. chipSireName === '일치'
2. chipDamName !== '불일치'
3. chipDamName !== '이력제부재'
4. cowId가 EXCLUDED_COW_IDS에 포함되지 않음

유전자 탭

유효 조건:
1. chipSireName !== '분석불가'
2. chipSireName !== '정보없음'
3. cowId가 EXCLUDED_COW_IDS에 포함되지 않음

※ 불일치/이력제부재도 유전자 데이터가 있으면 표시 가능

3. 개체 목록 배지 표시 (unavailableReason)

분석일자 컬럼

unavailableReason 배지 색상 표시 텍스트
null - -
분석불가 회색 분석불가
부 불일치 빨간색 부 불일치
모 불일치 주황색 모 불일치
모 이력제부재 주황색 모 이력제부재
형질정보없음 회색 형질정보없음

unavailableReason 결정 로직 (cow.service.ts)

if (!latestRequest || !latestRequest.chipSireName) {
  unavailableReason = null;  // '-' 표시
} else if (chipSireName === '분석불가' || chipSireName === '정보없음') {
  unavailableReason = '분석불가';
} else if (chipSireName !== '일치') {
  unavailableReason = '부 불일치';
} else if (chipDamName === '불일치') {
  unavailableReason = '모 불일치';
} else if (chipDamName === '이력제부재') {
  unavailableReason = '모 이력제부재';
}

// 형질 데이터 없으면
unavailableReason = '형질정보없음';

4. 개체 상세 페이지 배지

부 KPN 배지 (renderSireBadge)

조건 배지 색상 표시
EXCLUDED_COW_IDS 포함 회색 분석불가
chipSireName === '분석불가' 회색 분석불가
chipSireName === '정보없음' 회색 분석불가
chipSireName === '일치' 초록색 일치
그 외 빨간색 불일치
null - 표시 안 함

모 개체 배지 (renderDamBadge)

조건 배지 색상 표시
chipDamName === '일치' 초록색 일치
chipDamName === '불일치' 빨간색 불일치
chipDamName === '이력제부재' 주황색 이력제부재
그 외/null - 표시 안 함

5. 분석불가 안내 문구

상태 안내 문구
분석불가 (DB) 모근 오염 및 불량 등 기타 사유로 유전체 분석 보고서를 제공할 수 없습니다.
정보없음 (DB) 개체 식별번호 및 형식오류로 유전체 분석 보고서를 제공할 수 없습니다.
부 불일치 부 친자감별 결과가 불일치하여 유전체 분석 보고서를 제공할 수 없습니다.
모 불일치 모 친자감별 결과가 불일치하여 유전체 분석 보고서를 제공할 수 없습니다.
모 이력제부재 모 이력제 정보가 부재하여 유전체 분석 보고서를 제공할 수 없습니다.
EXCLUDED_COW_IDS 모근 오염 및 불량 등 기타 사유로 유전체 분석 보고서를 제공할 수 없습니다.

6. 관련 파일

백엔드

  • backend/src/common/config/GenomeAnalysisConfig.ts - 유효성 검사 함수
  • backend/src/cow/cow.service.ts - unavailableReason 결정 로직

프론트엔드

  • frontend/src/lib/utils/genome-analysis-config.ts - 유효성 검사, 메시지 함수
  • frontend/src/app/cow/page.tsx - 개체 목록 배지
  • frontend/src/app/cow/[cowNo]/page.tsx - 개체 상세 배지, 탭 조건

7. 제외 개체 목록 (EXCLUDED_COW_IDS)

특수 사유로 분석 불가한 개체를 하드코딩으로 관리:

export const EXCLUDED_COW_IDS = [
  'KOR002191642861', // 모근상태 불량으로 인한 DNA분해
];

이 목록에 포함된 개체는 유전체/유전자 탭 모두 분석불가로 처리됨