Hi,
ZQI^Z01 message contains MSH,PRD, PID segments,
MSH,PRD and PID segments is standart segments.
You need only define ZQI^Z01 message.
ZPI^Z01 message contains MSH,MSA,ZAU,PRD,PID,IN1,ZIN segments.
MSH,MSA,PRD,PID,IN1 segments is standart segments.
ZAU, ZIN segments is non standart segments. (Custom Z segment). First you must define this segments.
Then you can define ZPI^Z01 message.
ZAU segment definition.
Code: Select all
type
TdiZAU_24 = class(TdiSegment)
private
inscarrier1List:TdiList;
preauthcd1List :TdiList;
inscarrier2List :TdiList;
preauthcd2List :TdiList;
inscarrier3List :TdiList;
preauthcd3List :TdiList;
inscarrier4List :TdiList;
preauthcd4List :TdiList;
inscarrier5List :TdiList;
preauthcd5List :TdiList;
inscarrier6List :TdiList;
preauthcd6List :TdiList;
protected
function Getinscarrier1: TdiST_24;
function Getinscarrier2: TdiST_24;
function Getinscarrier3: TdiST_24;
function Getinscarrier4: TdiST_24;
function Getinscarrier5: TdiST_24;
function Getinscarrier6: TdiST_24;
function Getpreauthcd1: TdiST_24;
function Getpreauthcd2: TdiST_24;
function Getpreauthcd3: TdiST_24;
function Getpreauthcd4: TdiST_24;
function Getpreauthcd5: TdiST_24;
function Getpreauthcd6: TdiST_24;
procedure Setinscarrier1(const Value: TdiST_24);
procedure Setinscarrier2(const Value: TdiST_24);
procedure Setinscarrier3(const Value: TdiST_24);
procedure Setinscarrier4(const Value: TdiST_24);
procedure Setinscarrier5(const Value: TdiST_24);
procedure Setinscarrier6(const Value: TdiST_24);
procedure Setpreauthcd1(const Value: TdiST_24);
procedure Setpreauthcd2(const Value: TdiST_24);
procedure Setpreauthcd3(const Value: TdiST_24);
procedure Setpreauthcd4(const Value: TdiST_24);
procedure Setpreauthcd5(const Value: TdiST_24);
procedure Setpreauthcd6(const Value: TdiST_24);
public
property inscarrier1 : TdiST_24 read Getinscarrier1 write Setinscarrier1;
property preauthcd1 : TdiST_24 read Getpreauthcd1 write Setpreauthcd1;
property inscarrier2 : TdiST_24 read Getinscarrier2 write Setinscarrier2;
property preauthcd2 : TdiST_24 read Getpreauthcd2 write Setpreauthcd2;
property inscarrier3 : TdiST_24 read Getinscarrier3 write Setinscarrier3;
property preauthcd3 : TdiST_24 read Getpreauthcd3 write Setpreauthcd3;
property inscarrier4 : TdiST_24 read Getinscarrier4 write Setinscarrier4;
property preauthcd4 : TdiST_24 read Getpreauthcd4 write Setpreauthcd4;
property inscarrier5 : TdiST_24 read Getinscarrier5 write Setinscarrier5;
property preauthcd5 : TdiST_24 read Getpreauthcd5 write Setpreauthcd5;
property inscarrier6 : TdiST_24 read Getinscarrier6 write Setinscarrier6;
property preauthcd6 : TdiST_24 read Getpreauthcd6 write Setpreauthcd6;
constructor Create; override;
end;
implementation
{ TdiZAU_24 }
constructor TdiZAU_24.Create;
begin
inherited;
Name :='ZAU';
inscarrier1List:=TdiList.Create;
inscarrier1List.SetDefault('ST','TdiST_24',0,0,1,Self);
Add(inscarrier1List);
preauthcd1List :=TdiList.Create;
preauthcd1List.SetDefault('ST','TdiST_24',1,0,1,Self);
Add(preauthcd1List);
inscarrier2List :=TdiList.Create;
inscarrier2List.SetDefault('ST','TdiST_24',2,0,1,Self);
Add(inscarrier2List);
preauthcd2List :=TdiList.Create;
preauthcd2List.SetDefault('ST','TdiST_24',3,0,1,Self);
Add(preauthcd2List);
inscarrier3List :=TdiList.Create;
inscarrier3List.SetDefault('ST','TdiST_24',4,0,1,Self);
Add(inscarrier3List);
preauthcd3List :=TdiList.Create;
preauthcd3List.SetDefault('ST','TdiST_24',5,0,1,Self);
Add(preauthcd3List);
inscarrier4List :=TdiList.Create;
inscarrier4List.SetDefault('ST','TdiST_24',6,0,1,Self);
Add(inscarrier4List);
preauthcd4List :=TdiList.Create;
preauthcd4List.SetDefault('ST','TdiST_24',7,0,1,Self);
Add(preauthcd4List);
inscarrier5List :=TdiList.Create;
inscarrier5List.SetDefault('ST','TdiST_24',8,0,1,Self);
Add(inscarrier5List);
preauthcd5List :=TdiList.Create;
preauthcd5List.SetDefault('ST','TdiST_24',9,0,1,Self);
Add(preauthcd5List);
inscarrier6List :=TdiList.Create;
inscarrier6List.SetDefault('ST','TdiST_24',10,0,1,Self);
Add(inscarrier6List);
preauthcd6List :=TdiList.Create;
preauthcd6List.SetDefault('ST','TdiST_24',11,0,1,Self);
Add(preauthcd6List);
end;
function TdiZAU_24.Getinscarrier1: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(0,0));
end;
function TdiZAU_24.Getinscarrier2: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(1,0));
end;
function TdiZAU_24.Getinscarrier3: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(2,0));
end;
function TdiZAU_24.Getinscarrier4: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(3,0));
end;
function TdiZAU_24.Getinscarrier5: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(4,0));
end;
function TdiZAU_24.Getinscarrier6: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(5,0));
end;
function TdiZAU_24.Getpreauthcd1: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(6,0));
end;
function TdiZAU_24.Getpreauthcd2: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(7,0));
end;
function TdiZAU_24.Getpreauthcd3: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(8,0));
end;
function TdiZAU_24.Getpreauthcd4: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(9,0));
end;
function TdiZAU_24.Getpreauthcd5: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(10,0));
end;
function TdiZAU_24.Getpreauthcd6: TdiST_24;
begin
Result:= TdiST_24(GetRepByIndex(10,0));
end;
procedure TdiZAU_24.Setinscarrier1(const Value: TdiST_24);
begin
SetByIndex(0,0,Value);
end;
procedure TdiZAU_24.Setinscarrier2(const Value: TdiST_24);
begin
SetByIndex(1,0,Value);
end;
procedure TdiZAU_24.Setinscarrier3(const Value: TdiST_24);
begin
SetByIndex(2,0,Value);
end;
procedure TdiZAU_24.Setinscarrier4(const Value: TdiST_24);
begin
SetByIndex(3,0,Value);
end;
procedure TdiZAU_24.Setinscarrier5(const Value: TdiST_24);
begin
SetByIndex(4,0,Value);
end;
procedure TdiZAU_24.Setinscarrier6(const Value: TdiST_24);
begin
SetByIndex(5,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd1(const Value: TdiST_24);
begin
SetByIndex(6,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd2(const Value: TdiST_24);
begin
SetByIndex(7,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd3(const Value: TdiST_24);
begin
SetByIndex(8,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd4(const Value: TdiST_24);
begin
SetByIndex(9,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd5(const Value: TdiST_24);
begin
SetByIndex(10,0,Value);
end;
procedure TdiZAU_24.Setpreauthcd6(const Value: TdiST_24);
begin
SetByIndex(11,0,Value);
end;
ZIN segment definition:
(You must define this segment)
Code: Select all
type
TdiZIN_24 = class(TdiSegment)
....
...
end;
ZPI_Z01 message definition:
Code: Select all
TdiZPI_Z01_24= class(TdiMessage)
private
MSHList:TdiSegmentList;
MSAList:TdiSegmentList;
ZAUList:TdiSegmentList;
PRDList:TdiSegmentList;
PIDList:TdiSegmentList;
IN1List:TdiSegmentList;
ZINList:TdiSegmentList;
protected
function GetIN1: TdiIN1_24;
function GetMSA: TdiMSA_24;
function GetMSH: TdiMSH_24;
function GetPID: TdiPID_24;
function GetPRD: TdiPRD_24;
function GetZAU: TdiZAU_24;
function GetZIN: TdiZIN_24;
procedure SetIN1(const Value: TdiIN1_24);
procedure SetMSA(const Value: TdiMSA_24);
procedure SetMSH(const Value: TdiMSH_24);
procedure SetPID(const Value: TdiPID_24);
procedure SetPRD(const Value: TdiPRD_24);
procedure SetZAU(const Value: TdiZAU_24);
procedure SetZIN(const Value: TdiZIN_24);
public
property MSH : TdiMSH_24 read GetMSH write SetMSH;
property MSA : TdiMSA_24 read GetMSA write SetMSA;
property ZAU : TdiZAU_24 read GetZAU write SetZAU;
property PRD : TdiPRD_24 read GetPRD write SetPRD;
property PID : TdiPID_24 read GetPID write SetPID;
property IN1 : TdiIN1_24 read GetIN1 write SetIN1;
property ZIN : TdiZIN_24 read GetZIN write SetZIN;
constructor Create; override;
end;
implementation
{ TdiZPI_Z01_24 }
constructor TdiZPI_Z01_24.Create;
begin
inherited;
Name :='ZPI_Z01';
MessageType :='ZPI';
TriggerEvent :='Z01';
HL7Version :='2.4';
MSHList:=TdiSegmentList.Create;
MSHList.SetDefault('MSH','TdiMSH_24',0,1,1,Self);
Add(MSHList);
MSAList:=TdiSegmentList.Create;
MSHList.SetDefault('MSA','TdiMSA_24',1,1,1,Self);
Add(MSAList);
ZAUList:=TdiSegmentList.Create;
ZAUList.SetDefault('ZAU','TdiZAU_24',2,0,1,Self);
Add(ZAUList);
PRDList:=TdiSegmentList.Create;
PRDList.SetDefault('PRD','TdiPRD_24',3,0,1,Self);
Add(PRDList);
PIDList:=TdiSegmentList.Create;
PIDList.SetDefault('PID','TdiPID_24',4,0,1,Self);
Add(PIDList);
IN1List:=TdiSegmentList.Create;
IN1List.SetDefault('IN1','TdiIN1_24',5,0,1,Self);
Add(IN1List);
ZINList:=TdiSegmentList.Create;
ZINList.SetDefault('ZIN','TdiZIN_24',6,0,1,Self);
Add(ZINList);
Parse(InitMsg);
end;
function TdiZPI_Z01_24.GetIN1: TdiIN1_24;
begin
Result:=TdiIN1_24(Find('IN1',0));
end;
function TdiZPI_Z01_24.GetMSA: TdiMSA_24;
begin
Result:=TdiMSA_24(Find('MSA',0));
end;
function TdiZPI_Z01_24.GetMSH: TdiMSH_24;
begin
Result:=TdiMSH_24(Find('MSH',0));
end;
function TdiZPI_Z01_24.GetPID: TdiPID_24;
begin
Result:=TdiPID_24(Find('PID',0));
end;
function TdiZPI_Z01_24.GetPRD: TdiPRD_24;
begin
Result:=TdiPRD_24(Find('PRD',0));
end;
function TdiZPI_Z01_24.GetZAU: TdiZAU_24;
begin
Result:=TdiZAU_24(Find('ZAU',0));
end;
function TdiZPI_Z01_24.GetZIN: TdiZIN_24;
begin
Result:=TdiZIN_24(Find('ZIN',0));
end;
procedure TdiZPI_Z01_24.SetIN1(const Value: TdiIN1_24);
begin
SetByName('IN1',0,Value);
end;
procedure TdiZPI_Z01_24.SetMSA(const Value: TdiMSA_24);
begin
SetByName('MSA',0,Value);
end;
procedure TdiZPI_Z01_24.SetMSH(const Value: TdiMSH_24);
begin
SetByName('MSH',0,Value);
end;
procedure TdiZPI_Z01_24.SetPID(const Value: TdiPID_24);
begin
SetByName('PID',0,Value);
end;
procedure TdiZPI_Z01_24.SetPRD(const Value: TdiPRD_24);
begin
SetByName('PRD',0,Value);
end;
procedure TdiZPI_Z01_24.SetZAU(const Value: TdiZAU_24);
begin
SetByName('ZAU',0,Value);
end;
procedure TdiZPI_Z01_24.SetZIN(const Value: TdiZIN_24);
begin
SetByName('ZIN',0,Value);
end;
Best regards.