> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fhiron.cl/llms.txt
> Use this file to discover all available pages before exploring further.

# Prescripción de paracetamol (TFC + ATC)

> MedicationRequest con status=order, intent=order y medicationCodeableConcept con doble coding TFC + ATC.

## Escenario

Una receta de paracetamol 500 mg que sale de un sistema de atención primaria hacia una farmacia ambulatoria necesita dos códigos: **TFC** (Terminología Farmacéutica Chilena, ISP) para que la farmacia pueda dispensar, y **ATC** (Anatomical Therapeutic Chemical, WHO) para que el bus MINSAL pueda agregarla en estadísticas. Inspect valida que `MedicationRequest` lleve `status`, `intent`, `subject` y `medication[x]`: las cuatro reglas `cl-medreq-*`.

## Payload válido

```json MedicationRequest con TFC + ATC theme={null}
{
  "resourceType": "MedicationRequest",
  "status": "active",
  "intent": "order",
  "medicationCodeableConcept": {
    "coding": [
      {
        "system": "https://terminologia.minsal.cl/CodeSystem/TFC",
        "code": "F0001520",
        "display": "Paracetamol 500 mg comprimido"
      },
      {
        "system": "http://www.whocc.no/atc",
        "code": "N02BE01",
        "display": "Paracetamol"
      }
    ],
    "text": "Paracetamol 500 mg comprimido"
  },
  "subject": { "reference": "Patient/example" },
  "authoredOn": "2026-05-12",
  "requester": { "reference": "Practitioner/example" },
  "dosageInstruction": [
    {
      "text": "1 comprimido cada 8 horas por 3 días",
      "timing": {
        "repeat": { "frequency": 3, "period": 1, "periodUnit": "d" }
      },
      "route": {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "26643006",
            "display": "Vía oral"
          }
        ]
      }
    }
  ],
  "dispenseRequest": {
    "quantity": { "value": 9, "unit": "comprimido" },
    "numberOfRepeatsAllowed": 0
  }
}
```

## Cómo validarlo

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://fhiron.cl/api/validate \
    -H "Content-Type: application/json" \
    -H "X-API-Key: $FHIRON_API_KEY" \
    -d @medication-request.json
  ```

  ```javascript Node.js theme={null}
  const response = await fetch("https://fhiron.cl/api/validate", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      "X-API-Key": process.env.FHIRON_API_KEY,
    },
    body: JSON.stringify(medicationRequest),
  });
  const outcome = await response.json();
  ```

  ```python Python theme={null}
  import os, requests
  response = requests.post(
      "https://fhiron.cl/api/validate",
      headers={
          "Content-Type": "application/json",
          "X-API-Key": os.environ["FHIRON_API_KEY"],
      },
      json=medication_request,
  )
  outcome = response.json()
  ```
</CodeGroup>

## OperationOutcome esperado

Si la receta lleva los cuatro campos obligatorios y al menos un `coding` con system canónico, `issue[]` viene vacío.

Errores típicos cuando falta algo:

* `cl-medreq-01`: falta `status`.
* `cl-medreq-02`: falta `intent` (la regla más frecuente al migrar desde HIS legacy que no distinguen `order` / `plan` / `proposal`).
* `cl-medreq-03`: falta `subject`.
* `cl-medreq-04`: falta `medication[x]` (ni `medicationReference` ni `medicationCodeableConcept`).

## Tips

<Tip>
  **Doble coding TFC + ATC**: la farmacia dispensa con TFC, el bus MINSAL agrega con ATC. Incluir ambos en `medicationCodeableConcept.coding[]` evita un round-trip de mapeo en el consumidor.
</Tip>

<Tip>
  `intent=order` es para recetas firmadas. Para sugerencias generadas por un asistente clínico usar `intent=proposal`; para protocolos precargados, `intent=plan`. La regla `cl-medreq-02` no es opinionada sobre cuál usar, solo exige que esté presente.
</Tip>

<Tip>
  La cantidad dispensable (`dispenseRequest.quantity.value`) se calcula desde el tratamiento: 1 comp × 3 veces/día × 3 días = 9 comprimidos. La farmacia no debería tener que recalcular esto.
</Tip>

<Tip>
  **Vía de administración**: SNOMED CT (`26643006` = vía oral) es más portable que un código local. Para inyectables, `47625008` (vía intravenosa), `78421000` (vía intramuscular).
</Tip>

<Note>
  Inspect valida este `MedicationRequest` contra el perfil R4 base y las reglas locales `cl-medreq-01..04`. Si falta `intent`, devuelve `cl-medreq-02` con `quickFix` (`replacement: "order"`).
</Note>
