Commit Graph
1 Commits
Author SHA1 Message Date
MsystechandClaude Opus 5 be9889ed4e 적용일시 판정을 표로 고정한다 — 한 칸 어긋나면 태그가 통째로 빈다
미리보기 레거시 호환 계획 A3 의 세 번째 조각. 순수 함수 + 테스트 9건.

<b>왜 이것부터인가.</b> 환자 문맥 5행이 전부 이 시각을 키로 읽힌다 —
진료과·담당의(P_CodInf), 보험 자격(P_CoiInf), 병동·병실(P_CowInf) 모두
:AdpDtm BETWEEN StrDtm AND EndDtm 이다.
시각이 한 칸 어긋나면 조인이 0행이 되고 <b>태그가 통째로 빈 값</b>이 된다 —
값이 틀리는 것이 아니라 아무것도 안 나오고, 사용자는 "미리보기가 고장났다"고 읽는다.

갈래가 여섯이고 각각 경계 조건이 다르다:
  외래 → 접수일시 그대로(자격 구간을 보지 않는다)
  입원 First → 자격 시작과 접수 중 <b>늦은</b> 쪽
  입원 Last, 재원 중(CoiEndDte=29991231) → 지금. 단 입원 전환이 미래면 접수 시각
  입원 Last, 퇴원 → 자격 종료와 퇴원 중 <b>이른</b> 쪽
  호출자 지정(8자리/12자리) → 내원 구간 안으로 <b>가둔다</b>
  해석 불가 → 자동 판정으로 떨어진다(빈 값을 내보내면 조회가 전부 0행이다)

<b>저장소에 묻지 않고 순수 함수로 뺐다.</b> 안에 넣으면 실DB 없이는 한 갈래도 확인할 수 없다.
지금은 여섯 갈래를 전부 표로 고정했다.

시각 비교는 문자열 사전순이다 — 레거시가 그렇게 하고, 고정폭 YYYYMMDDHHMM 은 사전순이 곧 시간순이다.
DateTime 으로 바꾸면 잘못된 값(빈 문자열·공백)에서 예외가 난다.
CHAR 잔여 공백을 흡수한다 — 안 하면 사전순 비교가 어긋난다(검사로 못 박음).

게이트: 테스트 312/312(신규 9), --edit-smoke 0실패, --dialog-shots FAIL 0, 빌드 경고 0,
--db-render P062 md5 8d683835f5d81e7bb41c79071d6bf954 동일.

<b>남은 것</b>: 이 시각으로 5행을 읽는 PatientContextStore, 환자 선택 UI,
그리고 그 문맥을 쓰는 태그 해석기.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 11:43:34 +09:00