Recursos FHIR
Enviás recursos FHIR R4 a POST /fhir, sueltos o dentro de un Bundle de tipo
transaction. Recursos soportados: Patient, Encounter (episodio), Procedure
(práctica) y DocumentReference (documentación).
Identidad: tu número externo
Cada entidad se identifica por tu número externo (no por DNI ni por datos de PAMI), en
identifier.value con su system. Los system se acuerdan en el onboarding; estos son los
valores por defecto:
| Entidad | system |
|---|---|
| Paciente | https://cliente.example.org/ids/patient |
| Episodio | https://cliente.example.org/ids/encounter |
| Práctica | https://cliente.example.org/ids/procedure |
| Documento | https://cliente.example.org/ids/document |
| DNI | https://www.argentina.gob.ar/dni |
Las referencias entre recursos se hacen por identificador lógico (no por reference: "Patient/123"):
"subject": {
"type": "Patient",
"identifier": { "system": "https://cliente.example.org/ids/patient", "value": "PAC-00" }
}
Una referencia resuelve si el destino viaja en el mismo Bundle o ya lo enviaste antes.
ABM (alta / baja / modificación)
- Alta / modificación: enviás el recurso (mismo
identifier= modificación del mismo). - Baja:
Patientconactive: false; el resto de los recursos constatus: "entered-in-error".
Paciente
{
"resourceType": "Patient",
"identifier": [
{ "system": "https://cliente.example.org/ids/patient", "value": "PAC-00" },
{ "system": "https://www.argentina.gob.ar/dni", "value": "20345678" }
],
"active": true,
"name": [{ "family": "Pérez", "given": ["Juan"] }],
"birthDate": "1990-01-15"
}
Episodio (Encounter)
Requiere la cobertura (credencial + plan) en una extensión. class.code: IMP (internación)
o AMB (ambulatorio). La extensión authorization (nº de OP) es opcional. status:
in-progress (abierto), finished/cancelled (cierre), entered-in-error (baja).
{
"resourceType": "Encounter",
"identifier": [{ "system": "https://cliente.example.org/ids/encounter", "value": "ENC-001" }],
"status": "in-progress",
"class": { "code": "IMP" },
"subject": {
"type": "Patient",
"identifier": { "system": "https://cliente.example.org/ids/patient", "value": "PAC-00" }
},
"period": { "start": "2026-06-01T09:30:00-03:00" },
"extension": [
{
"url": "https://cliente.example.org/fhir/StructureDefinition/coverage",
"extension": [
{ "url": "credential", "valueString": "150123456789-00" },
{ "url": "plan", "valueString": "PAMI_PI" }
]
},
{
"url": "https://cliente.example.org/fhir/StructureDefinition/authorization",
"extension": [{ "url": "number", "valueString": "AUTH-001" }]
}
]
}
El plan (plan) debe ser un código de plan válido acordado en el onboarding.
Práctica (Procedure)
Una práctica realizada dentro de un episodio: encounter es obligatorio y debe referenciar
un episodio existente. El código de la práctica va en code, como código de nomenclador
(coding.code) y/o descripción (code.text). La extensión authorization es opcional.
{
"resourceType": "Procedure",
"identifier": [{ "system": "https://cliente.example.org/ids/procedure", "value": "PROC-001" }],
"status": "completed",
"subject": {
"type": "Patient",
"identifier": { "system": "https://cliente.example.org/ids/patient", "value": "PAC-00" }
},
"encounter": {
"type": "Encounter",
"identifier": { "system": "https://cliente.example.org/ids/encounter", "value": "ENC-001" }
},
"code": { "coding": [{ "code": "427109", "system": "https://pami.gob.ar/nomenclador" }] },
"performedDateTime": "2026-06-02T10:00:00-03:00"
}
Documentación (DocumentReference)
Un documento clínico adjunto a un paciente, un episodio o una práctica (subject.type =
Patient / Encounter / Procedure). El archivo viaja inline en base64 en
content[0].attachment.data.
{
"resourceType": "DocumentReference",
"identifier": [{ "system": "https://cliente.example.org/ids/document", "value": "DOC-001" }],
"status": "current",
"type": { "text": "Epicrisis" },
"subject": {
"type": "Encounter",
"identifier": { "system": "https://cliente.example.org/ids/encounter", "value": "ENC-001" }
},
"content": [
{
"attachment": {
"contentType": "application/pdf",
"title": "epicrisis.pdf",
"data": "<archivo en base64>"
}
}
]
}