radenf
11-10-2012, 01:34:26
Hola amigos:
Tengo el siguiente problema.
Desde un servidor mi programa recibe datos en un Memo (esto no lo puedo cambiar) en el siguiente formato:
0 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
0 : 64[0008:0020](StudyDate)DA=<1>13-09-2009
0 : 77[0008:0050](AccessionNumber)SH=<0>NULL
0 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
0 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
0 : 81[0008:0060](Modality)CS=<0>NULL
0 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
0 : 95[0008:1030](StudyDescription)LO=<1>ABD PEL
0 : 147[0010:0010](PatientName)PN=<1>Juan Serrano
0 : 148[0010:0020](PatientID)LO=<1>47310
0 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.805.1252843607.766
0 : 427[0020:0010](StudyID)SH=<1>44901
1 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
1 : 64[0008:0020](StudyDate)DA=<1>25-08-2009
1 : 77[0008:0050](AccessionNumber)SH=<0>NULL
1 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
1 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
1 : 81[0008:0060](Modality)CS=<0>NULL
1 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
1 : 95[0008:1030](StudyDescription)LO=<1>ORBITAS
1 : 147[0010:0010](PatientName)PN=<1>Juan Pérez
1 : 148[0010:0020](PatientID)LO=<1>46382
1 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.825.1251200228.13
1 : 427[0020:0010](StudyID)SH=<1>43969
2 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
2 : 64[0008:0020](StudyDate)DA=<1>08-09-2009
2 : 77[0008:0050](AccessionNumber)SH=<0>NULL
2 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
2 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
2 : 81[0008:0060](Modality)CS=<0>NULL
2 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
2 : 95[0008:1030](StudyDescription)LO=<1>TX
2 : 147[0010:0010](PatientName)PN=<1>Carlos González
2 : 148[0010:0020](PatientID)LO=<1>47080
2 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.656.1252387826.725
2 : 427[0020:0010](StudyID)SH=<1>44670
Con el siguiente código puedo insertar sólo el primer registro en una tabla, o sea los datos que necesito y que empiezan con 0
begin
Temporal.Close;
Temporal.EmptyTable;
Temporal.Open;
das := CnsDicomConnection1.ReceiveDatasets[i];
das.ListAttrinute(IntToStr(i) + ' : ', Memo1.Lines);
Temporal.Insert;
TemporalAcceso.AsString := das.GetString($0008, $0050);
TemporalNombre.AsString := das.GetString($0010, $0010);
Temporalid.AsString := das.GetString($0010, $0020);
TemporalFechaExamen.AsString := das.GetString($0008, $0020);
TemporalDescripcion.AsString := das.GetString($0008, $1030);
TemporalModalidad.AsString := das.GetString($0008, $0061);
Temporal.Post;
bsSkinStdLabel5.Caption:= InttoStr (Temporal.RecordCount);
end;
¿Existe alguna manera de insertar los registros siguientes, los que empiezan con 1, con 2, etc., en registros sucesivos?
Agradezco sinceramente cualquier aporte.
Saludos
Tengo el siguiente problema.
Desde un servidor mi programa recibe datos en un Memo (esto no lo puedo cambiar) en el siguiente formato:
0 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
0 : 64[0008:0020](StudyDate)DA=<1>13-09-2009
0 : 77[0008:0050](AccessionNumber)SH=<0>NULL
0 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
0 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
0 : 81[0008:0060](Modality)CS=<0>NULL
0 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
0 : 95[0008:1030](StudyDescription)LO=<1>ABD PEL
0 : 147[0010:0010](PatientName)PN=<1>Juan Serrano
0 : 148[0010:0020](PatientID)LO=<1>47310
0 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.805.1252843607.766
0 : 427[0020:0010](StudyID)SH=<1>44901
1 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
1 : 64[0008:0020](StudyDate)DA=<1>25-08-2009
1 : 77[0008:0050](AccessionNumber)SH=<0>NULL
1 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
1 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
1 : 81[0008:0060](Modality)CS=<0>NULL
1 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
1 : 95[0008:1030](StudyDescription)LO=<1>ORBITAS
1 : 147[0010:0010](PatientName)PN=<1>Juan Pérez
1 : 148[0010:0020](PatientID)LO=<1>46382
1 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.825.1251200228.13
1 : 427[0020:0010](StudyID)SH=<1>43969
2 : 57[0008:0005](SpecificCharacterSet)CS=<1>ISO_IR 100
2 : 64[0008:0020](StudyDate)DA=<1>08-09-2009
2 : 77[0008:0050](AccessionNumber)SH=<0>NULL
2 : 78[0008:0052](QueryRetrieveLevel)CS=<1>STUDY
2 : 79[0008:0054](RetrieveAETitle)AE=<1>iMacIV
2 : 81[0008:0060](Modality)CS=<0>NULL
2 : 82[0008:0061](ModalitiesInStudy)CS=<1>CT
2 : 95[0008:1030](StudyDescription)LO=<1>TX
2 : 147[0010:0010](PatientName)PN=<1>Carlos González
2 : 148[0010:0020](PatientID)LO=<1>47080
2 : 425[0020:000D](StudyInstanceUID)UI=<1>1.2.840.113619.2.55.3.101357413.656.1252387826.725
2 : 427[0020:0010](StudyID)SH=<1>44670
Con el siguiente código puedo insertar sólo el primer registro en una tabla, o sea los datos que necesito y que empiezan con 0
begin
Temporal.Close;
Temporal.EmptyTable;
Temporal.Open;
das := CnsDicomConnection1.ReceiveDatasets[i];
das.ListAttrinute(IntToStr(i) + ' : ', Memo1.Lines);
Temporal.Insert;
TemporalAcceso.AsString := das.GetString($0008, $0050);
TemporalNombre.AsString := das.GetString($0010, $0010);
Temporalid.AsString := das.GetString($0010, $0020);
TemporalFechaExamen.AsString := das.GetString($0008, $0020);
TemporalDescripcion.AsString := das.GetString($0008, $1030);
TemporalModalidad.AsString := das.GetString($0008, $0061);
Temporal.Post;
bsSkinStdLabel5.Caption:= InttoStr (Temporal.RecordCount);
end;
¿Existe alguna manera de insertar los registros siguientes, los que empiezan con 1, con 2, etc., en registros sucesivos?
Agradezco sinceramente cualquier aporte.
Saludos