바이탈 17종 + 주치의 1종 + _Refer 사유 정정 — 76종 → 95종

## 바이탈(측정치) 17종

E_EmdInf_VITAL ⨝ E_EmrInf(삭제 제외) 를 내원으로 거르고 해당 컬럼이 빈 값이 아닌
행을 측정일시 순으로 한 건 집는다 — 무인자는 첫 측정(ASC), _LAST 는 마지막(DESC).
키/몸무게/체온/맥박/호흡/SPO2 (±LAST) · 혈압/혈압_LAST(BPS||'/'||BPD) ·
혈압_BPS/_BPD(단독값이지만 널 필터는 둘 다 — 레거시 그대로) · VITAL접수일시_LAST(HH:MM).

태그별 (식·컬럼·필터·정렬)을 전부 본문에서 확인해 표로 박았다(:11508-13046).
조회는 태그가 물을 때 한 값씩, 태그별 1회 캐시.

## 머리둘레 2종은 레거시가 고장이다

SELECT 는 EmdHc AS HC 인데 Item("BP") 를 읽는다(:11744, 12581) —
행이 있으면 예외 → MessageBox → "". 레거시에서 한 번도 값이 나온 적 없는 태그다.
그대로 빈 값 + "레거시 결함(컬럼명 불일치)으로 항상 빈 값이던 태그" 사유로 둔다.
고쳐서 값을 내면 레거시와 달라진다 — 고칠지는 별도 결정.

## 실DB 확인

--db-patient ㉙ 신규: 내원 6004487 에서 첫/마지막 몸무게 2자.
표 부재 가능성도 수술과 같은 방식으로 가른다(ORA-00942 명시).

## 게이트

- dotnet test 338/338 · --edit-smoke 실패 0(이름 검사 95종)
- --db-patient ①~㉙ 전건 통과 · --db-render P062 md5 불변

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Msystech
2026-08-19 15:59:04 +09:00
co-authored by Claude Opus 5
parent 3e9d5b5cf3
commit 94bdcc763f
6 changed files with 186 additions and 3 deletions
@@ -2264,6 +2264,33 @@ public static class DbSmoke
Check("㉘ 수술 쿼리가 행을 돌려준다", surgeries.Count > 0,
"OprStt='E' 조건이나 조인을 의심할 것");
}
// ㉙ 바이탈 — E_EmdInf_VITAL 에 행을 가진 내원으로 실행 확인
var vitOwner = FirstComNum(conn,
"E_EmdInf_VITAL INNER JOIN E_EmrInf ON EmrKey = EmdEmrKey",
"EmrComNum", "EmrComNum");
if (vitOwner is null)
{
foreach (var line in ExplainPeriod(conn, 0,
"SELECT COUNT(*) VITCNT FROM E_EmdInf_VITAL WHERE :k = 0"))
{
lines.Add($" [진단] E_EmdInf_VITAL: {line}");
}
lines.Add("SKIP ㉙ 바이탈 — 확인 불가. 위 [진단] 줄이 원인이다"
+ " (ORA-00942 면 이 시험 DB 에 표가 없어 운영 DB 에서만 검증 가능)");
}
else
{
var vital = new VitalStore(conn);
var weight = vital.One(vitOwner.Value, "EmdWeight", "EmdWeight",
new[] { "EmdWeight" }, "EmdDte ASC, EmdTime ASC");
var weightLast = vital.One(vitOwner.Value, "EmdWeight", "EmdWeight",
new[] { "EmdWeight" }, "EmdDte DESC, EmdTime DESC");
lines.Add($" 바이탈: 내원 {vitOwner.Value:F0} → 첫 몸무게 {weight.Length}자,"
+ $" 마지막 {weightLast.Length}자 (값은 기록하지 않는다)");
Check("㉙ 바이탈 조회가 값을 돌려준다", weight.Length > 0,
"EmdWeight 널 필터나 조인을 의심할 것");
}
}
}
}