【问题标题】:How to delphi send and receive command c-echo, c-get dicom communication pacs or modalitydelphi如何发送和接收命令c-echo、c-get dicom通信pacs或modality
【发布时间】:2011-03-09 11:49:19
【问题描述】:

如何从任何 pacs 服务器 Delphi 获取消息并在 memo1 中显示此消息 ASCII 格式

是否可以使用这个 indy 组件。

这是来自http://sourceforge.net/projects/indy10clieservr/的示例代码

从任何模态仿真器或任何 PACS 服务器发送 C-ECHO 命令。连接正常,但在 memo1 中看不到传入消息。但是Chamelon HL7组件在Delphi上显示到消息

procedure TServerMainForm.IdTCPServerConnect(AContext: TIdContext);
begin
     memo1.Lines.Add('Connection from ..PeerIP/IP' + AContext.Binding.PeerIP  + '  // '  +    AContext.Binding.IP  + '  @ ' + dateToStr(now) + '->' +  TimeToStr(now)  );
     AContext.Connection.IOHandler.WriteLn('C-ECHO-RSP');
end;

procedure TServerMainForm.IdTCPServerExecute(AContext: TIdContext);
var    CommBlock, NewCommBlock   :    TINDYCMD;
       buf                       :    TIdBytes;
       line                      :    String;
       i                         :    integer;

begin

   memo1.Lines.Add('server execute start' );


   with  AContext.Connection  do
         begin
            IOHandler.Readln(line);
         end;
   try 
    ////////////// This line = 0 and cant see anything memo1. ////////////
    if length(line) > 0  then
        begin
        memo1.Lines.Add(line );
        i:= strToInt(Line);
        end
        else
        i:=-1;
   except

  end;


   case i of
    0:  begin
          TCPServerExecuteExchangeStrings(AContext);
        end;
    1 : begin

         TCPServerExecuteExchangeRecords(AContext);

        end;
    2:  begin
        end;
    else
       //
    end;

   LEDShape.brush.Color := clgreen;
   memo1.Lines.Add('server execute done' );

end;

【问题讨论】:

  • 由于拼写和语法错误,很难理解您需要什么。您可以尝试使用Google Translate 从您的母语中获取一些英文文本。您可能还想在消息中包含一些源代码:提示运行时错误(EConversion 错误),也许我们可以从代码中找出一些东西。

标签: delphi tcp message dicom


【解决方案1】:

我不太明白这个问题......但我很快就发现了一个问题:

任何 Internet 服务器都需要验证输入。不这样做会带来安全风险。

在这种情况下,您希望收到一个有效的整数。如果您没有得到有效的整数,则会引发异常。这可能是理想的行为,但我对此表示怀疑。

特别是这一行:i:= strToInt(Line);

相反,您可以尝试..

if TryStrToInt(line,i) then
  // Handle valid integer sent
else
  // Handle Invalid integer sent

【讨论】:

    猜你喜欢
    • 2014-09-26
    • 2012-02-21
    • 2018-09-11
    • 1970-01-01
    • 2011-01-10
    • 1970-01-01
    • 2020-02-21
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多