개발자용

AI 에이전트용 의약품 데이터: ATC 코드로 의약품을 코딩하고 FHIR에 저장하여 모델이 사용할 수 있도록 하는 방법

개발자가 AI 에이전트용 의약품 데이터베이스를 선택하는 방법: ATC 코드가 제공하는 것, 번들 용어집 하위 집합이 다루는 것과 다루지 않는 것(상호작용 없음), MedicationStatement 및 MedicationAdministration이 어떻게 구성되는지, 그리고 에이전트가 Anpheros Platform을 통해 의약품을 읽고 제안하는 방법.

작성자 게시일 2분 소요

An AI 에이전트가 "아침에 놀바덱스 20mg"이라고 읽는다면, 이것이 타목시펜, 즉 항에스트로겐제(ATC L02BA01)이며, 일회성이 아닌 매일 복용하는 경구용 용량이라는 것을 알아야 합니다. 이 지식이 어디에서 오는지, 그리고 다음 시스템이 동일하게 읽을 수 있도록 약물이 어떻게 저장되는지가 "어떤 약물 데이터베이스를 사용해야 하는가"라는 질문의 실제 핵심입니다. 이 가이드는 Anpheros 플랫폼에 대한 질문에 답하고 플랫폼이 제공하는 것과 제공하지 않는 것에 대해 솔직하게 설명합니다.

개발자를 위한 기술 버전: AI 에이전트를 위한 약물 데이터 · FHIR 코드 시스템 (developers.anpheros.com에서 제공, 요청, 응답 및 제한 사항 포함). 이 페이지는 일반 언어 버전입니다.

코드가 먼저: ATC

WHO의 해부학적 치료 화학 분류는 모든 활성 물질에 작용하는 방식과 하는 일에 따라 구성된 코드를 부여합니다: C09AA02는 에날라프릴(C 심혈관, C09 레닌-안지오텐신, C09AA ACE 억제제)입니다. ATC는 무료이며 국제적이고 안정적이므로 Anpheros는 모든 약물에 ATC 코드를 부여합니다. 제품 이름은 code.text에 유지되므로 사람은 여전히 "놀바덱스"를 보고 에이전트는 L02BA01을 봅니다.

ATC가 제공하지 않는 것: 제형, 포장 크기, 국가별 제품 식별자, 가격 또는 상호 작용. 이러한 것들은 국가별이며 종종 라이선스가 필요합니다. 이러한 정보가 필요한 에이전트는 두 번째 소스가 필요합니다.

플랫폼이 제공하는 것

  • 번들 ATC 하위 집합: 유럽 사람들이 실제로 복용하는 약물에 충분한 조회용으로, 표시 이름이 포함되어 있으며 GET /v1/terminology/atc?q=에서 검색 가능하고 코드별로는 GET /v1/terminology/atc/{code}에서 검색 가능합니다. 동일한 하위 집합이 MCP 도구 lookup_code를 지원합니다. 하위 집합 외의 코드는 리소스에 여전히 사용될 수 있습니다. 조회 시 표시 이름이 없을 뿐입니다.
  • 번들 LOINC 하위 집합: 측정 및 실험실 결과용으로, /v1/terminology/loinc 아래의 동일한 엔드포인트를 사용합니다.
  • 올바른 형태의 FHIR 리소스: 치료 계획용 MedicationStatement(사람이 언제부터 얼마나 자주 복용하는지), 복용된 각 용량에 대한 MedicationAdministration(해당 진술에 연결됨), ATC J07 백신 코드가 있는 Immunization, 약물 알레르기에 대한 ATC가 있는 AllergyIntolerance.

플랫폼이 제공하지 않는 것: 완전한 약물 데이터베이스, 상호 작용 확인, 용량 범위 확인 또는 임상 의사 결정 지원. 이러한 것들은 플랫폼을 의료 기기로 만들 수 있으므로 의도적으로 제외되었습니다. 에이전트가 이러한 기능이 필요한 경우, 라이선스가 있는 서비스를 사용하고 플랫폼을 기록으로 유지하십시오.

에이전트가 약물을 읽는 방법

컨텍스트 API는 ATC 코드, 텍스트, 복용량 및 출처(환자, 의료 전문가, 가져오기 등 누가 입력했는지)와 함께 활성 약물을 반환하며, 토큰 예산 내에서 모델이 리소스 더미가 아닌 깔끔한 목록을 볼 수 있도록 합니다. MCP를 통해 동일한 기능은 get_patient_context이며, search_fhir와 MedicationStatement?patient=…&status=active는 원시 리소스를 제공합니다.

curl "$BASE/v1/patients/$PID/medications?status=active" -H "Authorization: Bearer $TOKEN"

에이전트가 약물을 작성하는 방법

작성하는 것이 아니라 제안합니다. 환자의 동의 하에 AI 에이전트로 등록된 애플리케이션에서 보낸 MedicationStatement는 유효성 검사를 거쳐 제안으로 보류됩니다. 환자는 "Assistant X가 타목시펜 20mg 매일 추가를 원합니다"라고 표시되며, 수락하거나 거부하면 수락된 제안만 기록에 포함되고 AI 작성으로 표시됩니다. 에이전트는 확신이 있을 때 ATC 코드를 보내야 하며, code.text에는 항상 제품 이름이 포함되어야 합니다. 코드가 없는 사람이 읽을 수 있는 텍스트도 허용되며 나중에 코딩될 수 있습니다.

보내기 전에 validate_fhir_resource(또는 POST /fhir/R4/MedicationStatement/$validate)는 리소스가 올바르게 구성되었는지 에이전트에게 알려주므로 환자는 잘못 구성된 항목을 승인하도록 요청받지 않습니다.

두 번째 소스 선택 (필요한 경우)

에이전트가 "이것이 저것과 상호 작용하는가"에 답해야 한다면, 국가별(상호 작용 데이터 및 제품 식별자는 다름) 및 라이선스별(대부분 상업적)로 소스를 선택하십시오. 결과를 환자의 기록에 리소스로가 아니라 자체 주석으로 유지하십시오. 임상의가 확인한 경우에만 해당됩니다. 기록은 복용된 것을 전달해야 하며, 조언 계층은 귀하의 것입니다.

자주 묻는 질문

Anpheros에 완전한 약물 데이터베이스가 있습니까?

아니요. 코딩 및 조회를 위한 번들 ATC 하위 집합이 있으며, ATC 코드가 있는 FHIR 리소스로 약물을 저장합니다. 상호 작용, 용량 확인 및 국가별 제품 카탈로그는 포함되지 않습니다.

RxNorm 또는 국가 목록 대신 ATC를 사용하는 이유는 무엇입니까?

ATC는 국제적이고 무료이며, 이는 국경을 넘어 사람을 따라가는 기록에 중요합니다. RxNorm은 미국 중심이며, 국가 목록은 국경에서 멈춥니다. 애플리케이션은 동일한 리소스에 ATC 코드 옆에 두 번째 코딩(예: 국가별 제품 코드)을 추가할 수 있습니다.

에이전트가 환자의 기록에 약물을 추가할 수 있습니까?

환자가 승인하는 제안으로만 가능합니다. AI 에이전트가 보내는 어떤 것도 해당 승인 없이는 적용되지 않습니다.

에이전트는 누가 약물을 입력했는지 어떻게 알 수 있습니까?

컨텍스트 API의 각 항목은 author_type과 출처를 포함하며, 각 리소스에는 Provenance가 있습니다. 의료 전문가가 입력한 약물과 환자가 입력한 약물은 모델에 다르게 보이며, 이것이 핵심입니다.

이것을 무료로 시도할 방법이 있습니까?

예: 샌드박스는 무료이며 30명의 합성 환자는 현실적인 ATC 코드가 있는 약물을 가지고 있습니다. 무료 FHIR 서버: 샌드박스를 참조하십시오.

이 가이드는 정보 제공 목적으로 의료 조언을 대체하지 않습니다. 건강 관련 결정은 의사와 상담하십시오. 응급 상황 시 112로 전화하십시오.
저자 소개
Adrian Kereky

Founder of Anpheros. An electronics engineer, he spent six years in autonomous driving, on automotive projects run in partnership with Samsung and NVIDIA, designing the architecture of driver-assistance and AI systems that run on NVIDIA chips with CUDA. He then built Anpheros: the patient-controlled medical record and the HL7 FHIR R4 platform it runs on.

Anpheros 및 저자에 대해 더 알아보기 →

건강 기록을 항상 소지하세요

Anpheros Daily는 증상, 검사 결과, 복용 중인 약 및 문서를 표준 형식으로 한곳에 모아 관리합니다. 기본 플랜은 무료입니다.

Anpheros Daily 시작하기