내원 이력 6종 — 125종 → 131종
OCM_FollowUp(bzDataInterface.vb:1028 — 지금 이후 취소 아닌 내원. 원문의 ROWNUM 은 ORDER BY 보다 먼저 걸려 임의 행이었다 — 인라인뷰 정렬로 "가장 가까운 미래 내원"에 고정), OCM_외출외박신청일/종료일 (:1883/:1936 — 오늘 포함 CowSlpOut='Y' 구간의 시작/끝. 0행이면 서버 현재시각이 나오는 레거시 폴백을 SQL NVL 로 그대로 옮겼다 — ㉛에서 12자 폴백 확인), OCM_최초내원일(:1988 Case Else — 이 쿼리는 원문부터 인라인뷰 정렬이 있어 결정적. KIMEYE 분기 미이식), OCM_초진일_발병일(:2040)·OCM_신환_초진일(:2138 — 진료과 앞 2자를 레거시는 GetCodInfDT 임의 행에서 뽑았지만 우리는 문맥의 진료 행에서). "지금/오늘"은 전부 서버 시각(SYSDATE) — 레거시 SystemDateTime 과 같은 의미이고 단말 시계에 좌우되지 않는다. - dotnet test 338/338 · --edit-smoke 실패 0 (이름 검사 131종) - --db-patient ①~㉝ 전건 통과 — ㉝ 신설: 재진 있는 차트로 실값 검증 - --db-render P062 md5 8d683835f5d81e7bb41c79071d6bf954 불변 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
4642439ffd
commit
ec47c98bdd
@@ -2347,9 +2347,14 @@ public static class DbSmoke
|
||||
+ $" · 급여세대주 {extra.HouseholderNameByInsurance(extraOwner, "0", "1").Length}자"
|
||||
+ (owner2 is null ? ""
|
||||
: $" · 건보세대주 {extra.HouseholderName(extraOwner, owner2.Value).Length}자"
|
||||
+ $" · 협력업체 {extra.Cooperator(owner2.Value).Length}자");
|
||||
+ $" · 협력업체 {extra.Cooperator(owner2.Value).Length}자")
|
||||
+ $" · FollowUp {extra.FollowUp(extraOwner).Length}자"
|
||||
+ $" · 최초내원 {extra.FirstVisit(extraOwner, "999912312359").Length}자"
|
||||
+ $" · 초진일 {extra.FirstVisitByDepartment(extraOwner, "999912312359", "00", false).Length}자"
|
||||
+ (owner2 is null ? ""
|
||||
: $" · 외출외박 {extra.LeaveOfAbsence(owner2.Value, false).Length}자");
|
||||
lines.Add($" 부가정보: {shapes} (값은 기록하지 않는다)");
|
||||
Check("㉛ 부가정보 7종 조회가 예외 없이 돈다", true, "");
|
||||
Check("㉛ 부가정보·내원이력 조회가 예외 없이 돈다", true, "");
|
||||
|
||||
// "돌지만 항상 0행"인 매칭 실수(RPAD·조인)를 가른다 —
|
||||
// 값이 있는 차트를 골라서 물으면 반드시 값이 나와야 한다.
|
||||
@@ -2367,11 +2372,28 @@ public static class DbSmoke
|
||||
extra.Nationality(natOwner).Length > 0,
|
||||
"RPAD 매칭이나 NATCOD 조인을 의심할 것");
|
||||
}
|
||||
|
||||
// 최초내원일도 같은 방식 — 재진(ComNfsTyp='2') 내원이 있는
|
||||
// 차트를 골라서 물으면 반드시 값이 나와야 한다.
|
||||
var revisitOwner = FirstText(conn,
|
||||
"SELECT TRIM(ComChtNum) FROM P_ComInf"
|
||||
+ " INNER JOIN P_CodInf ON ComNum = CodComNum"
|
||||
+ " WHERE ComAcpStt <> 'OC' AND ComNfsTyp = '2' AND ROWNUM = 1");
|
||||
if (revisitOwner.Length == 0)
|
||||
{
|
||||
lines.Add("SKIP ㉝ 최초내원일 값 — 재진 내원이 없어 판정 불가");
|
||||
}
|
||||
else
|
||||
{
|
||||
Check("㉝ 재진 내원이 있는 차트에서는 최초내원일이 나온다",
|
||||
extra.FirstVisit(revisitOwner, "999912312359").Length >= 8,
|
||||
"RPAD 매칭이나 P_CodInf 조인을 의심할 것");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Check("㉛ 부가정보 7종 조회가 예외 없이 돈다", false,
|
||||
Check("㉛ 부가정보·내원이력 조회가 예외 없이 돈다", false,
|
||||
$"{ex.GetType().Name}: {ex.Message.Split('\n')[0]}");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user