Healthcare pack
10 templates, one canonical shape each.
FHIR-aware templates for clinical data — patient demographics, lab results, drug formularies, claims.
GET /v1/templates
{
"packs": [
{
"id": "healthcare",
"name": "Healthcare",
"template_count": 10
}
],
"templates": [
{ "id": "employee_roster_v1", "risk": "low", "field_count": 7, "pack": "healthcare" },
{ "id": "patient_demographics_v1", "risk": "medium", "field_count": 7, "pack": "healthcare" },
{ "id": "lab_result_catalog_v1", "risk": "low", "field_count": 5, "pack": "healthcare" },
…
]
}The templates
Every template in this pack, printed as it ships.
Canonical column names, field counts, validator ids and risk level — read straight from the shipped template definition. Paste the header row from your own export and the deterministic layers will show you, column by column, which of these 10 it lands on.
Nothing is uploaded. The match runs in this tab against the shipped template vocabulary, using the same normaliser and fuzzy scorer the Worker runs on layers 2 and 3.
Employee roster
lowNames, AHV/GLN, contract type, address.
regexglnfirst_name · last_name · ahv_number · gln · iban · +2
employee_roster_v1ViewPatient demographics
mediumPatient identity. Emits FHIR Patient.
date_rangeregexfirst_name · last_name · date_of_birth · gender · ahv_number · +2
patient_demographics_v1ViewLab result catalog
lowLOINC-coded test definitions and reference ranges.
loinc_codeloinc_code · name · unit · ref_low · ref_high
lab_result_catalog_v1ViewDrug formulary
mediumATC/GTIN-coded drug catalog. Emits FHIR Medication.
atc_codegtinatc_code · gtin · pharmacode · name · dosage_form · +1
drug_formulary_v1ViewClaims line items
mediumCPT/ICD-10-coded claim line items.
cpt_codeicd10_codecpt_code · icd10_code · amount · service_date
claims_line_items_v1ViewAppointment log
lowPast appointments. Emits FHIR Appointment.
patient_id · start_at · duration_min · status
appointment_log_v1ViewInsurance contracts
lowPayer / contract metadata.
payer · contract_type · valid_from · valid_until
insurance_contracts_v1ViewSupplier inventory
lowSupplier catalogue with GTIN/IBAN/GLN.
gtinglnsku · name · gtin · gln · iban
supplier_inventory_v1ViewProvider directory
lowProviders with NPI/GLN/license metadata.
npiglnfirst_name · last_name · npi · gln · license_state · +1
provider_directory_v1ViewLab results
mediumPatient-linked lab results. Emits FHIR Observation.
loinc_codepatient_id · loinc_code · value · unit · taken_at
lab_results_v1View- 10 templates
- 13 validators in this pack
- 125 header hints across 5 languages
- 53 canonical fields
- 8 FHIR resource mappings
Side by side
The whole pack as counted facts.
Same information the cards carry, in one scannable block — for the moment you are choosing between two templates that both look plausible. Every number is derived from the shipped definition at build time.
| Template | Fields | Required | Validated | Hints | Risk | FHIR |
|---|---|---|---|---|---|---|
Employee rosteremployee_roster_v1 | 7 | 2 | 3 | 27 | low | — |
Patient demographicspatient_demographics_v1 | 7 | 3 | 4 | 35 | medium | Patient |
Lab result cataloglab_result_catalog_v1 | 5 | 2 | 1 | 14 | low | Observation |
Drug formularydrug_formulary_v1 | 6 | 2 | 3 | 16 | medium | Medication |
Claims line itemsclaims_line_items_v1 | 4 | 2 | 2 | 12 | medium | Claim.item |
Appointment logappointment_log_v1 | 4 | 2 | 0 | 9 | low | Appointment |
Insurance contractsinsurance_contracts_v1 | 4 | 1 | 0 | 6 | low | Coverage |
Supplier inventorysupplier_inventory_v1 | 5 | 2 | 3 | 8 | low | — |
Provider directoryprovider_directory_v1 | 6 | 2 | 2 | 9 | low | Practitioner |
Lab resultslab_results_v1 | 5 | 4 | 1 | 13 | medium | Observation |
53 canonical columns and 125 distinct header hints across the pack. "Validated" counts columns carrying at least one field-level validator; "hints" counts the distinct multilingual header names the deterministic layers resolve for free.
Validators
The checks that fire before you commit.
13 validators run on this pack. They are pure functions — the same code runs in the Worker, in the browser widget and in the MCP validate_row tool, so a dry run and a commit cannot disagree.
| Validator | What it checks | Templates in this pack |
|---|---|---|
atc_code | ATC code format, with ontology resolution from free text. | drug_formulary_v1 |
cpt_code | CPT procedure code format. | claims_line_items_v1 |
date_range | Parses the date (ISO / US / EU / epoch) and bounds it. | patient_demographics_v1 |
email | RFC-style address shape. | patient_demographics_v1 |
gln | 13-digit GS1 location number with a GTIN-style checksum. | employee_roster_v1 · supplier_inventory_v1 · provider_directory_v1 |
gtin | 8, 12, 13 or 14 digits with the GS1 trailing checksum. | drug_formulary_v1 · supplier_inventory_v1 |
iban | mod-97 checksum on the reordered value, with per-country length from the SWIFT IBAN Registry. | employee_roster_v1 · supplier_inventory_v1 |
icd10_code | ICD-10 code format, with ontology resolution from free text. | claims_line_items_v1 |
loinc_code | LOINC code format, with ontology resolution from free text. | lab_result_catalog_v1 · lab_results_v1 |
npi | 10 digits with the Luhn check on the "80840"-prefixed string. | provider_directory_v1 |
pharmacode | Swiss 4–7 digit local drug identifier. | drug_formulary_v1 |
phone | libphonenumber-js in strict mode, with an optional country allowlist. | patient_demographics_v1 |
regex | Pattern match against the template-supplied expression. | employee_roster_v1 · patient_demographics_v1 |
Empty values bypass a validator — required-ness is checked separately. LOINC / ICD-10 / ATC additionally try to resolve a free-text value to a canonical code before failing.
Review gating
4 of 10 come back flagged for review.
A template's risk level is the only input to the flag. Medium and high templates make PATCH /uploads/:id/mappings return requires_hitl so your own workflow can hold the commit — it is a flag, not a queue. Native AgentGate HITL integration is on the roadmap for Q3 2026 and is not wired in v1.
Commits straight through. No review flag on the mappings response.
employee_roster_v1 · lab_result_catalog_v1 · appointment_log_v1 · insurance_contracts_v1 · supplier_inventory_v1 · provider_directory_v1
Flagged `requires_hitl: true` with `hitl_status: "pending_review"` so you can gate your own commit workflow.
patient_demographics_v1 · drug_formulary_v1 · claims_line_items_v1 · lab_results_v1
Flagged `requires_hitl: true` with `hitl_status: "pending_review"`. Regulated identifiers — card data, IBANs, payroll, KYC.
Try it
One call maps a file onto any of them.
Name the template and POST the file. The cascade resolves what it can on the deterministic layers — statistics, heuristic, fuzzy — and only the leftovers reach the metered LLM.
curl -X POST https://api.adaptivmapr.com/v1/uploads \
-H "Authorization: Bearer $ADAPTIVMAPR_API_KEY" \
-F "template=employee_roster_v1" \
-F "file=@your_export.csv"Schema-only mode sends column headers plus at most three sample rows, each clamped to 80 characters — a data-minimization mode enforced at the HTTP edge. Full-data mode routes the metered layer-5 call in-region under a BAA and costs 20% more, and stays locked until the workspace accepts the BAA/NDA in Settings → Security & Data.
Read the quickstart- employee_roster_v1Employee roster7 fields
- patient_demographics_v1Patient demographics7 fields
- lab_result_catalog_v1Lab result catalog5 fields
- drug_formulary_v1Drug formulary6 fields
- claims_line_items_v1Claims line items4 fields
- appointment_log_v1Appointment log4 fields
- insurance_contracts_v1Insurance contracts4 fields
- supplier_inventory_v1Supplier inventory5 fields
- provider_directory_v1Provider directory6 fields
- lab_results_v1Lab results5 fields
Ready when you are
Put the healthcare pack to work — without shipping raw records.
Schema-only mode leaves only headers and up to three clamped sample rows. Full-data adds row-level AI, routed in-region under a BAA.