---
title: "Ra Code"
method: POST
path: "/api/v1/ra/code"
tags: ["ra"]
---

# Ra Code

`POST /api/v1/ra/code`

## Request

- Base URL: `https://api.accurecord.io` (the document declares no server; this is the origin it was published from)
- URL: `https://api.accurecord.io/api/v1/ra/code`
- Auth: none declared

Run one encounter A1→D8 and return the ICD-10-CM codes. Flag-gated, opt-in.

## Headers

- `x-api-key` string, nullable

## Request body

- RaCodeRequest: One encounter to code end-to-end through the RA pipeline. Supply ``text`` (a note/chart already in text) OR ``document_base64`` (a raw chart file, run through OCR first). Member/encounter metadata is required — the pipeline binds identity (A2) and derives the release + perspective (A4) from it; it never invents them. Four optional evidence bundles each switch on a stage that is otherwise unreachable over HTTP, and each one absent leaves the pipeline exactly as it behaved before it existed: * ``document_evidence`` — A1 integrity + A3 typing (the document front door) * ``modality_evidence`` — A4.13, how the encounter was actually conducted * ``gate_evidence`` — A5/A6/A7 encounter eligibility * ``score_layer_evidence`` — D3→D8, the raw score → the payment RAF
  - `text` string, nullable: Chart / note text
  - `document_base64` string, nullable: Base64 of a raw chart file (PDF/image) — OCR'd to text first
  - `document_content_type` string: MIME of document_base64 (for the OCR layer)
  - `tenant_id` string, required
  - `project_id` string, required
  - `encounter_id` string
  - `member_ref` string, required: Authoritative unique member reference (A2 identity)
  - `setting` string: office | inpatient | hospital_outpatient | observation | emergency_department
  - `service_date` string, date, nullable
  - `discharge_date` string, date, nullable
  - `collection_date` string, date, nullable
  - `program_ids` string[]
  - `compute_raf` boolean
  - `demographics` object, nullable: RAF inputs (dob/sex/orec/enrollment_segment …); enrollment_segment must be a V28 model-segment code when a payment RAF is wanted.
  - `document_evidence` DocumentEvidenceInput: A1 (document integrity) + A3 (document typing) inputs. Supplying this runs the document front-door BEFORE anything else: A1.1 security triage fails CLOSED — any non-accepted disposition is a terminal block — and A3's stamp for ``program_namespace`` becomes the A7 source role, so the role is DOCUMENTED rather than asserted at the gate. Omit it and the pipeline behaves as it always has: no document gate, and A7 uses the gate evidence's own ``source_role``.
    - `content_signature_mime` string, nullable, required: The content-SNIFFED MIME. A filename extension is never authoritative here; acceptance requires a verified signature, and null is not a pass.
    - `supported_mime_types` string[], required
    - `malware_scan_clean` boolean, nullable, required: null = the scan did not run. It fails closed, never open.
    - `password_protected` boolean, required
    - `corrupt` boolean, required
    - `limits` IngestLimitsInput, required: A1.1 resource limits for the upload. Note what is absent: there is no "process only the first N pages" knob — a page cap REJECTS the upload loudly, because silently truncating a chart is precisely the silent-loss shape A1 exists to prevent.
      - `max_bytes` integer, required
      - `max_pages` integer, required
      - `max_pixels` integer, required
      - `max_archive_expansion_ratio` number, required
      - `max_archive_depth` integer, required
    - `observed` ObservedUploadInput, required: The observed facts about the upload that A1.1 checks against the limits. A filename or an extension is deliberately not among them — neither is a parameter any decision in A1 is allowed to read.
      - `byte_size` integer, required
      - `page_count` integer, required
      - `pixel_count` integer, required
      - `archive_expansion_ratio` number, required
      - `archive_depth` integer, required
    - `active_content_disabled` boolean, required
    - `external_references_disabled` boolean, required
    - `spreadsheet_formulas_neutralized` boolean, required
    - `provider_authorized_for_tenant` boolean, required
    - `artifact_classification` ArtifactClassificationInput: A3's per-artifact exit record — typed upstream (DI + closed-set adjudication) and handed in here. The pipeline reads ONLY the stamp for the named program namespace; it never invents a document type, and eligibility never transfers between artifacts (a stamp minted for another artifact_ref is refused at construction).
      - `artifact_ref` string, required
      - `facts` DocumentFactsInput, required: A3 §1 — the eight independent factual dimensions the artifact was typed on. There is deliberately no program/HCC input here: facts never bend to a program.
        - `document_family` 'encounter_assessment' | 'procedure_treatment' | 'diagnostic_report' | 'clinical_support' | 'administrative_clinical_longitudinal' | 'nonclinical', required: The SIX families. Procedure/treatment is deliberately NOT a kind of encounter note, and family alone NEVER determines eligibility.
        - `document_subtype` 'emergency_department_note' | 'history_and_physical' | 'discharge_summary' | 'office_progress_note' | 'consult_note' | 'telehealth_encounter_note' | 'provider_awv_note' | 'home_physician_visit_note' | 'snf_provider_encounter_note' | 'behavioral_health_note' | 'dialysis_physician_rounding_note' | 'physician_encounter_during_hospice' | 'supervising_provider_infusion_assessment' | 'provider_completed_hra_assessment' | 'operative_report' | 'procedure_note' | 'chemotherapy_infusion_administration' | 'dialysis_treatment_record' | 'radiation_treatment_record' | 'anesthesia_intraoperative_record' | 'pre_anesthesia_assessment' | 'wound_care_procedure' | 'device_placement_or_interrogation' | 'pathology' | 'radiology' | 'clinical_laboratory' | 'cardiology_diagnostic_interpretation' | 'pulmonary_testing' | 'sleep_study' | 'neurodiagnostic' | 'genetic_molecular' | 'device_generated_report' | 'nursing_note' | 'medication_administration_record' | 'therapy_note_pt_ot_st' | 'dialysis_run_sheet' | 'infusion_flowsheet' | 'ems_record' | 'immunization_record' | 'dme_record' | 'telephonic_care_management' | 'snf_nursing_or_mds_record' | 'home_health_agency_note_or_oasis' | 'hospice_facility_documentation' | 'problem_list' | 'medication_list' | 'allergy_list' | 'referral_or_order' | 'superbill' | 'care_plan' | 'questionnaire' | 'patient_completed_hra' | 'correspondence' | 'chart_review_record' | 'fax_cover_sheet' | 'blank_page' | 'explanation_of_benefits' | 'billing_document' | 'consent_form', required: Named subtypes from §1/§3/§7. Each belongs to exactly one family.
        - `clinical_role` 'assessment' | 'test_interpretation' | 'procedure' | 'treatment_administration' | 'patient_report' | 'not_documented', required
        - `author_role` 'diagnosing_provider' | 'nurse' | 'therapist' | 'patient' | 'facility_staff' | 'facility_system' | 'unknown', required
        - `origin` 'original_documentation' | 'imported' | 'copied_forward' | 'claim_prepopulated' | 'patient_generated' | 'unknown', required
        - `lifecycle` 'draft' | 'final' | 'signed' | 'amended' | 'corrected' | 'retracted' | 'unknown', required
        - `structure` 'standalone' | 'parent' | 'child_artifact' | 'unresolved_composite', required
        - `encounter_linkage` 'linked' | 'provisionally_linked' | 'unlinked' | 'unknown', required
        - `evidence_span_refs` string[]
      - `stamps` PolicyStampInput[]
        - `artifact_ref` string, required
        - `document_subtype` 'emergency_department_note' | 'history_and_physical' | 'discharge_summary' | 'office_progress_note' | 'consult_note' | 'telehealth_encounter_note' | 'provider_awv_note' | 'home_physician_visit_note' | 'snf_provider_encounter_note' | 'behavioral_health_note' | 'dialysis_physician_rounding_note' | 'physician_encounter_during_hospice' | 'supervising_provider_infusion_assessment' | 'provider_completed_hra_assessment' | 'operative_report' | 'procedure_note' | 'chemotherapy_infusion_administration' | 'dialysis_treatment_record' | 'radiation_treatment_record' | 'anesthesia_intraoperative_record' | 'pre_anesthesia_assessment' | 'wound_care_procedure' | 'device_placement_or_interrogation' | 'pathology' | 'radiology' | 'clinical_laboratory' | 'cardiology_diagnostic_interpretation' | 'pulmonary_testing' | 'sleep_study' | 'neurodiagnostic' | 'genetic_molecular' | 'device_generated_report' | 'nursing_note' | 'medication_administration_record' | 'therapy_note_pt_ot_st' | 'dialysis_run_sheet' | 'infusion_flowsheet' | 'ems_record' | 'immunization_record' | 'dme_record' | 'telephonic_care_management' | 'snf_nursing_or_mds_record' | 'home_health_agency_note_or_oasis' | 'hospice_facility_documentation' | 'problem_list' | 'medication_list' | 'allergy_list' | 'referral_or_order' | 'superbill' | 'care_plan' | 'questionnaire' | 'patient_completed_hra' | 'correspondence' | 'chart_review_record' | 'fax_cover_sheet' | 'blank_page' | 'explanation_of_benefits' | 'billing_document' | 'consent_form', required: Named subtypes from §1/§3/§7. Each belongs to exactly one family.
        - `clinical_role` 'assessment' | 'test_interpretation' | 'procedure' | 'treatment_administration' | 'patient_report' | 'not_documented', required
        - `author_role` 'diagnosing_provider' | 'nurse' | 'therapist' | 'patient' | 'facility_staff' | 'facility_system' | 'unknown', required
        - `lifecycle` 'draft' | 'final' | 'signed' | 'amended' | 'corrected' | 'retracted' | 'unknown', required
        - `program` 'medicare_advantage_cms_hcc' | 'rx_hcc' | 'esrd' | 'pace' | 'hhs_hcc' | 'client_specific', required: Isolated program namespaces. Note what is ABSENT and unconstructible: a generic ``risk_adjustment`` namespace. Every rule belongs to one named program with its own effective-dated pack — there is no bucket in which a CMS-HCC ruling can be mistaken for an HHS-HCC one.
        - `rule_version` string, required
        - `potential_role` 'potential_primary_source' | 'potential_supporting_evidence' | 'manifest_only' | 'blocked_unclassified', required: A3 stamps a POTENTIAL role. Note what is absent: no ``eligible``, ``qualified``, or ``certified`` member exists — A3 certifies nothing.
        - `client_id` string, nullable: Required for client_specific stamps, forbidden for official programs.
        - `remaining_requirements` RemainingRequirement[]
        - `evidence_permissions` EvidencePermission[]
        - `evidence_span_refs` string[]
        - `detail` string
      - `parent_ref` string, nullable
    - `program_namespace` 'medicare_advantage_cms_hcc' | 'rx_hcc' | 'esrd' | 'pace' | 'hhs_hcc' | 'client_specific': Isolated program namespaces. Note what is ABSENT and unconstructible: a generic ``risk_adjustment`` namespace. Every rule belongs to one named program with its own effective-dated pack — there is no bucket in which a CMS-HCC ruling can be mistaken for an HHS-HCC one.
  - `modality_evidence` ModalityEvidenceInput: A4.13 modality evidence — the observed facts A4 DETERMINES the encounter's modality from, and that A5/A7 then resolve program eligibility against. Absent this bundle A4 sees an empty evidence set, and the project pack's ``presume_in_person_absent_telehealth`` knob turns that silence into ``in_person_face_to_face``. So a caller with a telehealth encounter had no way to say so, and the gate's modality rule was applied to a presumed modality rather than a documented one. Evidence is GATHERED here, never guessed: A4 reads exactly these values and derives nothing on its own. In particular ``narrative_*`` are things the note SAYS, not conclusions drawn from what it omits, and audio-video is never assumed when a telehealth encounter does not state which it was.
    - `pos_codes` string[]: Documented CMS place-of-service codes. 02 = telehealth other than in the patient's home, 10 = telehealth in the home; any other POS is simply not a telehealth signal. Matched EXACTLY — send the canonical two-character code.
    - `cpt_modifiers` string[]: Documented CPT/HCPCS modifiers. 95 = synchronous audio-video, 93 and FQ = audio-only, FR = practitioner present by real-time video. Matched EXACTLY, uppercase and unpadded. 93/FQ together with 95 is a modality CONFLICT, not a tie-break — the encounter goes to the evidence lane.
    - `narrative_telehealth_cue` boolean: The note itself STATES the visit was conducted by telehealth. This is a documented statement, never an inference from a missing physical exam.
    - `narrative_audio_only_cue` boolean: The note STATES the visit was audio-only (telephone). Leave it false when unstated: the encounter is then typed telehealth_modality_unspecified, which no program accepts for submission, rather than silently promoted to audio-video.
    - `face_to_face_attestation` boolean: A documented in-person face-to-face attestation. Sent together with a telehealth signal it is a modality CONFLICT — the two claims are not reconciled.
  - `gate_evidence` EncounterGateEvidenceInput: A5/A6/A7 encounter-gate inputs — where RA validity actually lives. Supplying this runs the real gate (A5 typing → A6 provider binding against the CMS list → A5 modality-eligibility → the A7 stamp) and ROUTES on the stamp: ``unusable`` and ``blocked_remediable`` are terminal blocks and are never coded; ``evidence_only`` is coded but no diagnosis enters the submission lane; only ``eligible_for_submission`` proceeds normally. Omit it and no encounter-level gate runs at all — which is what every request to this endpoint did before this field existed.
    - `care_setting` 'inpatient_acute' | 'observation' | 'emergency_department' | 'hospital_outpatient' | 'office' | 'skilled_nursing_facility' | 'standalone_diagnostic', required: The A5 setting vocabulary (step map: IP / OP / office / ED / obs / SNF). Telehealth is deliberately NOT a member — §A4.7 rules it a MODALITY. An encounter conducted by video is ``OFFICE`` + ``Modality.TELEHEALTH_SYNCHRONOUS_AUDIO_VIDEO``.
    - `source_role` 'potential_primary_source' | 'potential_supporting_evidence' | 'manifest_only' | 'blocked_unclassified', required: A3's per-program potential-role stamp, carried into the A7 gate.
    - `provider_candidates` ProviderCandidateInput[], required
      - `provider_id` string, required
      - `roles` ProviderRole[], required
      - `provider_type` 'physician' | 'nurse_practitioner' | 'physician_assistant' | 'clinical_nurse_specialist' | 'certified_nurse_midwife' | 'psychologist' | 'registered_nurse' | 'therapist' | 'technologist' | 'facility_staff' | 'patient' | 'provider_type_not_documented', required: Provider/author types (§A3 ``author_role``, §D9 credentials). Which of these is ACCEPTABLE is program policy, supplied per call — this module hardcodes no acceptable set.
      - `signature` SignatureAttestationInput, required: A6 signature evidence. An unsigned or undated note is ``blocked_remediable`` — a defect a provider can cure with an authenticated amendment — never a silent pass.
        - `signed` boolean, required
        - `signature_date` string, date, nullable, required
        - `evidence_span` string, required
        - `method` 'handwritten' | 'electronic' | 'attestation' | 'signature_log' | 'stamp': HOW a note was authenticated (§A6.4 owner ruling). Four methods are acceptable; a signature STAMP is rejected UNLESS a documented disability accommodation is present — see :class:`SignatureAttestation`, whose ``status`` maps a bare (unaccommodated) stamp to ``SIGNATURE_STAMP_REJECTED`` so the passing ``SIGNED_AND_DATED`` state is unconstructible from a stamp.
        - `disability_accommodation` boolean: A signature STAMP is rejected unless this is documented.
      - `credential_evidence_span` string
      - `specialty` string, nullable
    - `provider_path` 'structured' | 'chart_chase', required: Which §A6.2 acceptability path binds this encounter's provider check.
    - `accountable_roles` ProviderRole[], required
    - `provider_rule_version` string, required
    - `provider_effective_from` string, date, required
    - `modality_rule` ProgramModalityRuleInput, required: The effective-dated program modality artifact A5/A7 resolve eligibility against. An empty ``acceptable_modalities`` is refused at construction: it is indistinguishable from a missing rule, and a missing rule has to block loudly rather than quietly accept everything.
      - `program` string, required
      - `rule_version` string, required
      - `effective_from` string, date, required
      - `acceptable_modalities` Modality[], required
      - `effective_to` string, date, nullable
    - `program` string, required: A7 is stamped per program — name the one.
    - `admission_order` AdmissionOrderInput: A formal inpatient admission is DERIVED from a documented admission order; it is not a caller-settable boolean anywhere in A5, so a caller cannot assert an admission the chart does not show. A blank evidence span is refused.
      - `order_evidence_span` string, required
      - `order_datetime` string, date-time, nullable
    - `professional_service` boolean
    - `payment_year` integer, nullable
    - `provider_effective_to` string, date, nullable
    - `project_pack_id` string, nullable
    - `project_acceptable_provider_types` ProviderType[], nullable: Project narrowing. A project may narrow, never widen.
    - `project_accountable_roles` ProviderRole[], nullable
    - `project_acceptable_modalities` Modality[], nullable
  - `score_layer_evidence` ScoreLayerEvidenceInput: D3→D8 score-layer inputs. On a ``compute_raf`` run these complete the raw V28 score into the actual payment RAF: D5 normalize → D6 blend → D7 the CY2026 MA coding-pattern reduction. Every value is an OFFICIAL effective-dated CMS artifact the caller supplies — a missing normalization factor is a typed block, never an implicit 1.0 — and the result is labeled an INTERNAL projection, never the CMS-reported official factor. Absent this bundle the pipeline stops at the raw score and ``payment_raf`` stays null, which is what it did for every request before this field existed.
    - `binding` ModelBindingInput, required: The exact D-stage run identity: model / calibration / mapping / software / hierarchy / coefficient / normalization / policy-announcement versions plus the artifact hashes. Mixing incompatible components is refused at construction (an initial mapping on final software, a V28 hierarchy with V24 coefficients, a bare unhashed bundle).
      - `program_id` string, required
      - `payment_year` integer, required
      - `diagnosis_data_year` integer, required
      - `model_pack_id` string, required
      - `organization_type` 'non_pace' | 'pace', required
      - `benefit_type` 'part_c' | 'part_d_mapd' | 'part_d_pdp' | 'commercial_qhp', required
      - `model_family` 'CMS-HCC' | 'ESRD' | 'RxHCC' | 'PACE' | 'HHS-HCC', required: RA model families — never added together; each has its own adapter (Phase D).
      - `model_version` string, required
      - `calibration_version` string, required
      - `run_variant` 'initial' | 'midyear' | 'final', required
      - `diagnosis_source_policy_id` string, required
      - `source_policy_organization_type` 'non_pace' | 'pace', required
      - `mapping_version` string, required
      - `mapping_run_variant` 'initial' | 'midyear' | 'final', required
      - `software_version` string, required
      - `software_run_variant` 'initial' | 'midyear' | 'final', required
      - `hierarchy_model_version` string, required
      - `coefficient_model_version` string, required
      - `normalization_version` string, required
      - `policy_announcement_version` string, required
      - `artifact_hashes` string[], required
    - `normalization_factor` number, required
    - `policy_pack_id` string, required
    - `input_snapshot_hash` string, required
    - `precision` integer
    - `rounding_rule` 'half_up' | 'half_even' | 'truncate'
    - `calculation_mode` 'internal_projection' | 'submission_reconciled_projection' | 'cms_reported_reconciliation': D3's three modes — and the ``calculation_mode`` every numeric carries. ``internal_projection`` is what the engine can compute from its own chart-derived, C8-eligible evidence. Only ``cms_reported_reconciliation`` may ever be labeled the official factor (enforced by :class:`CmsReportedFactor`).
    - `applicability` 'applicable_payment_run' | 'simulation_only': Parallel runs are fine for analytics — only the APPLICABLE output is a payment factor. A ``simulation_only`` value is ``not_used_for_payment`` everywhere it travels, because the tag rides on the envelope and the envelope is inherited.

## Response `200`

Successful Response

- RaCodeResponse: The pipeline's audit surface, not a summary of it. ⚠ API-H3: this model declared 15 fields while ``PipelineResult`` carries 30+, and a pydantic ``response_model`` drops every undeclared key SILENTLY — no error, no warning, nothing in the payload saying anything was removed. So the C7 verification findings, the B2 proposals whose own source comment promises they are "visible, never silent", the HCC dispositions and mapping records, the legitimate-zero proof, the remediation requests and the whole encounter-gate reason all died at the HTTP boundary. Widening it is additive: every field that was here keeps its name, type and meaning. ``tests/test_ra_surface.py`` pins this field set against ``PipelineResult`` so the next audit field an author intends to expose cannot be eaten the same way. Two ``PipelineResult`` fields are deliberately NOT here. ``member_ref`` is a member identifier — PHI the caller already holds, and this endpoint does not echo one back, for the same reason the §164.528 disclosure row logs the encounter id instead. ``ledger`` is the internal F2 disposition object; its readable projection is already here as ``findings`` + ``hcc_dispositions`` + ``completion_statuses``.
  - `status` string, required
  - `detail` string, required
  - `codes` string[], required
  - `principal_code` string, nullable, required
  - `eligible_events` string[], required
  - `condition_routes` string[], required
  - `evidence` CodeEvidenceItem[], required
    - `code` string, required
    - `spans` EvidenceSpan[], required
      - `span_text` string, required
      - `concept` string, required
      - `char_start` integer, required
      - `char_end` integer, required
      - `document_regions` DocumentRegion[], required
        - `page` integer, required
        - `polygon` number[], required
  - `segment` string, nullable, required
  - `raf` object, nullable, required
  - `payment_raf` number, nullable, required
  - `payment_raf_status` string, required
  - `document_disposition` string, nullable, required
  - `encounter_gate` string, nullable, required
  - `ocr_provider` string, nullable, required
  - `stage_trace` string[], required
  - `release_bundle_id` string, nullable, required
  - `modality` string, nullable, required
  - `read_failure` string, nullable, required
  - `findings` string[], required
  - `dropped_ungrounded` string[], required
  - `ungrounded_normalizations` string[], required
  - `completion_statuses` string[], required
  - `remediation_requests` string[], required
  - `integrality_decisions` string[], required
  - `hcc_dispositions` string[], required
  - `mapping_records` string[], required
  - `raf_status` string, required
  - `zero_score_proof` string, nullable, required
  - `payment_raf_label` string, nullable, required
  - `document_source_role` string, nullable, required
  - `encounter_gate_lane` string, nullable, required
  - `encounter_gate_reason` string, nullable, required

## Other responses

- `400`: Malformed or out-of-bounds request — a batch over 50 codes, a file over the upload limit, an unparseable identifier, or a surface that is switched off in this environment (the `cpt_*_disabled` gates are 400, not 403). ⚠ Not interchangeable with 422: 400 is raised BY the handler, 422 by request validation.
- `401`: Missing, malformed, revoked or expired credential. Send the key as `X-API-Key` or `Authorization: Bearer`. `detail` is a string, except the MFA challenge on `/auth/login`, which is `{code: 'mfa_required', message}`.
- `403`: Authenticated but not permitted: the tier does not include the feature, the role is insufficient, or the free tier is paused. Gate-specific bodies use the `{code, message}` shape (`tier_required`, `insufficient_role`). ⚠ The free-tier pause is the ONE error in the service that does not use `detail` at all — its body is `{error: 'free_tier_paused', message}` at the top level. ⚠ Preconditions the caller CAN satisfy (no org, no BAA, PHI mode off) are 412, not 403 — see below.
- `404`: Resource, code, or org-scoped record not found. Note that a record belonging to ANOTHER organization is also a 404, never a 403 — existence is not disclosed across tenants.
- `412`: A precondition on the calling principal is unmet and the caller can fix it: no organization linked to the key (`org_required`), no signed BAA (`baa_required`), PHI mode not activated (`phi_not_activated`), reviewer mode off (`review_mode_disabled`), or the session was never second-factored (`mfa_required`). All use the `{code, message}` shape.
- `422`: Request body or query failed validation. FastAPI's own failures are a LIST of `{loc, msg, type}`; semantic refusals raised by the service are an object (the risk-adjustment endpoints use `{status, ...}`).
- `429`: Rate limit, quota or concurrency cap exceeded. The tier limiter, the per-key chart-review job cap, the anonymous demo cap and the auth/signup limiters all land here; only the tier limiter sets the `X-RateLimit-*` headers.
- `500`: Unhandled server error. The body is `{detail: 'Internal server error', request_id: <id>}` and the same id is on the `X-Request-ID` response header.
- `503`: A dependency this request needed is unavailable — the database, an upstream model provider, or reference data that is present but not READY. Retry is reasonable, except for the risk-adjustment `blocked_pack_not_ready` refusals, which stay 503 until the coefficient pack is actually loaded.

---

[API](https://skmtc.dev/accurecord/apis/icd-10-coding-api.md) · [All operations](https://skmtc.dev/accurecord/apis/icd-10-coding-api/llms.txt) · [OpenAPI document](https://skmtc.dev/accurecord/apis/icd-10-coding-api/revisions/b1e12ce06ba5?raw)
