{
  "openapi": "3.0.1",
  "info": {
    "title": "Medware Controle MeusExames",
    "description": "API administrativa para criacao, atualizacao, status e relatorios dos sites MeusExames. Use o header ApiKey em todas as chamadas protegidas.",
    "termsOfService": "https://www.medware.com.br/termo-de-uso/",
    "contact": {
      "name": "Medware Sistemas Médicos",
      "url": "https://www.medware.com.br"
    },
    "version": "1.0.6"
  },
  "paths": {
    "/Cliente/CriarSite": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Cria um novo site MeusExames para o cliente informado.",
        "parameters": [
          {
            "name": "Codigo",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "Nome",
            "in": "query",
            "description": "Nome do cliente usado para criar a pasta e identificar o site.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "DNS",
            "in": "query",
            "description": "Dominio principal do site MeusExames.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "Logo": {
                    "type": "string",
                    "description": "Arquivo da logo. A API converte para /images/logo.png.",
                    "format": "binary"
                  },
                  "Fundo": {
                    "type": "string",
                    "description": "Arquivo de fundo. A API converte para /images/fundo.jpg.",
                    "format": "binary"
                  },
                  "Icone": {
                    "type": "string",
                    "description": "Arquivo do icone. Pode ser ICO ou imagem comum; a API converte para /images/icone.ico.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "Logo": {
                  "style": "form"
                },
                "Fundo": {
                  "style": "form"
                },
                "Icone": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtualizarDados": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Atualiza DNS e imagens do site. Logo, fundo e icone podem ser enviados em PNG, JPG, BMP ou ICO; a API converte para o padrao usado pelo site.",
        "parameters": [
          {
            "name": "Codigo",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "DNS",
            "in": "query",
            "description": "Dominio principal do site LinkLaudo.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "properties": {
                  "Logo": {
                    "type": "string",
                    "description": "Arquivo da logo. A API converte para /images/logo.png.",
                    "format": "binary"
                  },
                  "Fundo": {
                    "type": "string",
                    "description": "Arquivo de fundo. A API converte para /images/fundo.jpg.",
                    "format": "binary"
                  },
                  "Icone": {
                    "type": "string",
                    "description": "Arquivo do icone. Pode ser ICO ou imagem comum; a API converte para /images/icone.ico.",
                    "format": "binary"
                  }
                }
              },
              "encoding": {
                "Logo": {
                  "style": "form"
                },
                "Fundo": {
                  "style": "form"
                },
                "Icone": {
                  "style": "form"
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtualizarSite": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Atualiza o Site e API's",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "DNS",
            "in": "query",
            "description": "Dominio principal do site LinkLaudo.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa usada em rotinas criticas de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/RedefinirSenhasPadrao": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Redefine senhas de medicos e pacientes para o padrao usado pelo site MeusExames.",
        "parameters": [
          {
            "name": "dns",
            "in": "query",
            "description": "DNS do site usado para localizar o banco Webview.fdb.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa usada em rotinas criticas de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "todosMedicos",
            "in": "query",
            "description": "Atualiza todos os medicos quando verdadeiro.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "todosPacientes",
            "in": "query",
            "description": "Atualiza todos os pacientes quando verdadeiro.",
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "idMedico",
            "in": "query",
            "description": "ID_MEDICO especifico. Use 0 quando nao for atualizar um medico especifico.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "idPaciente",
            "in": "query",
            "description": "ID_PACIENTE especifico. Use 0 quando nao for atualizar um paciente especifico.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/ReiniciarSite": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Reiniciar Site Cliente",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "DNS",
            "in": "query",
            "description": "Dominio principal do site LinkLaudo.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/Excluir": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Método de Exclusão do Site",
        "parameters": [
          {
            "name": "codigo",
            "in": "query",
            "description": "Codigo do cliente/site LinkLaudo.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtualizarBanco": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Atualiza a estrutura do banco de dados",
        "parameters": [
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa usada em rotinas criticas de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtualizarQuantidadeFotosVideos": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Atualiza a quantidade de Fotos e Vídeos no banco do cliente de acordo com o armazenamento",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial do periodo a processar.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final do periodo a processar.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa usada em rotinas criticas de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "somenteTamanhoNulo",
            "in": "query",
            "description": "Quando verdadeiro, atualiza apenas registros sem tamanho calculado.",
            "required": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          },
          {
            "name": "somenteVideosControlados",
            "in": "query",
            "description": "Quando verdadeiro, processa apenas videos controlados/pagos.",
            "required": true,
            "schema": {
              "type": "boolean",
              "default": false
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/DadosSite": {
      "get": {
        "tags": [
          "Cliente"
        ],
        "summary": "Retorna os dados do Site",
        "parameters": [
          {
            "name": "pasta",
            "in": "query",
            "description": "Pasta fisica do site MeusExames.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/ValidarStatus": {
      "get": {
        "tags": [
          "Cliente"
        ],
        "summary": "Valida o status operacional de um site especifico.",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "pasta",
            "in": "query",
            "description": "Pasta fisica do site MeusExames.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/ValidarStatusAll": {
      "get": {
        "tags": [
          "Cliente"
        ],
        "summary": "Valida o status operacional de todos os sites cadastrados no controle.",
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/PadronizarNomesIIS": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Padroniza os nomes dos sites e application pools existentes no IIS.",
        "parameters": [
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa usada em rotinas criticas de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente. Informe 0 para processar todos os sites MeusExames encontrados.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "simular",
            "in": "query",
            "description": "Quando true, apenas mostra o que seria alterado sem gravar no IIS.",
            "schema": {
              "type": "boolean",
              "default": true
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtualizarCertificado": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Atualiza o Certificado do Site",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dns",
            "in": "query",
            "description": "Dominio do site publicado no IIS.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/AtivarDesativarSite": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Ativa ou Desativa o Site Informado",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dns",
            "in": "query",
            "description": "Dominio do site publicado no IIS.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Cliente/RestaurarBackup": {
      "post": {
        "tags": [
          "Cliente"
        ],
        "summary": "Restaura o backup de um cliente",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente Medware.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Relatorios/AtualizarDados": {
      "post": {
        "tags": [
          "Relatorios"
        ],
        "summary": "Forca a consolidacao dos dados de relatorio para um periodo.",
        "parameters": [
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente. Use 0 para consolidar todos os clientes.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "senhaControle",
            "in": "query",
            "description": "Senha administrativa de controle.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Relatorios/Relatorio": {
      "post": {
        "tags": [
          "Relatorios"
        ],
        "summary": "Retorna o relatorio consolidado por cliente com exames, fotos, videos, videos cobrados e armazenamento.",
        "parameters": [
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente. Use 0 para retornar todos.",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Relatorios/RelatorioDetalhado": {
      "post": {
        "tags": [
          "Relatorios"
        ],
        "summary": "Retorna o detalhamento dos exames enviados no periodo para um cliente.",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Relatorios/RelatorioDiario": {
      "get": {
        "tags": [
          "Relatorios"
        ],
        "summary": "Retorna totais diarios de exames, fotos, videos, videos cobrados e visualizacoes do paciente.",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pasta",
            "in": "query",
            "description": "Pasta fisica especifica do site. Quando vazia, processa todas as pastas do cliente.",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/Relatorios/RelatorioVideosPagos": {
      "get": {
        "tags": [
          "Relatorios"
        ],
        "summary": "Retorna o detalhe dos exames com videos pagos/controlados no periodo.",
        "parameters": [
          {
            "name": "codCliente",
            "in": "query",
            "description": "Codigo do cliente.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "dataInicio",
            "in": "query",
            "description": "Data inicial no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "dataFim",
            "in": "query",
            "description": "Data final no formato aceito pela cultura pt-BR.",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "pasta",
            "in": "query",
            "description": "Pasta fisica especifica do site. Quando vazia, processa todas as pastas do cliente.",
            "schema": {
              "type": "string",
              "default": ""
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "ApiKey": {
        "type": "apiKey",
        "description": "Informe a senha de acesso da API",
        "name": "ApiKey",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "ApiKey": [ ]
    }
  ]
}