Pular para conteúdo

7 · Regulação do leito (SiGO)

Sistemas: iSUS APS (solicita) e SiGO (regula) · Recursos: ServiceRequest (categoria regulacao) + Task

Com o laudo crítico, o médico da APS solicita internação hospitalar. O pedido é outro ServiceRequest, agora de categoria regulacao e prioridade urgent — por isso entra na fila do SiGO, não na do laboratório. O regulador autoriza disponibilizando uma vaga, registrada como Task.

Gravação — POST /ServiceRequest (pelo iSUS APS)

curl -X POST 'http://localhost:8080/fhir/ServiceRequest' \
  -H 'Content-Type: application/fhir+json' \
  -d @pedido-internacao.json
pedido-internacao.json
{
  "resourceType": "ServiceRequest",
  "status": "active",
  "intent": "order",
  "priority": "urgent",
  "category": [
    {
      "coding": [
        {
          "system": "https://demo-cbis.example/fhir/category",
          "code": "regulacao",
          "display": "Regulação assistencial"
        }
      ]
    }
  ],
  "code": {"text": "Internação hospitalar"},
  "subject": {"reference": "Patient/42"},
  "encounter": {"reference": "Encounter/7"},
  "authoredOn": "2026-09-10T10:40:00-03:00",
  "requester": {"display": "UBS Vila Esperança — iSUS APS"},
  "reasonCode": [
    {"text": "Dengue grave — plaquetopenia acentuada e sinais de alarme. Necessita leito de internação com urgência."}
  ],
  "meta": {
    "tag": [
      {
        "system": "https://demo-cbis.example/fhir/source-system",
        "code": "isus-aps",
        "display": "iSUS APS"
      }
    ]
  }
}

Resposta: 201 Created — por exemplo ServiceRequest/15.

Leitura — fila de regulação (pelo SiGO)

Mesma mecânica da worklist do laboratório, trocando só a categoria:

curl 'http://localhost:8080/fhir/ServiceRequest?category=https://demo-cbis.example/fhir/category|regulacao&status=active&_include=ServiceRequest:subject'

Gravação — POST /Task (pelo SiGO)

A autorização não altera o ServiceRequest (que permanece active até a admissão). O SiGO grava uma Task concluída apontando o pedido (focus) e o paciente (for), com hospital e leito no output:

curl -X POST 'http://localhost:8080/fhir/Task' \
  -H 'Content-Type: application/fhir+json' \
  -d @vaga.json
vaga.json
{
  "resourceType": "Task",
  "status": "completed",
  "intent": "order",
  "priority": "urgent",
  "code": {"text": "Regulação de leito hospitalar"},
  "description": "Regulação de solicitação de internação — dengue grave",
  "focus": {"reference": "ServiceRequest/15"},
  "for": {"reference": "Patient/42"},
  "authoredOn": "2026-09-10T10:55:00-03:00",
  "lastModified": "2026-09-10T10:55:00-03:00",
  "requester": {"display": "Central de Regulação — SiGO"},
  "owner": {"display": "Hospital Estadual Demo"},
  "businessStatus": {"text": "Vaga disponibilizada"},
  "output": [
    {"type": {"text": "hospital"}, "valueString": "Hospital Estadual Demo"},
    {"type": {"text": "leito"}, "valueString": "Leito 12 — Enfermaria B"}
  ],
  "meta": {
    "tag": [
      {
        "system": "https://demo-cbis.example/fhir/source-system",
        "code": "sigo",
        "display": "SiGO"
      }
    ]
  }
}

Leitura — regulações concluídas (pelo SiGO)

curl 'http://localhost:8080/fhir/Task?_tag=https://demo-cbis.example/fhir/source-system|sigo&_include=Task:patient&_sort=-_lastUpdated'