Fórum Mesclar variáveis em textos estáticos #223674

31/03/2004

0

Boa tarde,

Estou desenvolvendo um sistema controlador de laudos médicos e neste sistema, preciso guardar os laudos que são digitados pelos usuários.
Deverá acontecer da seguinte maneira:

O usuário digitará um laudo médico padrão em um editor de texto interno do sistema informando os campos que serão necessários para a emissão ao paciente, como em uma mala direta do Word, este laudo digitado servirá de modelo para os exames de ultra-sonografia por exemplo.
O sistema esta sendo desenvolvido em delphi 7 e utilizando o gerador de relatórios Report Builder, quero saber se é possível também utilizar o Report Builder para fazer a mesclagem dos dados de um paciente ao texto do laudo, se for possível alguém teria uma rotina de exemplo para que possa implementar no sistema aqui do hospital.

Abaixo segue um exemplo:

[b:77d3570feb]Texto ainda sem mesclagem[/b:77d3570feb]

Nome do Hospital

Tipo de Laudo: Ultra-sonografia - OBSTÉTRICA VARIAVEIS

Paciente: [b:77d3570feb]<<paciente>>[/b:77d3570feb]
CPF: [b:77d3570feb]<<cpf>>[/b:77d3570feb]
Endereço: [b:77d3570feb]<<endereco>>[/b:77d3570feb]

O exame ecográfico mostra bexiga com boa repleção, paredes regulares, contornos
anatômicos e conteúdo anecóico normal.

[b:77d3570feb]Texto após a mesclagem[/b:77d3570feb]

Nome do Hospital

Tipo de Laudo: Ultra-sonografia - OBSTÉTRICA VARIAVEIS

Paciente: [b:77d3570feb]Fulano da Silva[/b:77d3570feb]
CPF: [b:77d3570feb]999.888.777-66[/b:77d3570feb]
Endereço: [b:77d3570feb]Rua dos Exemplos S/N[/b:77d3570feb]

O exame ecográfico mostra bexiga com boa repleção, paredes regulares, contornos
anatômicos e conteúdo anecóico normal.

--------------------------------------

[i:77d3570feb]Observação:[/i:77d3570feb] os textos que serão inseridos no sistema, utilizarão formatações normais, como negrito, alinhamento justificado, cores nas fontes. A ajuda de vocês nos será muito útil.

Desde já agradeço...

[b:77d3570feb][color=red:77d3570feb]Título editado pelo Moderador (AZ) - Removido: ´DESAFIO - BEM INTERESSANTE´[/color:77d3570feb][/b:77d3570feb]


Jsaraujo

Jsaraujo

Responder

Posts

31/03/2004

Sremulador

Ola amigo eu também trabalho com desenvolvimento de softs para Hospitais se puder entar en contato comigo pelo msn terei o maior prazer em ajudar.


Responder

Gostei + 0

31/03/2004

Aroldo Zanela

Colega,

Eu faria utilizando o próprio Word integrado à aplicação. Procure por [b:17502e49da]OleAutomation [/b:17502e49da]no link acima pesquisar que eu já coloquei exemplos de como localizar e substituir variáveis dentro do Word.


Responder

Gostei + 0

31/03/2004

Ffc

Amigo não é interessante usar o [b:4b7a8ef93a]WORD[/b:4b7a8ef93a] porque seu sistema será responsável pelo [b:4b7a8ef93a]WORD[/b:4b7a8ef93a] e dependera dele, não acho uma boa idéia.
vc sabe como é usuário !!!

é uma boa idéia da forma que vc esta fazendo, e sei que tem muitos software que são assim sem depender de [b:4b7a8ef93a]WORD[/b:4b7a8ef93a].

peço que se algum amigo do fórum souber fazer este tipo rotinas que nós passem !!!


Responder

Gostei + 0

31/03/2004

Aroldo Zanela

Colega,

Ainda acho que o Word seria mais apropriado. No entanto, preparei uma dica que poderá servir de caminho:

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, ComCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    RichEdit1: TRichEdit;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TProcuraTroca = Class
   Linha: String;
    ProcurarPor: String;
    TrocarPor: String;
    procedure Clear;
    procedure Execute;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
var LerLaudo: TStringList;
Texto: TStringList;
    Linha: String;
nI, nX: Integer;
    ProcuraTroca: TProcuraTroca;
begin

ProcuraTroca := TProcuraTroca.Create;

LerLaudo := TStringList.Create;
  Texto     := TStringList.Create;

  Texto.Clear;
  LerLaudo.LoadFromFile(´c:\textos\laudo_01.txt´);

  nX := LerLaudo.Count -1;

  For nI := 0 To nX do
  begin

  With ProcutaTroca do
    begin
  Clear;
    Linha:= LerLaudo.Strings[nI];

    ProcurarPor  := ´@hospital_´;
    TrocarPor:= ´Santa Casa de Misericórdia´;
    Execute;

    ProcurarPor  := ´@paciente_´;
    TrocarPor  := ´Teste com sunstituição do paciente´;
    Execute;

    ProcurarPor  := ´@cpf_´;
    TrocarPor  := ´999.999.999/99´;
    Execute;

    ProcurarPor  := ´@endereco_´;
    TrocarPor  := ´Santa Casa de Misericórdia´;
    Execute;

    Texto.Add(Linha);
  end;
  end;

  RichEdit1.Lines.Assign(Texto);
  Texto.Free;
  LerLaudo.Free;
end;

{ TProcuraTroca }

procedure TProcuraTroca.Clear;
begin
Linha:= ´´;
  ProcurarPor := ´´;
  TrocarPor := ´´;
end;

procedure TProcuraTroca.Execute;
var nPos: Integer;
begin
nPos := Pos(ProcurarPor, Linha);
  if nPos>0 then
  begin
  Delete(Linha, nPos, Length(ProcurarPor));
  Insert(TrocarPor, Linha, nPos);
end;
end;

end.


Texto original (Laudo_01.txt):

[list:5fdd2ef6f2]@hospital_

Tipo de Laudo: Ultra-sonografia - OBSTÉTRICA VARIAVEIS

Paciente: @paciente_
CPF: @cpf_
Endereço: @endereco_

O exame ecográfico mostra bexiga com boa repleção, paredes regulares, contornos
anatômicos e conteúdo anecóico normal.[/list:u:5fdd2ef6f2]

Texto ´mesclado´:

[list:5fdd2ef6f2]Santa Casa de Misericórdia

Tipo de Laudo: Ultra-sonografia - OBSTÉTRICA VARIAVEIS

Paciente: Teste com sunstituição do paciente
CPF: 999.999.999/99
Endereço: Santa Casa de Misericórdia

O exame ecográfico mostra bexiga com boa repleção, paredes regulares, contornos
anatômicos e conteúdo anecóico normal.[/list:u:5fdd2ef6f2]

Existem muitas outras alternativas, mas está me parece a mais simples.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar