요양기관 12종을 옮긴다 — 왕복 12회를 1회로 접었다. 63종 → 75종
ETC_요양기관명칭_* 계열(bzDataInterface.vb:15656-16709). 12종 전부 <b>같은 조인(M_DepMst⨝M_HspMst)의 다른 컬럼</b>이라는 것을 본문에서 확인했다 — 병원명(이미 이식)·병원명_영문·병원대표자·병원장·병원장귀하·전화번호·팩스번호· 전화_팩스·영문_전화_팩스·주소·주소_영문·사업자등록번호·요양기관기호. 레거시는 태그마다 이 조인을 따로 돌린다(12종 = 왕복 12회). 컬럼 9개를 한 번에 뽑아 행으로 들고, 값 선택은 해석기가 한다. HospitalName(문자열) → HospitalRow(행) 로 일반화했다. 접미·결합도 본문 그대로다: 병원장 = 병원명+"장" / 병원장귀하 = +"장 귀하" 전화_팩스 = "Tel : … FAX : …" / 영문판 = "Tel : +82 - … FAX : +82 - …" 접두·접미가 붙는 태그는 <b>재료 컬럼</b>으로 빈 값을 판정한다 — 병원명이 비면 "장"만 찍히는 것을 값으로 세지 않는다. 실DB 확인: --db-patient ㉔ 가 9열·병원명 6자를 돌려줬다. ## 게이트 - dotnet test 338/338 · --edit-smoke 실패 0(이름 검사 75종) - --db-patient 전건 통과 · --db-render P062 md5 불변 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
ef4f36419f
commit
26d9606d1e
@@ -198,26 +198,30 @@ public sealed class PatientContextStore
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 요양기관명 — <c>ETC_요양기관명칭_병원명</c>(bzDataInterface.vb:15792-15860)의 조회.
|
||||
/// <c>M_DepMst ⨝ M_HspMst(DepHspCod=HspCod)</c> 에서 <c>HspInsNam</c> 하나를 뽑아 Trim.
|
||||
/// 요양기관 행 — <c>ETC_요양기관명칭_*</c> 12종(bzDataInterface.vb:15656-16709)의 공통 조회.
|
||||
/// <c>M_DepMst ⨝ M_HspMst(DepHspCod=HspCod)</c> 에서 병원 컬럼들을 뽑는다.
|
||||
/// 진료과 코드로 병원을 찾는 구조다 — 다부지(병원 코드가 다른 진료과) 구성 때문으로 보인다.
|
||||
///
|
||||
/// 레거시는 태그마다 이 조인을 <b>따로</b> 돌린다(12종 = 왕복 12회).
|
||||
/// 컬럼만 다르므로 한 번에 다 뽑아 행으로 돌려준다 — 값 선택은 해석기가 한다.
|
||||
/// 컬럼 9개는 전부 각 태그 본문의 SELECT 에서 확인한 것이다.
|
||||
/// </summary>
|
||||
public string HospitalName(string? depCod, string? day)
|
||||
public IReadOnlyDictionary<string, string> HospitalRow(string? depCod, string? day)
|
||||
{
|
||||
var code = (depCod ?? string.Empty).Trim();
|
||||
var date = (day ?? string.Empty).Trim();
|
||||
if (code.Length == 0 || date.Length < 8)
|
||||
{
|
||||
return string.Empty;
|
||||
return new Dictionary<string, string>(StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
using var connection = new OracleConnection(connectionString);
|
||||
connection.Open();
|
||||
var row = Row(connection,
|
||||
"SELECT HspInsNam FROM (SELECT HspInsNam FROM M_DepMst"
|
||||
return Row(connection,
|
||||
"SELECT * FROM (SELECT HspInsNam, HspOwnNam, HspTelNum, HspFaxNum,"
|
||||
+ " HspKorAdr, HspEngNam, HspEngAdr, HspRgnNum, HspInsNum FROM M_DepMst"
|
||||
+ " INNER JOIN M_HspMst ON DepHspCod = HspCod AND :y BETWEEN HspStrDte AND HspEndDte"
|
||||
+ " WHERE TRIM(DepCod) = :d AND :y BETWEEN DepStrDte AND DepEndDte) WHERE ROWNUM = 1",
|
||||
("d", code), ("y", date[..8]));
|
||||
return PatientContext.Value(row, "HspInsNam");
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
||||
Reference in New Issue
Block a user