3 · Solicitação do exame¶
Sistema: iSUS APS (Atenção Primária) · Recurso: ServiceRequest (categoria laboratorio)
O médico solicita um hemograma completo (LOINC 58410-2) para investigar a
síndrome febril. O pedido nasce active e, por causa da categoria
laboratorio, cai direto na worklist do Lab+ (passo 4) — sem nenhuma chamada
entre os dois sistemas.
Gravação — POST /ServiceRequest¶
curl -X POST 'http://localhost:8080/fhir/ServiceRequest' \
-H 'Content-Type: application/fhir+json' \
-d @pedido-exame.json
pedido-exame.json
{
"resourceType": "ServiceRequest",
"status": "active",
"intent": "order",
"category": [
{
"coding": [
{
"system": "https://demo-cbis.example/fhir/category",
"code": "laboratorio",
"display": "Exame laboratorial"
}
]
}
],
"code": {
"coding": [
{"system": "http://loinc.org", "code": "58410-2", "display": "Hemograma completo"}
],
"text": "Hemograma completo"
},
"subject": {"reference": "Patient/42"},
"encounter": {"reference": "Encounter/7"},
"authoredOn": "2026-09-10T09:35:00-03:00",
"requester": {"display": "UBS Vila Esperança — iSUS APS"},
"reasonCode": [
{"text": "Investigação de síndrome febril aguda — suspeita de dengue"}
],
"meta": {
"tag": [
{
"system": "https://demo-cbis.example/fhir/source-system",
"code": "isus-aps",
"display": "iSUS APS"
}
]
}
}
Resposta: 201 Created — por exemplo ServiceRequest/10.
Leitura — acompanhamento pelo solicitante¶
O iSUS APS acompanha o pedido com duas buscas e casa o laudo ao pedido pelo
basedOn do DiagnosticReport:
# Pedidos de exame do paciente
curl 'http://localhost:8080/fhir/ServiceRequest?subject=Patient/42&category=https://demo-cbis.example/fhir/category|laboratorio'
# Laudos do paciente (o campo basedOn aponta o ServiceRequest de origem)
curl 'http://localhost:8080/fhir/DiagnosticReport?subject=Patient/42'
Enquanto o laudo não existe, a UI mostra "Aguardando resultado"; quando o
Lab+ publica (passo 5), o mesmo par de buscas passa a devolver o
DiagnosticReport com basedOn = ServiceRequest/10 e o pedido aparece como
"Concluído".