Populating QPD-3 for QPD_Q22?

Discussion of open issues, suggestions and bugs regarding to (known as Delphi HL7) HL7 Components
JerryB123
Posts: 10
Joined: Fri Dec 14, 2012 2:14 pm

Populating QPD-3 for QPD_Q22?

Post by JerryB123 »

Hello again,

How does one go about adding entries to QPD-3 for a patient demographics query to get the following output format?
@PID.5.1.1^SMITH~@PID.8^F


From this document,
"http://www.ihe.net/Technical_Framework/ ... ol2a-2.pdf"
section 3.21.4.1.2.2.1, I got the following description for what the field represents:

Field QPD-3-Demographics Fields consists of one or more repetitions, each of which contains
two components that together contain the name and value of a distinct parameter to the query.

The first component of each parameter contains the name of an HL7 element in the form
@<seg>.<field no>.<component no>.<subcomponent no>

The second subcomponent of each parameter contains the value that is to be matched.

I understand what needs to be placed in this field, but I do not know how to get DelphiHL7 to create this output.

Thank you.
admin
Site Admin
Posts: 256
Joined: Sun Jun 05, 2011 8:06 pm

Re: Populating QPD-3 for QPD_Q22?

Post by admin »

We are working on the issue.
Please wait for our response.
admin
Site Admin
Posts: 256
Joined: Sun Jun 05, 2011 8:06 pm

Re: Populating QPD-3 for QPD_Q22?

Post by admin »

Hi,

For this issue, we can use custom messages :

Code: Select all

unit Unit2;

interface

uses diHL7Base,diHL725,diHL7DT25;

type

TMyQPD_25 = class(TdiSegment)
protected
   function GetMessageQueryName : TdiCE_25;
   procedure SetMessageQueryName(Value : TdiCE_25);
   function GetQueryTag : TdiST_25;
   procedure SetQueryTag(Value : TdiST_25);
   function GetQueryInputParameterList(RepCount :Integer ) : TdiQIP_25;
   procedure SetQueryInputParameterList(RepCount :Integer; Value : TdiQIP_25);
   function GetParametersforFuzzySearch : TdiQIP_25;
   procedure SetParametersforFuzzySearch(Value : TdiQIP_25);
   function GetUserParameters : TdiNode;
   procedure SetUserParameters(Value : TdiNode);
   function GetUserParameters2 : TdiNode;
   procedure SetUserParameters2(Value : TdiNode);
   function GetUserParameters3 : TdiNode;
   procedure SetUserParameters3(Value : TdiNode);
   function GetExtendedCompositeIDwithCheckDigit: TdiCX_25;
   procedure SetExtendedCompositeIDwithCheckDigit(const Value: TdiCX_25);
public
   property MessageQueryName : TdiCE_25 read GetMessageQueryName write SetMessageQueryName;
   property QueryTag : TdiST_25 read GetQueryTag write SetQueryTag;
   property QueryInputParameterList[RepCount :Integer ] : TdiQIP_25 read GetQueryInputParameterList write SetQueryInputParameterList;
   function QueryInputParameterListRepCount : Integer ;
   property ParametersforFuzzySearch : TdiQIP_25 read GetParametersforFuzzySearch write SetParametersforFuzzySearch;
   property UserParameters : TdiNode read GetUserParameters write SetUserParameters;
   property UserParameters2 : TdiNode read GetUserParameters2 write SetUserParameters2;
   property UserParameters3 : TdiNode read GetUserParameters3 write SetUserParameters3;
   property ExtendedCompositeIDwithCheckDigit : TdiCX_25 read GetExtendedCompositeIDwithCheckDigit write SetExtendedCompositeIDwithCheckDigit;
   procedure Init; override;
end;


TMyQBP_Q22_25= class(TdiMessage)
private
protected
   function GetMSH : TdiMSH_25;
   procedure SetMSH(Value : TdiMSH_25);
   function GetSFT(RepCount :Integer ) : TdiSFT_25;
   procedure SetSFT(RepCount :Integer;Value : TdiSFT_25);
   function GetQPD : TMyQPD_25;
   procedure SetQPD(Value : TMyQPD_25);
   function GetRCP : TdiRCP_25;
   procedure SetRCP(Value : TdiRCP_25);
   function GetDSC : TdiDSC_25;
   procedure SetDSC(Value : TdiDSC_25);
public
   property MSH : TdiMSH_25 read GetMSH write SetMSH;
   property SFT[RepCount :Integer ] : TdiSFT_25 read GetSFT write SetSFT;
   function SFTRepCount : Integer ;
   property QPD : TMyQPD_25 read GetQPD write SetQPD;
   property RCP : TdiRCP_25 read GetRCP write SetRCP;
   property DSC : TdiDSC_25 read GetDSC write SetDSC;
   procedure Init; override;
end; 


implementation

procedure TMyQPD_25.Init;
begin
   inherited;
   Name :='QPD';
   Definitions.Add('MessageQueryName',TdiCE_25,1,1);
   Definitions.Add('QueryTag',TdiST_25,0,1);
   Definitions.Add('QueryInputParameterList',TdiQIP_25,0,1);
   Definitions.Add('ParametersforFuzzySearch',TdiQIP_25,0,1);
   Definitions.Add('UserParameters',TdiNode,0,1);
   Definitions.Add('UserParameters2',TdiNode,0,1);
   Definitions.Add('UserParameters3',TdiNode,0,1);
   Definitions.Add('ExtendedCompositeIDwithCheckDigit',TdiCX_25,0,1);
end;

function TMyQPD_25.GetMessageQueryName : TdiCE_25;
begin
   Result:= TdiCE_25(GetStructure('MessageQueryName',0));
end;

procedure TMyQPD_25.SetMessageQueryName(Value : TdiCE_25);
begin
   SetStructure('MessageQueryName',0,Value);
end;

function TMyQPD_25.GetQueryTag : TdiST_25;
begin
   Result:= TdiST_25(GetStructure('QueryTag',0));
end;

procedure TMyQPD_25.SetQueryTag(Value : TdiST_25);
begin
   SetStructure('QueryTag',0,Value);
end;


function TMyQPD_25.GetQueryInputParameterList(RepCount :Integer ) : TdiQIP_25;
begin
  Result:=TdiQIP_25(GetStructure('QueryInputParameterList',RepCount));
end;

procedure TMyQPD_25.SetQueryInputParameterList(RepCount :Integer; Value : TdiQIP_25);
begin
  SetStructure('QueryInputParameterList',RepCount,Value);
end;

function TMyQPD_25.QueryInputParameterListRepCount: Integer;
begin
   Result := GetNodeCount('QueryInputParameterList');
end;

function TMyQPD_25.GetParametersforFuzzySearch : TdiQIP_25;
begin
   Result:= TdiQIP_25(GetStructure('ParametersforFuzzySearch',0));
end;

procedure TMyQPD_25.SetParametersforFuzzySearch(Value : TdiQIP_25);
begin
   SetStructure('ParametersforFuzzySearch',0,Value);
end;

function TMyQPD_25.GetUserParameters : TdiNode;
begin
   Result:= TdiNode(GetStructure('UserParameters',0));
end;

procedure TMyQPD_25.SetUserParameters(Value : TdiNode);
begin
   SetStructure('UserParameters',0,Value);
end;

function TMyQPD_25.GetUserParameters2 : TdiNode;
begin
   Result:= TdiNode(GetStructure('UserParameters2',0));
end;

procedure TMyQPD_25.SetUserParameters2(Value : TdiNode);
begin
   SetStructure('UserParameters2',0,Value);
end;

function TMyQPD_25.GetUserParameters3 : TdiNode;
begin
   Result:= TdiNode(GetStructure('UserParameters3',0));
end;

procedure TMyQPD_25.SetUserParameters3(Value : TdiNode);
begin
   SetStructure('UserParameters3',0,Value);
end;

function TMyQPD_25.GetExtendedCompositeIDwithCheckDigit: TdiCX_25;
begin
   Result:= TdiCX_25(GetStructure('ExtendedCompositeIDwithCheckDigit',0));
end;

procedure TMyQPD_25.SetExtendedCompositeIDwithCheckDigit(
  const Value: TdiCX_25);
begin
   SetStructure('ExtendedCompositeIDwithCheckDigit',0,Value);
end;

function TMyQBP_Q22_25.GetMSH : TdiMSH_25;
begin
   Result:=TdiMSH_25(GetStructure('MSH',0));
end;
procedure TMyQBP_Q22_25.SetMSH(Value : TdiMSH_25);
begin
   SetStructure('MSH',0,Value);
end;
function TMyQBP_Q22_25.GetSFT(RepCount :Integer ) : TdiSFT_25;
begin
   Result:=TdiSFT_25(GetStructure('SFT',RepCount));
end;
procedure TMyQBP_Q22_25.SetSFT(RepCount :Integer;Value : TdiSFT_25);
begin
   SetStructure('SFT',RepCount,Value);
end;
function TMyQBP_Q22_25.SFTRepCount : Integer;
begin
   Result := GetNodeCount('SFT');
end;
function TMyQBP_Q22_25.GetQPD : TMyQPD_25;
begin
   Result:=TMyQPD_25(GetStructure('QPD',0));
end;
procedure TMyQBP_Q22_25.SetQPD(Value : TMyQPD_25);
begin
   SetStructure('QPD',0,Value);
end;
function TMyQBP_Q22_25.GetRCP : TdiRCP_25;
begin
   Result:=TdiRCP_25(GetStructure('RCP',0));
end;
procedure TMyQBP_Q22_25.SetRCP(Value : TdiRCP_25);
begin
   SetStructure('RCP',0,Value);
end;
function TMyQBP_Q22_25.GetDSC : TdiDSC_25;
begin
   Result:=TdiDSC_25(GetStructure('DSC',0));
end;
procedure TMyQBP_Q22_25.SetDSC(Value : TdiDSC_25);
begin
   SetStructure('DSC',0,Value);
end;
procedure TMyQBP_Q22_25.Init;
begin
   inherited;
   Name :='QBP_Q22';
   MessageType :='QBP';
   TriggerEvent :='Q22';
   HL7Version :='2.5';
   Definitions.Add('MSH',TdiMSH_25,1,1);
   Definitions.Add('SFT',TdiSFT_25,0,-1);
   Definitions.Add('QPD',TMyQPD_25,1,1);
   Definitions.Add('RCP',TdiRCP_25,1,1);
   Definitions.Add('DSC',TdiDSC_25,0,1);

   ParseHL7(InitMsg);
end;





initialization
   diRegisterClass(TMyQBP_Q22_25,'QBP_Q22','2.5');
   diRegisterClass(TMyQPD_25,'QPD','2.5');

finalization
   diUnRegisterClass(TMyQBP_Q22_25);
   diUnRegisterClass(TMyQPD_25);


end.

sample usage :

Code: Select all

procedure TForm1.Button1Click(Sender: TObject);
var
  msgstr : AnsiString;
  msg:TMyQBP_Q22_25;
  i:integer;
begin
  msgstr:='MSH|^~\&|OTHER_IBM_BRIDGE_TLS|IBM|PAT_IDENTITY_X_REF_MGR_MISYS|ALLSCRIPTS|20090226131524-0600||QBP^Q22^QBP_Q21|4384605233932006785|P|2.5'+#13+
          'QPD|Q22^FindCandidates^HL7|2846266284165483109045739371027|@PID.3.1^PDQ113XX05~@PID.3.4.1^IHENA~@PID.3.4.2^1.3.6.1.4.1.21367.2009.1.2.300~@PID.3.4.3^ISO'+#13+
          'RCP|I|10^RD'+#13;

  msg:=TMyQBP_Q22_25.Create;
  msg.AsString:=msgstr;
  for i:=0 to msg.QPD.QueryInputParameterListRepCount-1 do
  begin
     Memo1.Lines.Append( msg.QPD.QueryInputParameterList[i].SegmentFieldName.AsString +' - ' + msg.QPD.QueryInputParameterList[i].Values.AsString );
  end;

  msg.Free;
end;
Shows :

Code: Select all

@PID.3.1 - PDQ113XX05
@PID.3.4.1 - IHENA
@PID.3.4.2 - 1.3.6.1.4.1.21367.2009.1.2.300
@PID.3.4.3 - ISO
Best regards.
JerryB123
Posts: 10
Joined: Fri Dec 14, 2012 2:14 pm

Re: Populating QPD-3 for QPD_Q22?

Post by JerryB123 »

Hello again,

Thank you. I was able to create messages using code like the following:

Code: Select all

  gQpd.QueryInputParameterList[0].SegmentFieldName.AsString := '@PID.5.1.1';
  gQpd.QueryInputParameterList[0].Values.AsString := 'Neal';
  gQpd.QueryInputParameterList[1].SegmentFieldName.AsString := '@PID.7.1';
  gQpd.QueryInputParameterList[1].Values.AsString := '19781013';
My new problem is how to get text into the QPD-8 field of this same segment. Basically how to get access to an AsString property that will be QDP-8 or an AsString I can fill with "|" separators to create a QDP-8.

Thank you for all your quick responses.
Jerry
admin
Site Admin
Posts: 256
Joined: Sun Jun 05, 2011 8:06 pm

Re: Populating QPD-3 for QPD_Q22?

Post by admin »

Hi,

QPD segment definitions are the same?
Our QPD-8 is ExtendedCompositeIDwithCheckDigit (CX Type). You can access with using this property.
If your definition is different you may need customization.

'|' is field separator.
When use it with AsString property encoded as '\F\',
When use it with Value property not encoded.
JerryB123
Posts: 10
Joined: Fri Dec 14, 2012 2:14 pm

Re: Populating QPD-3 for QPD_Q22?

Post by JerryB123 »

Hello,

Thank you. I did not realize that ExtendedCompositeIDwithCheckDigit was actually QPD-8.

Is there a way to easily get from a property to its Terser-type representation? Sort of like a reverse terser.

Thank you yet again.
Jerry
admin
Site Admin
Posts: 256
Joined: Sun Jun 05, 2011 8:06 pm

Re: Populating QPD-3 for QPD_Q22?

Post by admin »

Hi,

Terser, works with defined fields, can not do this.

In pdf QPD-8 is defined as follows.
Table 3.21-2: IHE Profile - QPD segment
QPD-8 CX O What Domains Returned

Type is CX. Only element names is different.
Element names changed code is below :

Code: Select all

    unit Unit2;

    interface

    uses diHL7Base,diHL725,diHL7DT25;

    type

    TMyQPD_25 = class(TdiSegment)
    protected
       function GetMessageQueryName : TdiCE_25;
       procedure SetMessageQueryName(Value : TdiCE_25);
       function GetQueryTag : TdiST_25;
       procedure SetQueryTag(Value : TdiST_25);
       function GetQueryInputParameterList(RepCount :Integer ) : TdiQIP_25;
       procedure SetQueryInputParameterList(RepCount :Integer; Value : TdiQIP_25);
       function GetParametersforFuzzySearch : TdiQIP_25;
       procedure SetParametersforFuzzySearch(Value : TdiQIP_25);
       function GetUserParameters : TdiNode;
       procedure SetUserParameters(Value : TdiNode);
       function GetUserParameters2 : TdiNode;
       procedure SetUserParameters2(Value : TdiNode);
       function GetUserParameters3 : TdiNode;
       procedure SetUserParameters3(Value : TdiNode);
       function GetWhatDomainsReturned: TdiCX_25;
       procedure SetWhatDomainsReturned(const Value: TdiCX_25);
    public
       property MessageQueryName : TdiCE_25 read GetMessageQueryName write SetMessageQueryName;
       property QueryTag : TdiST_25 read GetQueryTag write SetQueryTag;
       property QueryInputParameterList[RepCount :Integer ] : TdiQIP_25 read GetQueryInputParameterList write SetQueryInputParameterList;
       function QueryInputParameterListRepCount : Integer ;
       property ParametersforFuzzySearch : TdiQIP_25 read GetParametersforFuzzySearch write SetParametersforFuzzySearch;
       property UserParameters : TdiNode read GetUserParameters write SetUserParameters;
       property UserParameters2 : TdiNode read GetUserParameters2 write SetUserParameters2;
       property UserParameters3 : TdiNode read GetUserParameters3 write SetUserParameters3;
       property WhatDomainsReturned: TdiCX_25 read GetWhatDomainsReturned write SetWhatDomainsReturned;
       procedure Init; override;
    end;


    TMyQBP_Q22_25= class(TdiMessage)
    private
    protected
       function GetMSH : TdiMSH_25;
       procedure SetMSH(Value : TdiMSH_25);
       function GetSFT(RepCount :Integer ) : TdiSFT_25;
       procedure SetSFT(RepCount :Integer;Value : TdiSFT_25);
       function GetQPD : TMyQPD_25;
       procedure SetQPD(Value : TMyQPD_25);
       function GetRCP : TdiRCP_25;
       procedure SetRCP(Value : TdiRCP_25);
       function GetDSC : TdiDSC_25;
       procedure SetDSC(Value : TdiDSC_25);
    public
       property MSH : TdiMSH_25 read GetMSH write SetMSH;
       property SFT[RepCount :Integer ] : TdiSFT_25 read GetSFT write SetSFT;
       function SFTRepCount : Integer ;
       property QPD : TMyQPD_25 read GetQPD write SetQPD;
       property RCP : TdiRCP_25 read GetRCP write SetRCP;
       property DSC : TdiDSC_25 read GetDSC write SetDSC;
       procedure Init; override;
    end;


    implementation

    procedure TMyQPD_25.Init;
    begin
       inherited;
       Name :='QPD';
       Definitions.Add('MessageQueryName',TdiCE_25,1,1);
       Definitions.Add('QueryTag',TdiST_25,0,1);
       Definitions.Add('QueryInputParameterList',TdiQIP_25,0,1);
       Definitions.Add('ParametersforFuzzySearch',TdiQIP_25,0,1);
       Definitions.Add('UserParameters',TdiNode,0,1);
       Definitions.Add('UserParameters2',TdiNode,0,1);
       Definitions.Add('UserParameters3',TdiNode,0,1);
       Definitions.Add('ExtendedCompositeIDwithCheckDigit',TdiCX_25,0,1);
    end;

    function TMyQPD_25.GetMessageQueryName : TdiCE_25;
    begin
       Result:= TdiCE_25(GetStructure('MessageQueryName',0));
    end;

    procedure TMyQPD_25.SetMessageQueryName(Value : TdiCE_25);
    begin
       SetStructure('MessageQueryName',0,Value);
    end;

    function TMyQPD_25.GetQueryTag : TdiST_25;
    begin
       Result:= TdiST_25(GetStructure('QueryTag',0));
    end;

    procedure TMyQPD_25.SetQueryTag(Value : TdiST_25);
    begin
       SetStructure('QueryTag',0,Value);
    end;


    function TMyQPD_25.GetQueryInputParameterList(RepCount :Integer ) : TdiQIP_25;
    begin
      Result:=TdiQIP_25(GetStructure('QueryInputParameterList',RepCount));
    end;

    procedure TMyQPD_25.SetQueryInputParameterList(RepCount :Integer; Value : TdiQIP_25);
    begin
      SetStructure('QueryInputParameterList',RepCount,Value);
    end;

    function TMyQPD_25.QueryInputParameterListRepCount: Integer;
    begin
       Result := GetNodeCount('QueryInputParameterList');
    end;

    function TMyQPD_25.GetParametersforFuzzySearch : TdiQIP_25;
    begin
       Result:= TdiQIP_25(GetStructure('ParametersforFuzzySearch',0));
    end;

    procedure TMyQPD_25.SetParametersforFuzzySearch(Value : TdiQIP_25);
    begin
       SetStructure('ParametersforFuzzySearch',0,Value);
    end;

    function TMyQPD_25.GetUserParameters : TdiNode;
    begin
       Result:= TdiNode(GetStructure('UserParameters',0));
    end;

    procedure TMyQPD_25.SetUserParameters(Value : TdiNode);
    begin
       SetStructure('UserParameters',0,Value);
    end;

    function TMyQPD_25.GetUserParameters2 : TdiNode;
    begin
       Result:= TdiNode(GetStructure('UserParameters2',0));
    end;

    procedure TMyQPD_25.SetUserParameters2(Value : TdiNode);
    begin
       SetStructure('UserParameters2',0,Value);
    end;

    function TMyQPD_25.GetUserParameters3 : TdiNode;
    begin
       Result:= TdiNode(GetStructure('UserParameters3',0));
    end;

    procedure TMyQPD_25.SetUserParameters3(Value : TdiNode);
    begin
       SetStructure('UserParameters3',0,Value);
    end;

    function TMyQPD_25.GetWhatDomainsReturned: TdiCX_25;
    begin
       Result:= TdiCX_25(GetStructure('WhatDomainsReturned',0));
    end;

    procedure TMyQPD_25.SetWhatDomainsReturned(
      const Value: TdiCX_25);
    begin
       SetStructure('WhatDomainsReturned',0,Value);
    end;

    function TMyQBP_Q22_25.GetMSH : TdiMSH_25;
    begin
       Result:=TdiMSH_25(GetStructure('MSH',0));
    end;
    procedure TMyQBP_Q22_25.SetMSH(Value : TdiMSH_25);
    begin
       SetStructure('MSH',0,Value);
    end;
    function TMyQBP_Q22_25.GetSFT(RepCount :Integer ) : TdiSFT_25;
    begin
       Result:=TdiSFT_25(GetStructure('SFT',RepCount));
    end;
    procedure TMyQBP_Q22_25.SetSFT(RepCount :Integer;Value : TdiSFT_25);
    begin
       SetStructure('SFT',RepCount,Value);
    end;
    function TMyQBP_Q22_25.SFTRepCount : Integer;
    begin
       Result := GetNodeCount('SFT');
    end;
    function TMyQBP_Q22_25.GetQPD : TMyQPD_25;
    begin
       Result:=TMyQPD_25(GetStructure('QPD',0));
    end;
    procedure TMyQBP_Q22_25.SetQPD(Value : TMyQPD_25);
    begin
       SetStructure('QPD',0,Value);
    end;
    function TMyQBP_Q22_25.GetRCP : TdiRCP_25;
    begin
       Result:=TdiRCP_25(GetStructure('RCP',0));
    end;
    procedure TMyQBP_Q22_25.SetRCP(Value : TdiRCP_25);
    begin
       SetStructure('RCP',0,Value);
    end;
    function TMyQBP_Q22_25.GetDSC : TdiDSC_25;
    begin
       Result:=TdiDSC_25(GetStructure('DSC',0));
    end;
    procedure TMyQBP_Q22_25.SetDSC(Value : TdiDSC_25);
    begin
       SetStructure('DSC',0,Value);
    end;
    procedure TMyQBP_Q22_25.Init;
    begin
       inherited;
       Name :='QBP_Q22';
       MessageType :='QBP';
       TriggerEvent :='Q22';
       HL7Version :='2.5';
       Definitions.Add('MSH',TdiMSH_25,1,1);
       Definitions.Add('SFT',TdiSFT_25,0,-1);
       Definitions.Add('QPD',TMyQPD_25,1,1);
       Definitions.Add('RCP',TdiRCP_25,1,1);
       Definitions.Add('DSC',TdiDSC_25,0,1);

       ParseHL7(InitMsg);
    end;





    initialization
       diRegisterClass(TMyQBP_Q22_25,'QBP_Q22','2.5');
       diRegisterClass(TMyQPD_25,'QPD','2.5');

    finalization
       diUnRegisterClass(TMyQBP_Q22_25);
       diUnRegisterClass(TMyQPD_25);


    end.


If your element type different, please write us.

Best regards.
JerryB123
Posts: 10
Joined: Fri Dec 14, 2012 2:14 pm

Re: Populating QPD-3 for QPD_Q22?

Post by JerryB123 »

Hello,

ExtendedCompositeIDwithCheckDigit is fine, I just did not know that that was the QPD-8 field. It works fine like it is.

My question was if there is a way to get from a TdiXXXX property to its Terser-type value. For instance: assuming FPid : TdiPID_26, how to get the Terser-type representation of FPid.PatientName[0].FamilyName.Surname? (PID-5.1.1, I believe.)

Does that clear up my question?

(Should I start a new topic for this question?)
Thank you.
admin
Site Admin
Posts: 256
Joined: Sun Jun 05, 2011 8:06 pm

Re: Populating QPD-3 for QPD_Q22?

Post by admin »

Hi,

Yes, you can use name or order.
seperator is "-" not "."

Example code :

Code: Select all

uses diHL722, diHL7DT22, diHL7Grp22;

procedure TForm1.diTerserTestClick(Sender: TObject);
var
    msg : TdiADT_A01_22;
begin
    msg := TdiADT_A01_22.Create;
    
    // Populate the MSH Segment
    msg.Terser('/MSH-3-1').AsString:='TestSendingSystem';
    msg.Terser('/MSH-13-1').AsString:='123';

    // Populate the PID Segment
    msg.Terser('/PID-5-1').AsString:='Doe';
    msg.Terser('/PID-5-2').AsString:='John';
    msg.Terser('/PID-3-1').AsString:='123456';
    msg.Terser('/PID-3(2)-1').AsString:='7890';
	
    Memo1.Lines.Text:= msg.AsString;	
	
    {    
    MSH|^~\&|TestSendingSystem||||201112011539||ADT^A01||P|2.2|123
    PID|||123456~7890||Doe^John
    }    

    FreeAndNil(msg);
end;
JerryB123
Posts: 10
Joined: Fri Dec 14, 2012 2:14 pm

Re: Populating QPD-3 for QPD_Q22?

Post by JerryB123 »

Hello,
I was asking if there is a way to go the other way: find out the XXX-#... from the property.

Thank you.
Jerry
Post Reply

Who is online

Users browsing this forum: No registered users and 4 guests