Pular para o conteúdo
Skillpedia
Diversos280 mil · #200

healthcare-cdss-patterns

Desenvolve sistemas de apoio à decisão clínica (CDSS) para saúde. Ajuda a verificar interações medicamentosas, validar doses e calcular pontuações clínicas.

O que ela faz

Ajuda a criar sistemas que auxiliam médicos a tomar decisões. Isso inclui verificar se medicamentos interagem perigosamente, se a dose de um remédio está correta para o paciente e calcular pontuações de risco para a saúde.

Quando usar

  • ✓Ao verificar se dois remédios podem causar problemas juntos.
  • ✓Ao garantir que a quantidade de um remédio prescrito é segura.
  • ✓Ao calcular o risco de um paciente piorar com base em seus sinais vitais.

Exemplo do que pedir para a IA

“Verifique se o remédio X interage com os remédios que o paciente já toma e se ele tem alergia a algo.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/affaan-m/ECC/blob/main/skills/healthcare-cdss-patterns/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/affaan-m/ECC/blob/main/skills/healthcare-cdss-patterns/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

O sistema recebe informações do paciente, como medicamentos atuais e sinais vitais. Ele compara essas informações com regras pré-definidas para identificar riscos ou calcular pontuações. O resultado é um alerta ou uma pontuação que ajuda o médico.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add affaan-m/ECC --skill healthcare-cdss-patterns

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/affaan-m/ECC/main/skills/healthcare-cdss-patterns/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

Padrões de Desenvolvimento de CDSS para Saúde

Padrões para construir Sistemas de Apoio à Decisão Clínica que se integram em fluxos de trabalho de Prontuários Eletrônicos do Paciente (PEP). Módulos de CDSS são críticos para a segurança do paciente — tolerância zero para falsos negativos.

Quando Usar

  • Implementando verificação de interações medicamentosas
  • Construindo motores de validação de dosagem
  • Implementando sistemas de pontuação clínica (NEWS2, qSOFA, APACHE, GCS)
  • Projetando sistemas de alerta para valores clínicos anormais
  • Construindo entrada de prescrição de medicamentos com verificações de segurança
  • Integrando interpretação de resultados de laboratório com contexto clínico

Como Funciona

O motor de CDSS é uma biblioteca de funções puras, sem efeitos colaterais. Entrada: dados clínicos; Saída: alertas. Isso o torna totalmente testável.

Três módulos principais:

  1. checkInteractions(newDrug, currentMeds, allergies) — Verifica um novo medicamento contra medicações atuais e alergias conhecidas. Retorna InteractionAlert[] ordenados por gravidade. Usa o modelo de dados DrugInteractionPair.
  2. validateDose(drug, dose, route, weight, age, renalFunction) — Valida uma dose prescrita contra regras baseadas em peso, ajustadas por idade e ajustadas por função renal. Retorna DoseValidationResult.
  3. calculateNEWS2(vitals) — National Early Warning Score 2 de NEWS2Input. Retorna NEWS2Result com pontuação total, nível de risco e orientação para escalonamento.
EMR UI
  ↓ (user enters data)
CDSS Engine (pure functions, no side effects)
  ├── Drug Interaction Checker
  ├── Dose Validator
  ├── Clinical Scoring (NEWS2, qSOFA, etc.)
  └── Alert Classifier
  ↓ (returns alerts)
EMR UI (displays alerts inline, blocks if critical)

Verificação de Interações Medicamentosas

interface DrugInteractionPair {
  drugA: string;           // generic name
  drugB: string;           // generic name
  severity: 'critical' | 'major' | 'minor';
  mechanism: string;
  clinicalEffect: string;
  recommendation: string;
}

function checkInteractions(
  newDrug: string,
  currentMedications: string[],
  allergyList: string[]
): InteractionAlert[] {
  if (!newDrug) return [];
  const alerts: InteractionAlert[] = [];
  for (const current of currentMedications) {
    const interaction = findInteraction(newDrug, current);
    if (interaction) {
      alerts.push({ severity: interaction.severity, pair: [newDrug, current],
        message: interaction.clinicalEffect, recommendation: interaction.recommendation });
    }
  }
  for (const allergy of allergyList) {
    if (isCrossReactive(newDrug, allergy)) {
      alerts.push({ severity: 'critical', pair: [newDrug, allergy],
        message: `Cross-reactivity with documented allergy: ${allergy}`,
        recommendation: 'Do not prescribe without allergy consultation' });
    }
  }
  return alerts.sort((a, b) => severityOrder(a.severity) - severityOrder(b.severity));
}

Pares de interações devem ser bidirecionais: se o Medicamento A interage com o Medicamento B, então o Medicamento B interage com o Medicamento A.

Validação de Dosagem

interface DoseValidationResult {
  valid: boolean;
  message: string;
  suggestedRange: { min: number; max: number; unit: string } | null;
  factors: string[];
}

function validateDose(
  drug: string,
  dose: number,
  route: 'oral' | 'iv' | 'im' | 'sc' | 'topical',
  patientWeight?: number,
  patientAge?: number,
  renalFunction?: number
): DoseValidationResult {
  const rules = getDoseRules(drug, route);
  if (!rules) return { valid: true, message: 'No validation rules available', suggestedRange: null, factors: [] };
  const factors: string[] = [];

  // SEGURANÇA: se as regras exigem peso, mas o peso está faltando, BLOQUEAR (não aprovar)
  if (rules.weightBased) {
    if (!patientWeight || patientWeight <= 0) {
      return { valid: false, message: `Weight required for ${drug} (mg/kg drug)`,
        suggestedRange: null, factors: ['weight_missing'] };
    }
    factors.push('weight');
    const maxDose = rules.maxPerKg * patientWeight;
    if (dose > maxDose) {
      return { valid: false, message: `Dose exceeds max for ${patientWeight}kg`,
        suggestedRange: { min: rules.minPerKg * patientWeight, max: maxDose, unit: rules.unit }, factors };
    }
  }

  // Ajuste baseado na idade (quando as regras definem faixas etárias e a idade é fornecida)
  if (rules.ageAdjusted && patientAge !== undefined) {
    factors.push('age');
    const ageMax = rules.getAgeAdjustedMax(patientAge);
    if (dose > ageMax) {
      return { valid: false, message: `Exceeds age-adjusted max for ${patientAge}yr`,
        suggestedRange: { min: rules.typicalMin, max: ageMax, unit: rules.unit }, factors };
    }
  }


…
Perguntas frequentes

O que são 'sistemas de apoio à decisão clínica'?

São ferramentas que ajudam os médicos a tomar as melhores decisões para o tratamento dos pacientes, oferecendo informações e alertas baseados em dados.

Por que a 'segurança do paciente' é tão importante aqui?

Porque erros em medicamentos ou avaliações podem ter consequências graves para a saúde do paciente. Por isso, esses sistemas são feitos para serem muito confiáveis.

O que significa 'função pura sem efeitos colaterais'?

Significa que o sistema sempre dará a mesma resposta para as mesmas informações de entrada, sem alterar nada fora dele mesmo. Isso o torna mais fácil de testar e confiável.

Detalhes

Descrição original do autor

Clinical Decision Support System (CDSS) development patterns. Drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), alert severity classification, and integration into EMR workflows. Use when building clinical decision support — drug interaction checks, dose validation, clinical scoring, or alert severity.

repo: affaan-m/ECC

Popularidade

Estrelas no GitHub
280 mil
Posição no ranking
#200
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas