Weekly Agenda → Medicore

Medicore Sync Playbook

Guia operacional para quem (pessoa ou agente Claude) for recriar no Medicore o que já está na Weekly Agenda (ramadas.pt/agenda/medicore-prep.html) — regras de negócio confirmadas + mecânica de interface aprendida em validação real.

Sistema: Medicore v2026.3 Instâncias: villaramadas.mcepd.nl · believeinyou.mcepd.nl

01Sincronização, não só criação

Nunca partir do princípio que o Medicore está vazio ou que só falta acrescentar. A Weekly Agenda (ramadas.pt/agenda/medicore-prep.html) é a fonte da verdade — o trabalho é comparar o que lá está com o que já existe no Medicore nesse dia, e ajustar o Medicore para bater certo, não só somar em cima.

Padrão

Comparar antes de agir

Segue sempre onde vais buscar os dados (Weekly Agenda) e compara com o que já está gravado no Medicore para esse dia/psicóloga antes de decidir o que fazer:

  • Paciente mudou numa consulta que já existe → editas o appointment existente, trocas o cliente. Não crias um novo ao lado.
  • Dia que estava marcado como férias mas afinal a pessoa vai trabalhar → apagas o "Leave/absent" que já lá estava.
  • Depende sempre da situação real — mas o ponto de partida é sempre o mesmo: ler o que já está no Medicore, comparar com a Weekly Agenda, e só depois decidir se crias, editas ou apagas.

02As duas agendas

Cada psicóloga tem duas contas Medicore separadas — subdomínios diferentes, sem relação automática entre si. Nenhuma automação pode assumir que gravar numa atualiza a outra.

Agenda VR · villaramadas.mcepd.nl

  • Agenda "mestre" — leva tudo o que a psicóloga faz no dia.
  • Sessões VR reais: cliente resolvido por pesquisa de número de paciente.
  • Sessões BiY entram também aqui, mas só como lembrete visual — ver secção 04.

Agenda BiY · believeinyou.mcepd.nl

  • Só recebe as entradas que são mesmo BiY a sério.
  • Cliente sempre resolvido por pesquisa de número de paciente — nunca texto livre nesta agenda.
  • Login e navegação são independentes da agenda VR.

03Correspondência de campos

Tipo, duração, cliente e nota a preencher no Medicore, por categoria de linha na Weekly Agenda.

Origem Appointment type Duration Client Note
60m / 75m / 90m
sessão normal, VR ou BiY
1 on 1 90
sempre, mesmo 60/75
Nº do paciente (pesquisa) Tratamento (AM/AC/Other) + descrição
Intake Intake 60 ou 150
real, nunca sobe para 90
Nº do paciente (pesquisa) Tratamento + descrição
60/75/90m com VR-PT
paciente com número "Blu"
General indirect real
não sobe para 90
vazio — não existe lookup VR-PT Blu: + número + tratamento + descrição
Call
chamada telefónica
≤14min → General indirect
≥15min → 1 on 1
real
Medicore arredonda aos 5min
Nº do paciente (obrigatório) Call + descrição
Bureaucratic General indirect real vazio Descrição tal como escrita
Email
ligado a paciente e clínica, conta como horas burocráticas no daily
General indirect real Nº do paciente (pesquisa) Email + descrição
GI (General Indirect)
ligado a paciente e clínica, conta como horas burocráticas no daily
General indirect real Nº do paciente (pesquisa) GI + descrição
Docs (1on1)
acompanhamento de documentos por paciente
1 on 1 real Nº do paciente (pesquisa) Doc: + código do documento (ex: ED1, FRD) + descrição
Group Session (60/90min)
mistura pacientes VR e BiY — separado em 2 linhas
Group therapy 60 / Group therapy 90 real Todos os pacientes VR/BiY dessa linha, um a um "Add one at a time..." + Grupo + descrição
Ausência — 1 dia
OFF / Sick / Daycare / Other
Leave/absent dia inteiro vazio Tipo de ausência
Ausência — vários dias seguidos General indirect 15 às 08:00 vazio Tipo de ausência (OFF/Holiday/etc.)
MDO MDO real vazio Descrição + pacientes discutidos
Distinção importante

"Client: vazio" nesta tabela significa não preencher nada — não confundir com a regra do lembrete BiY→VR (secção 04), onde o campo Client/Patients recebe texto livre apesar de a linha de origem mostrar "—".

Ausência de vários dias

Não se bloqueia o dia inteiro em cada dia do período — cria-se, por dia, uma entrada leve às 08:00, tipo General indirect, 15min, com o tipo de ausência na Note. O bloqueio de dia inteiro (Leave/absent) fica reservado para ausências de um único dia.

Resolvido

Status do appointment

Fica sempre em niet aangemeld — não mexer nesse campo, mesmo que o sistema de origem tenha outro estado associado à sessão. É sempre este, independentemente do que estiver do outro lado.

04Regra do lembrete BiY → VR

Quando uma linha de origem BiY é escrita na Agenda VR como lembrete, o Client não é pesquisado — é texto livre, e o texto certo já vem pronto na própria linha.

Padrão confirmado

Copiar a Note da linha, verbatim, para dois sítios

A linha da Weekly Agenda já traz a Note no formato certo (começa por BiY + número do paciente). Esse texto exato vai para dois campos no Medicore, sem alterar nada:

  1. Campo Patients (texto livre, não pesquisar) — cola o texto da Note da linha original.
  2. Campo Note do appointment — o mesmo texto, outra vez.

O Type segue a regra normal da tabela em 03 (não muda por ser lembrete). Exemplo real: linha com Note "BiY 010100AC-1 — Call — Teste 4" → ambos os campos recebem esse texto exato.

Erro comum a evitar

Esquecer o prefixo BiY faz o valor aparecer sem contexto no Medicore (ex: só "322" em vez de "BiY 011090YA-322") — já aconteceu em preenchimento manual. Confirma sempre que o texto colado começa por BiY.

05MDO — reuniões multidisciplinares

Um MDO com várias participantes gera um único appointment — nunca uma entrada por pessoa.

Resolvido

O Medicore já tem os campos certos para isto: Performer = a psicóloga cuja agenda estás a preencher nesse momento; Other employees = todas as outras participantes do mesmo MDO. Cria-se uma única vez, do lado de qualquer uma das participantes.

Padrão · verificar antes de criar

Pode já lá estar

Exemplo: pessoa X e pessoa Y participaram do mesmo MDO. Ao preencher a agenda de X, crias o appointment e colocas Y em "Other employees" — isso já faz o MDO aparecer automaticamente na agenda de Y. Quando chegares à agenda de Y, verifica sempre se esse MDO já lá está (dia/hora/participantes certas) antes de criar outra vez. Se já estiver, não crias de novo.

Resolvido

Appointment type = MDO

Existe mesmo como opção própria no dropdown "Appointment type" (visível junto a Group therapy 60, Group therapy 90, Intake, Intervision/Supervision, Leave/absent, Private meeting, Pré-intake). Usar sempre MDO, tanto na primeira criação como em qualquer criação seguinte — nada de aproximar por Care coordination.

Resolvido

Group Session = Group therapy 60 / Group therapy 90

Os tipos certos, já visíveis no mesmo dropdown do MDO. VR e BiY são sistemas separados — a Weekly Agenda já entrega a lista de pacientes dividida em duas (VR e BiY), uma linha por agenda.

Vários pacientes no mesmo appointment: não há um campo de lista — repete o processo normal de adicionar um único paciente (procurar o número no campo de cliente → Add) uma vez por cada paciente da lista, todos dentro do mesmo appointment.

06Bugs conhecidos do Medicore

Dois comportamentos do próprio Medicore que já causaram dados errados durante a validação — não são erro de quem preenche.

Bug · último paciente fica pré-preenchido

Agenda BiY: novo appointment nunca começa em branco

Ao abrir "Plan Appointment" em qualquer dia (mesmo um dia com 0 marcações), o campo Client/Patients já vem com o último paciente inserido no sistema. Adicionar o paciente certo através do ícone de pesquisa soma-se ao que já lá estava em vez de substituir — o appointment fica gravado com dois clientes.

Correção — check simples, sempre:

  1. Antes de gravar, olhar para o campo Client: já tem alguém?
  2. Se sim, apagar essa entrada por completo.
  3. Se este appointment leva paciente, pesquisar e adicionar o certo agora que o campo está limpo. Se não leva paciente (linha sem cliente), deixar vazio.
Bug · editar depois de gravado não resolve

O campo Client guarda estado próprio, não só o texto visível

Se o check acima for esquecido e um appointment já ficar gravado com dois clientes, editar o texto diretamente — por script ou à mão — não resolve: ao gravar de novo, o Medicore recompõe o valor a partir do estado interno da lista de participantes, ignorando a edição manual do texto.

Correção: apagar o appointment todo e recriar do zero, desta vez fazendo o check da secção acima antes do primeiro "save".

07Padrões de interação fiáveis

Para quem estiver a automatizar isto (agente de browser): estes quatro elementos do Medicore não são controlos HTML nativos, e interação por coordenadas de ecrã falha com frequência.

Criar appointment num dia já coberto por outro evento

Cada evento no calendário ocupa a largura toda da coluna do dia e a altura toda da sua duração — clicar em qualquer ponto dentro desse intervalo reabre esse evento, mesmo em zonas que parecem vazias (ex: dia com um bloco de "Leave/absent" o dia inteiro).

  1. Duplo-clique num dia da mesma semana com 0 marcações (normalmente sábado/domingo) para abrir um "Plan Appointment" em branco.
  2. Dentro do modal, corrigir a Data e a Hora para o valor real pretendido.
  3. O campo Performer já vem correto (herda a psicóloga selecionada no calendário).

Selecionar o "Appointment type" (dropdown customizado)

Não é um <select> nativo — clicar por coordenada na opção falha de forma inconsistente. Fiável: localizar o elemento pelo texto exato da opção e chamar .click() diretamente nele.

Preencher o campo Client/Patients (texto livre)

É um <textarea> com pesquisa em tempo real — escrever à velocidade normal de simulação de teclado entra em conflito com o próprio widget e corrompe o valor. Fiável: definir o .value diretamente e disparar os eventos input e change.

Confirmar diálogos ("save", "yes/no", avisos)

Não são confirm()/alert() nativos do browser — são divs de texto simples. Fiável: procurar o elemento visível cujo texto seja exatamente "save", "yes", "ok", etc., e clicar nele diretamente.

"outside the roster" → esperado quando o dia já tem ausência/bloco a cobrir "no patient selected" → esperado em linhas de lembrete sem cliente real

08Verificação pós-gravação

Cada dia da semana mostra a contagem de marcações ao lado do nome (ex: "wednesday 9 (6)"). É o sinal mais barato de que uma gravação correu bem — e foi o que apanhou o bug do cliente duplicado.

09Em aberto

Por validar

Email, GI e Docs (1on1)

Estas três categorias foram criadas depois do teste real com a Kelly (09/09/2026) — o resto do mapeamento já foi confirmado no Medicore a sério, mas Email e GI ainda assumem General indirect só por semelhança com o Bureaucratic, sem confirmação real. Docs (1on1) já está confirmado como 1 on 1. Falta validar Email e GI.

10Notas de ambiente

Específico de quem correr isto com um agente de browser tipo Claude — não é comportamento do Medicore.