CTX 126종 검증을 끝낸다 — 반박 6건, 그리고 기존 코드의 차이 3건
배치 2 재실행 완료. 에이전트 12개 전부 성공, 오류 0.
ok 118 / wrong 6 / unsure 2, 고유 태그 105종.
## 가장 값어치 있는 것은 "옮길 것"이 아니었다
검증이 <b>이미 들어가 있는 SheetMe 코드</b>의 차이를 셋 잡았다.
1. ETC_로그인_사용자ID_사용자명 — 레거시는 항상 UidCod + "." + UidNam 을 만드는데
TagPreviewCatalog.cs:197 은 둘 다 비어 있지 않을 때만 만든다.
2. ETC_로그인_사용자명 — UserContextStore.cs:62 가 NVL(UidNam,' ') 로 공백을 채워
UidNam 이 NULL 인 사용자에서 레거시("")와 값이 갈린다.
3. 로그인 사용자 유효기간 기준일 — 레거시는 GetAdpDtm 앞 8자, SheetMe 는 SYSDATE.
셋 다 태그를 새로 옮기다 나온 게 아니라 <b>기존 동작이 이미 달랐던</b> 것이다.
## 되살릴 때 걸리는 것
ETC_건강보험증번호_Refer 는 죽은 코드지만 주석 속 원래 구현이 ComInfDR_Refer
(참조 내원행)를 읽는다 — 다섯 문맥 표의 ComInf 로 그냥 치환하면 안 된다.
## 통합 전 대조가 먼저다
이번 배치는 대부분 ETC_ 계열이라 환자 태그가 아니고,
상당수를 SessionTagResolver/TagPreviewCatalog 가 이미 처리한다.
그대로 넣으면 같은 태그를 두 곳에서 처리하게 된다.
문서만 변경. 게이트는 앞 커밋 상태 그대로다.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
949db1aa18
commit
fd295744dd
+74
-52
@@ -1,39 +1,41 @@
|
|||||||
# 워크플로 1차 결과 — CTX 태그 검증
|
# 워크플로 최종 결과 — CTX 태그 126종 검증 완료
|
||||||
|
|
||||||
오케스트레이션(에이전트 11, 103만 토큰, 도구 299회)으로 레거시 본문을 병렬로 읽고,
|
오케스트레이션 2회(에이전트 12개 완료, 오류 0). 레거시 본문을 병렬로 읽고
|
||||||
각 매핑을 <b>다른 에이전트가 반박</b>하게 한 결과다.
|
각 매핑을 <b>다른 에이전트가 반박</b>하게 했다.
|
||||||
|
|
||||||
| 판정 | 수 |
|
| 판정 | 수 |
|
||||||
| --- | --- |
|
| --- | --- |
|
||||||
| ok | 94 |
|
| ok | 118 |
|
||||||
| wrong | 10 |
|
| wrong | 6 |
|
||||||
| unsure | 1 |
|
| unsure | 2 |
|
||||||
|
|
||||||
고유 태그 84종. 배치 6개 중 1개(읽기:2)는 API 521 로 실패해 <b>미실행</b>이다 — 재실행이 필요하다.
|
고유 태그 105종.
|
||||||
|
|
||||||
## 검증이 실제로 반박했다
|
## 통합 전에 반드시 확인할 것
|
||||||
|
|
||||||
wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에 들어갔을 것이다.
|
이번 배치는 대부분 `ETC_` 계열(시각·로그인 사용자)로 <b>환자 태그가 아니다</b>.
|
||||||
|
상당수는 `SessionTagResolver`/`TagPreviewCatalog` 가 이미 처리한다 —
|
||||||
|
그대로 넣으면 같은 태그를 두 곳에서 처리하게 된다. 대조가 먼저다.
|
||||||
|
|
||||||
## 이번 배치의 성격
|
## 검증이 <b>기존 SheetMe 코드</b>의 차이를 셋 잡았다
|
||||||
|
|
||||||
대부분 `ETC_` 계열(시각·로그인 사용자)이라 <b>환자 태그가 아니다</b>.
|
매핑이 아니라 이미 들어가 있는 코드가 레거시와 다른 경우다.
|
||||||
상당수는 `SessionTagResolver` 가 이미 처리하고 있을 수 있다 —
|
|
||||||
통합 전에 `TagPreviewCatalog` 와 대조해 중복을 걸러야 한다.
|
|
||||||
|
|
||||||
## 건진 것 중 눈에 띄는 것
|
1. `ETC_로그인_사용자ID_사용자명` — 레거시(17930)는 <b>항상</b> `UidCod + "." + UidNam` 을 만든다.
|
||||||
|
SheetMe `TagPreviewCatalog.cs:197` 은 둘 다 비어 있지 않을 때만 만들고 아니면 빈 값이다.
|
||||||
|
2. `ETC_로그인_사용자명` — SheetMe 조회(`UserContextStore.cs:62`)가 `NVL(UidNam,' ')` 로 공백 한 칸을 채운다.
|
||||||
|
`UidNam` 이 NULL 인 사용자에서 레거시("")와 값이 갈린다.
|
||||||
|
3. 로그인 사용자 유효기간 기준일 — 레거시는 `GetAdpDtm` 앞 8자(`clsCommonLib.vb:10622-10624`),
|
||||||
|
SheetMe 는 `SYSDATE`. 같은 행이라도 기준일이 다르다.
|
||||||
|
|
||||||
- `ETC_건강보험증번호_Refer` 는 <b>죽은 코드</b>다. 본문 전체가 주석이고 실행문은 `Return ""` 하나뿐.
|
## 되살릴 때 걸리는 것
|
||||||
- `ETC_현재일시_MaskBox` 는 마스크가 `9999-99-9999:99` 라 <b>일과 시가 붙는다</b>(`2026-08-1914:30`). 오타처럼 보이지만 레거시 동작이다.
|
|
||||||
- `ETC_로그인_원내연락처` 의 컬럼명은 `UIDOFFTEL` <b>대문자</b>다(형제 태그는 파스칼 `UidMblPhn`).
|
|
||||||
- `ETC_로그인사용자_서명` 은 서버에서 이미지 파일을 내려받는다 — `needs-lookup` 으로 격리.
|
|
||||||
- 검증이 <b>기존 SheetMe 코드의 차이</b>도 잡았다: 레거시는 로그인 사용자 조회에 `GetAdpDtm` 앞 8자를 쓰는데 SheetMe 는 `SYSDATE` 를 쓴다 — 같은 행이라도 기준일이 다르다.
|
|
||||||
|
|
||||||
## 다음 단계
|
- `ETC_건강보험증번호_Refer` 는 죽은 코드(`Return ""` 하나)지만, 주석 속 원래 구현은
|
||||||
|
`ComInfDR_Refer`(<b>참조 내원행</b>)를 읽는다 — 다섯 문맥 표의 `ComInf` 로 그냥 치환하면 안 된다.
|
||||||
1. 실패한 배치(읽기:2) 재실행
|
- `ETC_현재일시_MaskBox` 는 마스크 `9999-99-9999:99` 라 일과 시가 붙는다(`2026-08-1914:30`).
|
||||||
2. ok 94건에서 `SessionTagResolver` 가 이미 처리하는 것 제외
|
- `ETC_로그인_원내연락처` 컬럼은 `UIDOFFTEL` 대문자.
|
||||||
3. 남은 것 통합 후 게이트(--edit-smoke 이름 검사 · --db-patient · md5)
|
- `ETC_로그인사용자_서명` 은 서버에서 이미지를 <b>내려받는다</b>(경로 조립·재시도 루프·예외 분기).
|
||||||
|
`needs-lookup` 으로 격리했다.
|
||||||
|
|
||||||
## 판정 표
|
## 판정 표
|
||||||
|
|
||||||
@@ -50,6 +52,7 @@ wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에
|
|||||||
| ok | `ETC_로그인_사용자연락처` | - | - | - |
|
| ok | `ETC_로그인_사용자연락처` | - | - | - |
|
||||||
| ok | `ETC_로그인_사용자연락처` | context-scalar | - | UidMblPhn |
|
| ok | `ETC_로그인_사용자연락처` | context-scalar | - | UidMblPhn |
|
||||||
| ok | `ETC_로그인_원내연락처` | - | - | - |
|
| ok | `ETC_로그인_원내연락처` | - | - | - |
|
||||||
|
| ok | `ETC_로그인_원내연락처` | context-scalar | - | UIDOFFTEL |
|
||||||
| ok | `ETC_로그인사용자_서명` | - | - | - |
|
| ok | `ETC_로그인사용자_서명` | - | - | - |
|
||||||
| ok | `ETC_로그인사용자_서명` | needs-lookup | - | UidImgPth |
|
| ok | `ETC_로그인사용자_서명` | needs-lookup | - | UidImgPth |
|
||||||
| ok | `ETC_현재년도` | - | - | - |
|
| ok | `ETC_현재년도` | - | - | - |
|
||||||
@@ -76,14 +79,35 @@ wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에
|
|||||||
| ok | `ETC_현재일자` | formatted | - | - |
|
| ok | `ETC_현재일자` | formatted | - | - |
|
||||||
| ok | `OCM_OPNAME` | - | - | - |
|
| ok | `OCM_OPNAME` | - | - | - |
|
||||||
| ok | `OCM_OPNAME` | needs-lookup | - | OPNAME |
|
| ok | `OCM_OPNAME` | needs-lookup | - | OPNAME |
|
||||||
| ok | `OCM_OPRCODNAM` | needs-lookup | - | OPRCODNAM |
|
| ok | `OCM_STFDTR` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_User진료과_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_User진료과_한글명칭` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_User진료과` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_User진료의사명_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_User진료의사명` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_내원유형` | computed | ComInf | ComPatTyp, ComEmgYon |
|
||||||
|
| ok | `OCM_담당의사_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사_영문_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사_영문` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사면허번호_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사면허번호` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사싸인_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사싸인` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사전문의번호_Refer` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_담당의사전문의번호` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_로그인_사용자싸인` | needs-lookup | - | - |
|
||||||
|
| ok | `OCM_병동_Refer` | needs-lookup | CowInf | CowWadCod |
|
||||||
|
| ok | `OCM_병동_병실_베드` | needs-lookup | CowInf | CowWadCod + CowRomCod + CowBedCod |
|
||||||
|
| ok | `OCM_병동_병실` | needs-lookup | CowInf | CowWadCod, CowRomCod |
|
||||||
| ok | `OCM_병동` | needs-lookup | CowInf | CowWadCod |
|
| ok | `OCM_병동` | needs-lookup | CowInf | CowWadCod |
|
||||||
| ok | `OCM_병실베드` | needs-lookup | CowInf | CowBedCod |
|
| ok | `OCM_병실베드` | needs-lookup | CowInf | CowBedCod |
|
||||||
| ok | `OCM_부상병POA_Refer` | needs-lookup | - | OkdPoaTyp |
|
| ok | `OCM_부상병POA_Refer` | needs-lookup | - | OkdPoaTyp |
|
||||||
|
| ok | `OCM_부상병POA` | needs-lookup | - | OkdPoaTyp |
|
||||||
| ok | `OCM_부상병명_Refer` | needs-lookup | - | KcdKorNam |
|
| ok | `OCM_부상병명_Refer` | needs-lookup | - | KcdKorNam |
|
||||||
| ok | `OCM_부상병코드_Refer` | needs-lookup | - | KcdElcCod |
|
| ok | `OCM_부상병코드_Refer` | needs-lookup | - | KcdElcCod |
|
||||||
| ok | `OCM_부상병코드` | needs-lookup | - | KcdElcCod |
|
| ok | `OCM_부상병코드` | needs-lookup | - | KcdElcCod |
|
||||||
| ok | `OCM_상병명_가로_Refer` | needs-lookup | - | KcdKorNam + OkdCfmSus |
|
| ok | `OCM_상병명_가로_Refer` | needs-lookup | - | KcdKorNam + OkdCfmSus |
|
||||||
|
| ok | `OCM_상병명_가로` | needs-lookup | - | KcdKorNam + OkdCfmSus |
|
||||||
| ok | `OCM_상병명_영어_가로_Refer` | needs-lookup | - | KcdEngNam |
|
| ok | `OCM_상병명_영어_가로_Refer` | needs-lookup | - | KcdEngNam |
|
||||||
| ok | `OCM_상병명_영어_가로` | needs-lookup | - | KcdEngNam |
|
| ok | `OCM_상병명_영어_가로` | needs-lookup | - | KcdEngNam |
|
||||||
| ok | `OCM_상병명_영어_세로_Refer` | needs-lookup | - | KcdEngNam |
|
| ok | `OCM_상병명_영어_세로_Refer` | needs-lookup | - | KcdEngNam |
|
||||||
@@ -94,7 +118,9 @@ wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에
|
|||||||
| ok | `OCM_상병코드_세로` | needs-lookup | - | KcdElcCod |
|
| ok | `OCM_상병코드_세로` | needs-lookup | - | KcdElcCod |
|
||||||
| ok | `OCM_수술_OprPatETC` | needs-lookup | - | OprPatEtc |
|
| ok | `OCM_수술_OprPatETC` | needs-lookup | - | OprPatEtc |
|
||||||
| ok | `OCM_수술부위` | needs-lookup | - | OprRegionName |
|
| ok | `OCM_수술부위` | needs-lookup | - | OprRegionName |
|
||||||
|
| ok | `OCM_수술상병` | needs-lookup | - | OkdNam |
|
||||||
| ok | `OCM_수술일자_Refer` | computed | - | - |
|
| ok | `OCM_수술일자_Refer` | computed | - | - |
|
||||||
|
| ok | `OCM_수술주상병` | needs-lookup | - | - |
|
||||||
| ok | `OCM_심사_부상병명` | needs-lookup | - | - |
|
| ok | `OCM_심사_부상병명` | needs-lookup | - | - |
|
||||||
| ok | `OCM_심사_부상병코드` | needs-lookup | - | - |
|
| ok | `OCM_심사_부상병코드` | needs-lookup | - | - |
|
||||||
| ok | `OCM_심사_주상병명` | needs-lookup | - | - |
|
| ok | `OCM_심사_주상병명` | needs-lookup | - | - |
|
||||||
@@ -110,36 +136,32 @@ wrong 10건. 검증을 "통과시키는" 임무로 줬다면 그대로 코드에
|
|||||||
| ok | `OCM_입원일시_Refer` | computed | ComInf | ComAcpDtm |
|
| ok | `OCM_입원일시_Refer` | computed | ComInf | ComAcpDtm |
|
||||||
| ok | `OCM_입원전환일시_Refer` | formatted | ComInf | ComTrsDtm |
|
| ok | `OCM_입원전환일시_Refer` | formatted | ComInf | ComTrsDtm |
|
||||||
| ok | `OCM_입원전환일자_Refer` | formatted | ComInf | ComTrsDtm |
|
| ok | `OCM_입원전환일자_Refer` | formatted | ComInf | ComTrsDtm |
|
||||||
|
| ok | `OCM_입통원구분_입원_Refer` | computed | ComInf | ComPatTyp |
|
||||||
| ok | `OCM_입통원구분_입원` | computed | ComInf | ComPatTyp |
|
| ok | `OCM_입통원구분_입원` | computed | ComInf | ComPatTyp |
|
||||||
| ok | `OCM_입통원구분_통원_Refer` | computed | ComInf | ComPatTyp |
|
| ok | `OCM_입통원구분_통원_Refer` | computed | ComInf | ComPatTyp |
|
||||||
| ok | `OCM_입통원구분_통원` | computed | ComInf | ComPatTyp |
|
| ok | `OCM_입통원구분_통원` | computed | ComInf | ComPatTyp |
|
||||||
| ok | `OCM_적용진료의사` | needs-lookup | - | - |
|
| ok | `OCM_적용진료의사` | needs-lookup | CodInf | CodDtrCod |
|
||||||
| ok | `OCM_전과일시` | formatted | CodInf | CodStrDtm |
|
| ok | `OCM_전과` | needs-lookup | CodInf | CodDepCod, CodDepCod_Nam, CodStrDtm, CodEndDtm |
|
||||||
| ok | `OCM_전과일자` | formatted | CodInf | CodStrDtm |
|
| ok | `OCM_주상병POA_Refer` | needs-lookup | - | OkdPoaTyp |
|
||||||
| ok | `OCM_주상병POA_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병POA` | needs-lookup | - | OkdPoaTyp |
|
||||||
| ok | `OCM_주상병POA` | needs-lookup | - | - |
|
| ok | `OCM_주상병명_Refer` | needs-lookup | - | KcdKorNam |
|
||||||
| ok | `OCM_주상병명_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병명_영어_Refer` | needs-lookup | - | KcdEngNam |
|
||||||
| ok | `OCM_주상병명_영어_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병명_영어` | needs-lookup | - | KcdEngNam |
|
||||||
| ok | `OCM_주상병명_영어` | needs-lookup | - | - |
|
| ok | `OCM_주상병일자_Refer` | needs-lookup | - | OkdEntDtf |
|
||||||
| ok | `OCM_주상병일자_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병일자` | needs-lookup | - | OkdEntDtf |
|
||||||
| ok | `OCM_주상병일자` | needs-lookup | - | - |
|
| ok | `OCM_주상병코드_Refer` | needs-lookup | - | KcdElcCod |
|
||||||
| ok | `OCM_주상병코드_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병특정기호_Refer` | needs-lookup | - | OkdVeeCod |
|
||||||
| ok | `OCM_주상병특정기호_Refer` | needs-lookup | - | - |
|
| ok | `OCM_주상병특정기호` | needs-lookup | - | OkdVeeCod |
|
||||||
| ok | `OCM_주상병특정기호` | needs-lookup | - | - |
|
| ok | `OCM_진단구분_상병명` | needs-lookup | - | OkdDspSeq, OkdCfmSus, KcdKorNam |
|
||||||
| ok | `OCM_진단구분_상병명` | needs-lookup | - | - |
|
| ok | `OCM_진단구분_상병코드_상병명_Refer` | needs-lookup | - | OkdDspSeq, OkdCfmSus, KcdElcCod, KcdKorNam |
|
||||||
| ok | `OCM_진단구분_상병코드_상병명_Refer` | needs-lookup | - | - |
|
| ok | `OCM_진단구분_상병코드_상병명` | needs-lookup | - | OkdDspSeq, OkdCfmSus, KcdElcCod, KcdKorNam |
|
||||||
| ok | `OCM_진단구분_상병코드_상병명` | needs-lookup | - | - |
|
| ok | `OCM_진단서의사_영문_Refer` | needs-lookup | ComInf | ComPatTyp, ComPrgStt, ComLevDtm, ComAcpDtm |
|
||||||
| ok | `OCM_진단서의사_영문_Refer` | needs-lookup | - | - |
|
| ok | `OCM_진단서의사_영문` | needs-lookup | ComInf | ComPatTyp, ComPrgStt, ComLevDtm, ComAcpDtm |
|
||||||
| ok | `OCM_진단서의사_영문` | needs-lookup | - | - |
|
| ok | `OCM_진단서의사면허번호_Refer` | needs-lookup | ComInf | ComPatTyp, ComPrgStt, ComLevDtm, ComAcpDtm |
|
||||||
| ok | `OCM_진단서의사면허번호_Refer` | needs-lookup | - | - |
|
| ok | `OCM_진단서의사면허번호` | needs-lookup | ComInf | ComPatTyp, ComPrgStt, ComLevDtm, ComAcpDtm |
|
||||||
| ok | `OCM_진단서의사면허번호` | needs-lookup | - | - |
|
| unsure | `OCM_전과일시` | needs-lookup(정책상) / formatted(실질) | CodInf | CodStrDtm |
|
||||||
| unsure | `ETC_로그인_원내연락처` | context-scalar | - | UIDOFFTEL |
|
| unsure | `OCM_전과일자` | needs-lookup(정책상) / formatted(실질) | CodInf | CodStrDtm |
|
||||||
| wrong | `OCM_DX` | needs-lookup | - | DX |
|
| wrong | `OCM_DX` | needs-lookup | - | DX |
|
||||||
| wrong | `OCM_OPRCODNAM` | needs-lookup | - | OPRCODNAM |
|
| wrong | `OCM_OPRCODNAM` | needs-lookup | - | OPRCODNAM |
|
||||||
| wrong | `OCM_부상병POA` | needs-lookup | - | OkdPoaTyp |
|
| wrong | `OCM_간호정보조사지_과거력` | needs-lookup | - | - |
|
||||||
| wrong | `OCM_상병명_가로` | needs-lookup | - | KcdKorNam + OkdCfmSus |
|
|
||||||
| wrong | `OCM_수술상병` | needs-lookup | - | OkdNam |
|
|
||||||
| wrong | `OCM_수술주상병` | needs-lookup | - | - |
|
|
||||||
| wrong | `OCM_수술집도의` | needs-lookup | - | - |
|
| wrong | `OCM_수술집도의` | needs-lookup | - | - |
|
||||||
| wrong | `OCM_입통원구분_입원_Refer` | computed | ComInf | ComPatTyp |
|
|
||||||
| wrong | `OCM_전과` | needs-lookup | - | - |
|
|
||||||
|
|||||||
Reference in New Issue
Block a user