conflict 6건을 고치고 재료 재사용으로 10종을 더한다 — 30종 → 40종
## conflict 6건 (통합 계획의 "고칠 것")
값이 바뀌는 것 둘:
- ETC_현재년도 — "2026" → "2026년"(bzDataInterface.vb:16923 의 + "년").
형제 ETC_현재일시_1_년 은 접미가 없어 둘을 갈랐다(ClockFormat.YearSuffixed 신설).
"2026" 을 단정하던 테스트도 고쳤다.
- ETC_로그인_사용자ID_사용자명 — 레거시(:17930)는 빈 값 검사 없이 항상 결합한다.
한쪽이 비어도 "U01." 이 그대로 나간다. 조건을 붙였던 것이 레거시와 달랐다.
행 선택이 바뀌는 것 둘:
- ETC_로그인_사용자연락처 / 원내연락처 — 전에는 M_UidMst 를 조건 없이 첫 행.
이력이 여러 행인 사용자에서 옛 연락처가 나올 수 있었다.
유효기간(SYSDATE 일자 BETWEEN)으로 고르고, 0행이면 레거시 폴백(:10641)처럼
조건 없이 다시 찾는다.
의도적 차이로 기록한 것 둘(코드 주석):
- 유효기간 판정 일자 — 레거시는 로그인 시점, 여기는 SYSDATE(자정 넘긴 세션에서만 갈림).
- Trim — 레거시는 무가공, 여기는 걷는다(CHAR 잔여 공백이 종이에 찍히는 쪽이 더 이상하다).
## new 48종 중 재료 재사용으로 되는 10종
워크플로 매핑 상세(docs/new48-mappings.json)를 붙여 보니 46종이 needs-lookup 인데,
그중 10종은 <b>이미 든 행의 다른 컬럼</b>이거나 문맥 계산이었다:
- 담당의 행 재사용 3: OCM_담당의사_영문(UidEngNam) · 면허번호(UidLicNum) · 전문의번호(UidSpcLic)
— 조회 갈래가 OCM_담당의사와 문자 그대로 같고 집는 컬럼만 다르다(:4094·4119·4144)
- CowInf 재사용 3: OCM_병실베드(CowBedCod) · 병동_병실 · 병동_병실_베드(" / " 결합, 행 없으면 "")
- 문맥 계산 1: OCM_내원유형(입원/응급실/외래 — ComPatTyp·ComEmgYon)
- User 계열 3: OCM_User진료과 · _한글명칭 · User진료의사명.
로그인 사용자가 의사(UidDtrYon=Y)면 사용자의 과·이름, 아니면 환자의 것.
HisUser 에 DoctorYn·DepOfficialName 을 추가했다(세션 조회 SELECT 확장).
남은 new 는 새 조회가 필요한 세 무리다: 상병(Okd_상병쿼리) · 수술(GetOprInfDT) ·
심사(Bkd_상병쿼리). 다음 배치.
## 게이트
- dotnet test 338/338 (현재년도·ID.사용자명 판정 갱신)
- --edit-smoke 실패 0 (이름 검사 40종)
- --db-patient ①~㉔ 전건 통과
- --db-render P062 md5 8d683835f5d81e7bb41c79071d6bf954 불변
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
e62e43d176
commit
9278b39a6d
@@ -47,7 +47,10 @@ public static class TagPreviewCatalog
|
||||
["ETC_현재일자"] = ClockFormat.Date,
|
||||
["ETC_현재일시"] = ClockFormat.DateTime,
|
||||
["ETC_현재일시_MaskBox"] = ClockFormat.DateTimeMask,
|
||||
["ETC_현재년도"] = ClockFormat.Year,
|
||||
// "년" 접미가 붙는다(bzDataInterface.vb:16923 — Data2Format(...) + "년").
|
||||
// 처음에 접미 없는 Year 로 넣어 레거시와 다른 값("2026")이 나갔다 —
|
||||
// 형제 태그 ETC_현재일시_1_년(:16929)은 접미가 <b>없으므로</b> 둘을 갈라야 한다.
|
||||
["ETC_현재년도"] = ClockFormat.YearSuffixed,
|
||||
["ETC_현재시간"] = ClockFormat.Time,
|
||||
["ETC_현재일자_영문"] = ClockFormat.DateEnglish,
|
||||
["ETC_현재일시_1_년"] = ClockFormat.Year,
|
||||
@@ -174,6 +177,7 @@ public static class TagPreviewCatalog
|
||||
// 레거시 Data2Format_ENG 의 MM-DD-YYYY 재배치
|
||||
ClockFormat.DateEnglish => $"{date[4..6]}-{date[6..8]}-{date[..4]}",
|
||||
ClockFormat.Year => date[..4],
|
||||
ClockFormat.YearSuffixed => date[..4] + "년",
|
||||
ClockFormat.Month => date[4..6],
|
||||
ClockFormat.Day => date[6..8],
|
||||
ClockFormat.Hour => minute12[8..10],
|
||||
@@ -194,14 +198,16 @@ public static class TagPreviewCatalog
|
||||
{
|
||||
UserField.Name => name,
|
||||
UserField.Id => id,
|
||||
UserField.IdAndName => id.Length > 0 && name.Length > 0 ? $"{id}.{name}" : string.Empty,
|
||||
// 레거시(bzDataInterface.vb:17930)는 빈 값 검사 없이 <b>항상</b> 결합한다 —
|
||||
// 한쪽이 비면 "id." 나 ".이름" 이 그대로 나간다. 조건을 붙였더니 레거시와 갈렸다.
|
||||
UserField.IdAndName => $"{id}.{name}",
|
||||
UserField.MobilePhone => mobile,
|
||||
UserField.OfficePhone => office,
|
||||
_ => string.Empty,
|
||||
};
|
||||
}
|
||||
|
||||
private enum ClockFormat { Date, DateTime, DateTimeMask, DateEnglish, Year, Month, Day, Hour, Minute, Time }
|
||||
private enum ClockFormat { Date, DateTime, DateTimeMask, DateEnglish, Year, YearSuffixed, Month, Day, Hour, Minute, Time }
|
||||
|
||||
private enum UserField { Name, Id, IdAndName, MobilePhone, OfficePhone }
|
||||
#endregion
|
||||
|
||||
Reference in New Issue
Block a user