수작업 기반 의료 청구 프로세스의 한계와 비용 문제

의료 산업은 종이 기반의 서류를 처리하는 과정에서 여전히 막대한 비용을 지출하고 있다. 작업자가 PDF나 스캔된 문서의 내용을 복사해 다른 시스템에 옮겨 적는 단순 반복 노동은 오타 발생 가능성을 높이는 핵심 원인이 된다. 디지털화 기술이 발전했음에도 불구하고, 서류 작성 단계의 입력 오류나 디지털 변환 과정에서 발생하는 낮은 신뢰도의 추출 데이터는 결국 사람이 직접 검수하고 수정하는 보정 과정을 거쳐야 한다. 이러한 수작업 의존도는 데이터 처리 속도를 늦출 뿐만 아니라 의료 행정의 운영 효율성을 저해하는 요소로 작용한다.

Bedrock Data Automation과 AgentCore 기반의 자동화 파이프라인

AWS는 수작업 기반의 의료 청구 프로세스를 해결하기 위해 Amazon Bedrock Data Automation과 Amazon Bedrock AgentCore를 결합한 엔드투엔드 파이프라인을 구축했다. 이 시스템은 의료 제공자가 Amazon S3 버킷에 PDF 형식의 CMS-1500 청구서를 업로드하면 AWS Lambda가 이벤트 트리거로 작동해 전체 프로세스를 가동하는 구조다. Amazon Bedrock Data Automation이 지능형 문서 추출을 통해 데이터를 읽어내면, AgentCore에 호스팅된 AI 에이전트가 이를 FHIR(Fast Healthcare Interoperable Resources, 의료 정보 교환 표준) 리소스로 변환해 AWS HealthLake에 저장한다. 이 파이프라인은 자동화된 검증 체크를 통해 정확도를 유지하면서 수동 처리 시간을 단축한다.

Blueprints 기반 데이터 추출과 에이전트의 리소스 변환 로직

Amazon Bedrock Data Automation은 OCR(광학 문자 인식), 머신러닝 모델, 생성형 AI를 결합해 문서 내 텍스트와 표를 정확하게 추출한다. 개발자는 Blueprints(추출할 데이터와 방식을 정의한 설정 파일)를 사용해 사전 정의된 템플릿을 적용하거나 커스텀 설정을 구축함으로써 CMS-1500 청구서의 다양한 포맷 변형에 대응하는 예측 가능한 JSON 결과물을 생성한다. 추출된 결과물에는 각 필드와 테이블의 신뢰도 점수와 바운딩 박스(텍스트 위치 좌표) 데이터가 포함되어 데이터의 정확성을 수치로 증명한다.

AgentCore는 데이터 검증과 변환을 수행하는 Strands 에이전트를 호스팅하며, `create_fhir_claim`과 `search_fhir_resources`라는 두 가지 전용 도구를 사용해 AWS HealthLake와 상호작용한다. 에이전트는 피보험자 리소스를 식별하기 위해 먼저 이전 도구 호출 기록을 확인하고, 일치하는 결과가 없으면 청구서 JSON 내의 다른 검색 파라미터를 활용해 최대 2회까지 추가 검색을 수행한다. 이 과정에서 에이전트는 신뢰도 점수가 높은 속성을 우선적으로 매칭 기준으로 삼으며, 최종적으로 어떤 속성을 통해 리소스를 찾았는지에 대한 근거를 보고한다.

Kiro를 활용한 설계 단계 AI 전략과 결정론적 감독 체계

AWS는 런타임에 동작을 결정하는 MCP(Model Context Protocol, 모델이 실행 시점에 도구 사용 순서를 추론하는 프로토콜) 대신 Kiro(자연어 사양을 코드로 변환하는 에이전틱 IDE)를 도입해 설계 단계에서 결정론적 API 호출 코드를 생성했다. Kiro는 개발자의 자연어 요구사항을 분석해 Lambda 내부의 Bedrock Data Automation API 호출 코드와 에이전트 도구를 직접 생성함으로써, 실행 시점의 광범위한 탐색적 프롬프트 횟수를 줄이고 Bedrock 호출 비용을 낮췄다. 이는 운영 비용 절감과 개발 주기 단축이라는 결과로 이어졌으며, 시스템의 동작을 예측 가능한 범위 내로 제어해 신뢰성을 높였다.

전체 아키텍처는 S3와 Lambda를 조합해 에이전트의 작업을 최종 판정하는 결정론적 감독 체계를 갖췄다. 에이전트가 명시적인 도구 호출을 관찰하고 HealthLake에 FHIR 리소스를 생성한 뒤 결과를 보고하면, Lambda 함수가 최종 중재자가 되어 해당 청구서 처리의 성공 또는 실패 여부를 확정한다. Lambda는 각 문서가 정상적으로 처리되었는지 검증하며, 예외가 발생한 문서는 데드 레터 큐(Dead Letter Queue)로 보내 처리 누락을 방지한다.

데이터 불일치 해결 능력과 인간 중심의 피드백 루프

구축된 파이프라인은 AI가 스스로 데이터 불일치를 판단해 해결하는 능력을 갖췄다. 실제 테스트에서 청구서 ID가 '11-2234-1019O'(알파벳 O)로 기재되고 데이터베이스에는 '11-2234-10190'(숫자 0)으로 저장된 상황에서, 에이전트는 ID 검색 실패를 인지한 후 즉시 이름 검색으로 전환해 매칭에 성공했다. 이를 통해 환자 John Doe의 진단명 Back Pain M54.9, 생년월일 1960-10-10, 총액 660달러(CPT 97810, 73521, 98940, 97124 포함)의 청구 데이터를 정확히 처리했다.

데이터 누락으로 인한 실패 상황에서는 SNS(Simple Notification Service)를 통해 인간 작업자가 이해할 수 있는 자연어 메시지를 발송한다. 필수 참조 리소스가 없는 시나리오를 검증하기 위해 `/input` 폴더에 `sample1_cms-1500-P.pdf`를 업로드한 결과, 시스템은 "정책 번호 G4683A와 AnyHealth Plus Medicare 플랜의 보험 가입 정보를 찾을 수 없으니 보험사에 확인하라"는 구체적인 피드백을 제공했다. 이러한 자동화 환경은 AWS CDK(Cloud Development Kit)를 통해 배포되며, `load_sampledata.py`를 사용해 HealthLakeDatastoreArn 값에 기반한 샘플 데이터를 적재하고 `cdk destroy` 명령어로 리소스를 삭제할 수 있다.

bash
cdk deploy
bash
python load_sampledata.py <data_store_id>
bash
cdk destroy