src/fhir_synth/skills/builtin/medications/SKILL.md
Generate realistic medication data across the full FHIR R4B medication family — Medication (the drug itself), MedicationRequest (prescriptions), MedicationDispense (pharmacy fills), MedicationAdministration (given doses), MedicationStatement (patient-reported use), and MedicationKnowledge (drug reference). Covers RxNorm codes, dosage, route, timing, polypharmacy, PRN, refills, and drug allergies. Use when user mentions medication, prescription, drug, pharmacy, dispense, dispensing, administration, refill, RxNorm, NDC, insulin, metformin, statin, antibiotic, antihypertensive, opioid, SSRI, inhaler, PRN, or polypharmacy.
npx skillsauth add alvinhenrick/fhir-synth medicationsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate medication data across the full FHIR R4B medication family. Each resource has a distinct role — pick the right one for the clinical scenario.
| Resource | When to use |
|---|---|
| MedicationRequest | Prescription / order. The default for outpatient and discharge meds. US Core profiled. |
| Medication | The drug itself as a referenced resource (when the same drug is referenced by multiple Requests/Dispenses, or when it carries batch/lot/expiration info). For simple cases, use inline medicationCodeableConcept on the Request and skip this resource. |
| MedicationDispense | Pharmacy fill event — what was actually dispensed (drug, quantity, days supply, dispenser). One Request can have many Dispenses (refills). |
| MedicationAdministration | A single given dose — inpatient nurse documents administration, IV infusion, immunization-adjacent. Use for inpatient/ED scenarios. |
| MedicationStatement | Patient-reported / reconciled history ("patient says they take metformin daily"). Use for medication-reconciliation, intake forms, home meds. |
| MedicationKnowledge | Drug reference data (rarely needed for synthetic patient data — only for formulary/catalog scenarios). |
MedicationRequest ──authorizingPrescription──▶ MedicationDispense
│ │
└──── medication[x] ───▶ Medication ◀────────────┘
│
MedicationAdministration ──request──▶ MedicationRequest
MedicationStatement ──basedOn──▶ MedicationRequest (optional)
medicationCodeableConcept (inline RxNorm) vs medicationReference (link to Medication resource) — both are valid on Request/Dispense/Administration/Statement. Prefer inline for simplicity unless you need the shared Medication resource for batch/lot or multiple referencers.http://www.nlm.nih.gov/research/umls/rxnorm) — primary US ingredient/strength code system. Always include for clinical drugs.http://hl7.org/fhir/sid/ndc) — package-level code (used on MedicationDispense.medicationCodeableConcept to reflect what was actually pulled from the shelf).26643006=Oral, 78421000=Intramuscular, 47625008=Intravenous).dosageInstruction.timing.repeat with frequency, period, periodUnit, when (AC, PC, HS, etc.).active, on-hold, cancelled, completed, entered-in-error, stopped, draft.proposal, plan, order, original-order, reflex-order, filler-order, instance-order, option.preparation, in-progress, cancelled, on-hold, completed, entered-in-error, stopped, declined, unknown.value + RxNorm/UCUM unit. Match the days supply × frequency.MedicationRequest. Multiple dispenses (refills) share one Request.effectivePeriod with start/end.active, completed, entered-in-error, intended, stopped, on-hold, unknown, not-taken.dosageInstruction.asNeededBoolean=True or asNeededCodeableConcept with an indication.requester, referencing the prescribing Practitioner resource. Create a Practitioner if one does not already exist in the bundle.AllergyIntolerance: Include medication allergies (Penicillin, Sulfa, NSAIDs) with reaction severity (mild, moderate, severe) and manifestation codes.development
Generate vital signs using FHIR Vital Signs profile and lab panels (CBC, BMP, CMP, lipid, HbA1c, urinalysis, COVID) with LOINC codes, reference ranges, and interpretation. Use when user mentions vitals, labs, observations, blood pressure, heart rate, HbA1c, glucose, CBC, lab results, or test results.
testing
Generate Social Determinants of Health (SDOH) observations and conditions using Gravity Project value sets. Use when user mentions social determinants, food insecurity, housing, transportation, financial strain, social isolation, employment, veteran, or SDOH screening.
development
Generate Provenance resources for audit trails with agents, activities, entities, and security labels. Model realistic EHR data quality variation with missing fields, sparse records, data-absent reasons, duplicate records, and correction workflows. Use when user mentions provenance, audit, data quality, data origin, missing data, sparse records, data completeness, data lineage, correction, amendment, or data governance.
development
Generate Procedure resources with CPT, SNOMED CT, and HCPCS codes, body sites, performers, outcomes, and complication details. Use when user mentions procedures, surgery, operations, biopsy, catheterization, endoscopy, imaging procedures, physical therapy, or CPT codes.