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.
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.
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:
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.
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 |
90sempre, mesmo 60/75 |
Nº do paciente (pesquisa) | Tratamento (AM/AC/Other) + descrição |
| Intake | Intake |
60 ou 150real, 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 |
"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 "—".
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.
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.
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.
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:
Patients (texto livre, não pesquisar) — cola o texto da Note da linha original.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.
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.
Um MDO com várias participantes gera um único appointment — nunca uma entrada por pessoa.
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.
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.
MDOExiste 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.
Group therapy 60 / Group therapy 90Os 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.
Dois comportamentos do próprio Medicore que já causaram dados errados durante a validação — não são erro de quem preenche.
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:
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".
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.
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).
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.
É 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.
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.
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.
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.
Específico de quem correr isto com um agente de browser tipo Claude — não é comportamento do Medicore.