private void OnRefresh(object obj) { PatientList.Clear(); // typ wyszukiwania (rozpoczynamy od pacjenta) gdcm.ERootType typ = gdcm.ERootType.ePatientRootType; // do jakiego poziomu wyszukujemy gdcm.EQueryLevel poziom = gdcm.EQueryLevel.ePatient; // zobacz inne // klucze (filtrowanie lub okreœlenie, które dane s¹ potrzebne) gdcm.KeyValuePairArrayType klucze = new gdcm.KeyValuePairArrayType(); //gdcm.Tag tag = new gdcm.Tag(0x0010, 0x0010); gdcm.KeyValuePairType klucz1 = new gdcm.KeyValuePairType(new gdcm.Tag(0x0010, 0x0010), "*"); klucze.Add(klucz1); klucze.Add(new gdcm.KeyValuePairType(new gdcm.Tag(0x0010, 0x0020), "")); // skonstruuj zapytanie gdcm.BaseRootQuery zapytanie = gdcm.CompositeNetworkFunctions.ConstructQuery(typ, poziom, klucze); // sprawdŸ, czy zapytanie spe³nia kryteria if (!zapytanie.ValidateQuery()) { State = "B³êdne zapytanie"; return; } // wykonaj zapytanie gdcm.DataSetArrayType wynik = new gdcm.DataSetArrayType(); bool stan = gdcm.CompositeNetworkFunctions.CFind(IP, ushort.Parse(Port), zapytanie, wynik, AET, "ARCHIWUM"); // sprawdŸ stan if (!stan) { State = "Nie dzia³a"; return; } // poka¿ wyniki foreach (gdcm.DataSet x in wynik) { // jeden element pary klucz-wartoœæ gdcm.DataElement de = x.GetDataElement(new gdcm.Tag(0x0010, 0x0020)); // konkretnie 10,20 = PATIENT_ID // dostêp jako string gdcm.Value val = de.GetValue(); // pobierz wartoœæ dla wskazanego klucza... string str = val.toString(); // ...jako napis PatientList.Add(str); } }
private void clearAllFields() { ListUsers.Clear(); PatientList.Clear(); }