naftiko: 1.0.0-alpha2 info: label: CharmHealth FHIR API description: HL7 FHIR R4 (4.0.1) REST API exposed by CharmHealth EHR conforming to the US Core 3.1.1 Implementation Guide. Supports SMART on FHIR authorization for patient-facing apps, provider-facing apps, and backend services. Resource paths follow FHIR conventions and accept standard FHIR search parameters. tags: - Charmhealth - API created: '2026-05-06' modified: '2026-05-06' capability: consumes: - type: http namespace: charmhealth baseUri: https://ehr2.charmtracker.com/api/ehr/v2/fhir description: CharmHealth FHIR API HTTP API. authentication: type: bearer token: '{{CHARMHEALTH_TOKEN}}' resources: - name: metadata path: /metadata operations: - name: getcapabilitystatement method: GET description: Get FHIR CapabilityStatement outputRawFormat: json outputParameters: - name: result type: object value: $. - name: patient-id path: /Patient/{id} operations: - name: readpatient method: GET description: Read Patient outputRawFormat: json outputParameters: - name: result type: object value: $. - name: patient path: /Patient operations: - name: searchpatient method: GET description: Search Patient inputParameters: - name: identifier in: query type: string - name: name in: query type: string - name: birthdate in: query type: string - name: gender in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: allergyintolerance path: /AllergyIntolerance operations: - name: searchallergyintolerance method: GET description: Search AllergyIntolerance inputParameters: - name: patient in: query type: string - name: clinical-status in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: condition path: /Condition operations: - name: searchcondition method: GET description: Search Condition inputParameters: - name: patient in: query type: string - name: category in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: encounter path: /Encounter operations: - name: searchencounter method: GET description: Search Encounter inputParameters: - name: patient in: query type: string - name: date in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: observation path: /Observation operations: - name: searchobservation method: GET description: Search Observation inputParameters: - name: patient in: query type: string - name: category in: query type: string - name: code in: query type: string - name: date in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: medicationrequest path: /MedicationRequest operations: - name: searchmedicationrequest method: GET description: Search MedicationRequest inputParameters: - name: patient in: query type: string - name: status in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: immunization path: /Immunization operations: - name: searchimmunization method: GET description: Search Immunization inputParameters: - name: patient in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: careplan path: /CarePlan operations: - name: searchcareplan method: GET description: Search CarePlan inputParameters: - name: patient in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: careteam path: /CareTeam operations: - name: searchcareteam method: GET description: Search CareTeam inputParameters: - name: patient in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: documentreference path: /DocumentReference operations: - name: searchdocumentreference method: GET description: Search DocumentReference inputParameters: - name: patient in: query type: string - name: type in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: practitioner path: /Practitioner operations: - name: searchpractitioner method: GET description: Search Practitioner inputParameters: - name: identifier in: query type: string - name: name in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. - name: organization path: /Organization operations: - name: searchorganization method: GET description: Search Organization outputRawFormat: json outputParameters: - name: result type: object value: $. - name: appointment path: /Appointment operations: - name: searchappointment method: GET description: Search Appointment inputParameters: - name: patient in: query type: string - name: date in: query type: string outputRawFormat: json outputParameters: - name: result type: object value: $. exposes: - type: rest port: 8080 namespace: charmhealth-rest description: REST adapter for CharmHealth FHIR API. resources: - path: /metadata name: getcapabilitystatement operations: - method: GET name: getcapabilitystatement description: Get FHIR CapabilityStatement call: charmhealth.getcapabilitystatement outputParameters: - type: object mapping: $. - path: /Patient/{id} name: readpatient operations: - method: GET name: readpatient description: Read Patient call: charmhealth.readpatient outputParameters: - type: object mapping: $. - path: /Patient name: searchpatient operations: - method: GET name: searchpatient description: Search Patient call: charmhealth.searchpatient outputParameters: - type: object mapping: $. - path: /AllergyIntolerance name: searchallergyintolerance operations: - method: GET name: searchallergyintolerance description: Search AllergyIntolerance call: charmhealth.searchallergyintolerance outputParameters: - type: object mapping: $. - path: /Condition name: searchcondition operations: - method: GET name: searchcondition description: Search Condition call: charmhealth.searchcondition outputParameters: - type: object mapping: $. - path: /Encounter name: searchencounter operations: - method: GET name: searchencounter description: Search Encounter call: charmhealth.searchencounter outputParameters: - type: object mapping: $. - path: /Observation name: searchobservation operations: - method: GET name: searchobservation description: Search Observation call: charmhealth.searchobservation outputParameters: - type: object mapping: $. - path: /MedicationRequest name: searchmedicationrequest operations: - method: GET name: searchmedicationrequest description: Search MedicationRequest call: charmhealth.searchmedicationrequest outputParameters: - type: object mapping: $. - path: /Immunization name: searchimmunization operations: - method: GET name: searchimmunization description: Search Immunization call: charmhealth.searchimmunization outputParameters: - type: object mapping: $. - path: /CarePlan name: searchcareplan operations: - method: GET name: searchcareplan description: Search CarePlan call: charmhealth.searchcareplan outputParameters: - type: object mapping: $. - path: /CareTeam name: searchcareteam operations: - method: GET name: searchcareteam description: Search CareTeam call: charmhealth.searchcareteam outputParameters: - type: object mapping: $. - path: /DocumentReference name: searchdocumentreference operations: - method: GET name: searchdocumentreference description: Search DocumentReference call: charmhealth.searchdocumentreference outputParameters: - type: object mapping: $. - path: /Practitioner name: searchpractitioner operations: - method: GET name: searchpractitioner description: Search Practitioner call: charmhealth.searchpractitioner outputParameters: - type: object mapping: $. - path: /Organization name: searchorganization operations: - method: GET name: searchorganization description: Search Organization call: charmhealth.searchorganization outputParameters: - type: object mapping: $. - path: /Appointment name: searchappointment operations: - method: GET name: searchappointment description: Search Appointment call: charmhealth.searchappointment outputParameters: - type: object mapping: $. - type: mcp port: 9090 namespace: charmhealth-mcp transport: http description: MCP adapter for CharmHealth FHIR API for AI agent use. tools: - name: getcapabilitystatement description: Get FHIR CapabilityStatement hints: readOnly: true destructive: false idempotent: true call: charmhealth.getcapabilitystatement outputParameters: - type: object mapping: $. - name: readpatient description: Read Patient hints: readOnly: true destructive: false idempotent: true call: charmhealth.readpatient outputParameters: - type: object mapping: $. - name: searchpatient description: Search Patient hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchpatient with: identifier: tools.identifier name: tools.name birthdate: tools.birthdate gender: tools.gender inputParameters: - name: identifier type: string description: identifier - name: name type: string description: name - name: birthdate type: string description: birthdate - name: gender type: string description: gender outputParameters: - type: object mapping: $. - name: searchallergyintolerance description: Search AllergyIntolerance hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchallergyintolerance with: patient: tools.patient clinical-status: tools.clinical-status inputParameters: - name: patient type: string description: patient - name: clinical-status type: string description: clinical-status outputParameters: - type: object mapping: $. - name: searchcondition description: Search Condition hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchcondition with: patient: tools.patient category: tools.category inputParameters: - name: patient type: string description: patient - name: category type: string description: category outputParameters: - type: object mapping: $. - name: searchencounter description: Search Encounter hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchencounter with: patient: tools.patient date: tools.date inputParameters: - name: patient type: string description: patient - name: date type: string description: date outputParameters: - type: object mapping: $. - name: searchobservation description: Search Observation hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchobservation with: patient: tools.patient category: tools.category code: tools.code date: tools.date inputParameters: - name: patient type: string description: patient - name: category type: string description: category - name: code type: string description: code - name: date type: string description: date outputParameters: - type: object mapping: $. - name: searchmedicationrequest description: Search MedicationRequest hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchmedicationrequest with: patient: tools.patient status: tools.status inputParameters: - name: patient type: string description: patient - name: status type: string description: status outputParameters: - type: object mapping: $. - name: searchimmunization description: Search Immunization hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchimmunization with: patient: tools.patient inputParameters: - name: patient type: string description: patient outputParameters: - type: object mapping: $. - name: searchcareplan description: Search CarePlan hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchcareplan with: patient: tools.patient inputParameters: - name: patient type: string description: patient outputParameters: - type: object mapping: $. - name: searchcareteam description: Search CareTeam hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchcareteam with: patient: tools.patient inputParameters: - name: patient type: string description: patient outputParameters: - type: object mapping: $. - name: searchdocumentreference description: Search DocumentReference hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchdocumentreference with: patient: tools.patient type: tools.type inputParameters: - name: patient type: string description: patient - name: type type: string description: type outputParameters: - type: object mapping: $. - name: searchpractitioner description: Search Practitioner hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchpractitioner with: identifier: tools.identifier name: tools.name inputParameters: - name: identifier type: string description: identifier - name: name type: string description: name outputParameters: - type: object mapping: $. - name: searchorganization description: Search Organization hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchorganization outputParameters: - type: object mapping: $. - name: searchappointment description: Search Appointment hints: readOnly: true destructive: false idempotent: true call: charmhealth.searchappointment with: patient: tools.patient date: tools.date inputParameters: - name: patient type: string description: patient - name: date type: string description: date outputParameters: - type: object mapping: $. binds: - namespace: env keys: CHARMHEALTH_TOKEN: CHARMHEALTH_TOKEN