Dokumentacja programu e Zoz Opis biblioteki PhantomAPI.dll Wersja 1.22.1.5 Zielona Góra 2010-08-26
1. Opis ogólny Biblioteka programistyczna PhantomAPI.dll służy do integracji oprogramowania zewnętrznego z bazą danych programy ezoz. Zadania biblioteki: - dodawanie danych osobowych - dodawanie deklaracji POZ - dodawanie świadczeń ambulatoryjnych (w przygotowaniu) - sprawdzanie statusów deklaracji POZ 2. Opis techniczny Biblioteka PhantomAPI.dll stworzona została w środowisku programistycznym Microsoft Framework 2.0. Istnieje możliwość jej integracji z większością innych środowisk programistycznych, przy zastosowaniu technologii COM. 3. Wymagania techniczne Ze względu na zastosowaną technologię, na stanowiskach wywołujących funkcje PhantomAPI, zainstalowane musi zostać środowisko Microsoft Framework 2.0. Biblioteka PhantomAPI.dll musi znajdować się w domyślnym folderze instalacyjnym programu ezoz. Spowodowane jest to licznymi powiązaniami z innymi bibliotekami wywoływanymi podczas wykonywania jej wewnętrznych funkcji. Folderem roboczym dla funkcji PhantomAPI musi być również domyślny folder instalacyjny programu ezoz. Aby zapewnić prawidłowe funkcjonowanie biblioteki PhantomAPI w przypadku, kiedy serwer programu ezoz znajduje się na innym komputerze, na stacji klienckiej należy zainstalować program ezoz zgodnie z opisem umieszczonym w Instrukcji instalacji zaznaczając opcję Skróty do programu ezoz (strona 3). 4. Rejestracja biblioteki PhantomAPI.dll w środowisku programistycznym oraz aplikacji zewnętrznej 4.1. Wariant 1 - rejestracja biblioteki COM: Wykonać z linii poleceń: c:\windows\microsoft.net\framework\v2.0.xx\regasm /codebase sciezka\do\phantomapi.dll 4.1. Wariant 2 import do rejestru pliku REG: Należy zaimportować plik rejestru PhantomAPI.reg 5. Rejestracja biblioteki PhantomAPI.dll w środowisku programistycznym 5.1 Delphi wariant 1 Należy dołączyć do projektu pliki *.pas z interfejsami PhantomAPI 5.1 Delphi wariant 2 Należy wywołać menu Component -> Import Component... i wskazać bibliotekę PhantomAPI.dll 5.3 Visual C++ Należy dołączyć do projektu plik PhantomApi.tlb 2
6. Opis pól struktury IDaneOsobowe string NAZWISKO - nazwisko: do 40 znaków string NAZWISKO2 - nazwisko drugie (panieńskie): do 40 znaków string IMIE - imię: do 30 znaków string IMIE2 - imię drugie: do 30 znaków string PESEL - numer pesel: 11 znaków DateTime DATA_URODZ - data urodzenia (jeżeli brak daty urodzenia należy przekazać wartość '1800-01-01') int PLEC_ID - identyfikator płci: 1 - nieokreślona, 2 - mężczyzna, 3 - kobieta, 4 nieznana) string MEL_MIASTO - miasto stałego zameldowania: do 56 znaków, string MEL_KOD_POCZT - kod pocztowy miasta stałego zameldowania: 6 znaków (format xx-xxx), string MEL_ULICA - ulica stałego zameldowania: do 65 znaków, string MEL_NR_DOMU - numer domu stałego zameldowania: do 9 znaków, string MEL_NR_LOKALU - numer lokalu stałego zameldowania: do 10 znaków, string MEL_TELEFON - numer telefonu stałego zameldowania: do 15 znaków, string MEL_TERYT_MIASTO - kod miasta stałego zameldowania: 7 znaków według słownika TERYT string MEL_TERYT - kod gminy stałego zameldowania: 7 znaków według słownika TERYT, string ZAM_MIASTO - miasto zamieszkania: do 56 znaków, string ZAM_KOD_POCZT - kod pocztowy miasta zamieszkania: 6 znaków (format xx-xxx), string ZAM_ULICA - ulica zamieszkania: do 65 znaków, string ZAM_NR_DOMU - numer domu zamieszkania: do 9 znaków, string ZAM_NR_LOKALU - numer lokalu zamieszkania: do 10 znaków, string ZAM_TELEFON - numer telefonu zamieszkania: do 15 znaków, string ZAM_TERYT_MIASTO - kod miasta zamieszkania: 7 znaków według słownika TERYT, string ZAM_TERYT - kod gminy zamieszkania: 7 znaków według słownika TERYT, string NR_DOWODU_OSOBISTEGO - numer dowodu osobistego: do 9 znaków, string NR_DOK_MED - numer dokumentacji medycznej pacjenta: do 20 znaków, string DODATKOWY_ID - dodatkowy identyfikator pacjenta, np. nr kartoteki z dokumentacją medyczną, string NIP - numer NIP: 10 (bez kresek) lub 13 znaków, string MIEJSCE_URODZENIA - miejsce urodzenia: do 56 znaków, string CUDZOZIEMIEC - określa czy osoba jest cudzoziemcem lub jest ubezpieczona poza polską: T - tak, N - nie string KRAJ_ID - kod państwa stałego zamieszkania: 2 znaki wg normy PN-ISO 3166-1, string NR_PASZPORTU - numer paszportu: do 15 znaków, string NR_KARTY - numer karty stałego pobytu: do 20 znaków, string E100 - identyfikator karty serii E100: do 20 znaków, string EKUZ - identyfikator karty EKUZ: do 20 znaków, string NR_DOK_UB - numer karty ubezpieczenia zdrowotnego (śląskie): do 30 znaków, int NR_DUPLIKATU - numer duplikatu karty ubezpieczenia zdrowotnego (śląskie): wartości pomiędzy 0 a 99, jeżeli brak danych przekazać wartość < 0 string NUMER_POSW - identyfikator poświadczenia karty serii E100: do 20 znaków, string UMOWA - numer umowy ubezpieczenia indywidualnego, string PRZYCZYNA_GLOW - kod głównej choroby przewlekłej: od 3 do 5 znaków wg ICD10, string PRZYCZYNA_WSP1 - kod dodatkowej (1) choroby przewlekłej: od 3 do 5 znaków wg ICD10, string PRZYCZYNA_WSP2 - kod dodatkowej (2) choroby przewlekłej: od 3 do 5 znaków wg ICD10, string PRZYCZYNA_WSP3 - kod dodatkowej (3) choroby przewlekłej: od 3 do 5 znaków wg ICD10, string UWAGI - dodatkowe uwagi dotyczące pacjenta: do 500 znaków, int MIEJSCE_UBEZP - miejsce ubezpieczenia: 1 - ZUS, 2 - KRUS, 3 - inny string PLATNIK_NIP - numer NIP płatnika składek ubezpieczeniowych: od 10 do 13 znaków, string PLATNIK_NAZWA - nazwa płatnika składek ubezpieczeniowych: do 50 znaków, DateTime DATA_OD - data/czas, od której obowiązują nowe dane osobowe, string UZYTKOWNIK - nazwa użytkownika dodającego/modyfikującego dane, 3
7. Opis funkcji biblioteki PhantomAPI.dll bool OtworzPolaczenie(string host, string baza, out string problemy); Wywołanie funkcji ma na celu ustanowienie połączenia z bazą danych programu ezoz. Metodę należy wywołać tylko raz przed wywoływaniem pozostałych funkcji. host nazwa DNS lub adres IP hosta, na którym zainstalowany został serwer bazy danych programu ezoz baza pełna ścieżka bezwzględna do pliku bazy danych programu ezoz True ustanowiono połączenie z bazą danych False nie ustanowiono połączenia z bazą danych (patrz argument problemy) bool ZamknijPolaczenie(out string problemy); Wywołanie funkcji powoduje zamknięcie aktualnego połączenia z bazą danych. True zamknięto połączenie z bazą danych False nie zamknięto połączenia z bazą danych (patrz argument problemy) bool StatusPolaczenia(out string problemy); Wywołanie funkcji zwraca status połączenia z bazą danych. True połączenie z bazą danych jest ustanowione False połączenie z bazą danych jest ustanowione (patrz argument problemy) IDaneOsobowe UtworzDaneOsobowe(); Wywołanie funkcji powoduje otworzenie czystej struktury IDaneOsobowe, która przekazywana jest po zainicjowaniu pól, jako argument wywołania funkcji DodajDaneOsobowe. IDaneOsobowe struktura danych osobowych gotowa do wypełnienia 4
int DaneOsoboweID(string pesel, string imie, string nazwisko, DateTime dataurodz, out string problemy); Wywołanie funkcji zwraca identyfikator danych osobowych występujących po stronie bazy danych programu ezoz. Identyfikator ten może być użyty, jako argument wywołania funkcji DodajDeklaracjePOZ, StatusyDeklaracjiPOZ. Uwaga: Jeżeli jako argument podano prawidłowy numer PESEL pacjenta wyszukiwane są dane osobowe dla numeru PESEL. Jeżeli nie zostaną one odnalezione następuje wyszukiwanie danych dla pozostałych argumentów (imię, nazwisko, data urodzenia) bez nadanego numeru PESEL. Takie działania zapewnia unikanie dublowania danych osobowych dla noworodków bez nadanego numeru PESEL którzy występują w bazie danych ezoz. pesel numer PESEL pacjenta (jeżeli został podany, ignorowane są argumenty imie, nazwisko, dataurodz) imie imię pacjenta (istotny tylko, kiedy nie podano argumentu pesel) nazwisko nazwisko pacjenta (istotny tylko, kiedy nie podano argumentu pesel) dataurodz data urodzenia pacjenta (istotny tylko, kiedy nie podano argumentu pesel) >= 0 identyfikator danych osobowych w bazie danych. -2 - nie podano danych osobowych wystarczających do wyszukania pacjenta w bazie osobowej -3 - nie znaleziono danych osobowych dla podanych kryteriów wyszukiwania -4 - wystąpił błąd podczas wyszukiwania danych osobowych int DodajDaneOsobowe(IDaneOsobowe daneosobowe, bool aktualizujdane, bool zapiszbledne, bool dodajdeklaracje, out string problemy); Wywołanie funkcji powoduje utworzenie lub aktualizację danych osobowych dla struktury IDaneOsobowe przekazanej, jako argument wywołania. Podczas wyszukiwania danych osobowych do modyfikacji, używana jest funkcja DaneOsoboweID IDaneOsobowe struktura z uzupełnionym danymi osobowymi. aktualizujdane jeżeli True funkcja ma prawo aktualizować dane osobowe, w przeciwnym wypadku (False) może tylko dodawać nowe dane osobowe do bazy a próba aktualizacji (dane osobowe już występują) zwróci błąd -9. zapiszbledne jeżeli True funkcja ma prawo ograniczać lub ignorować nieprawidłowe wartości niekrytycznych pól struktury IDaneOsobowe przekazanej jako argument, w przeciwnym wypadku (False) zwróci błąd -14. dodajdeklaracje jeżeli True funkcja po pomyślnym dodaniu lub zmodyfikowaniu danych osobowych wyświetli formatkę w której wprowadzić można dane deklaracji POZ związanej z pacjentem (wywołanie funkcji int DodajDeklaracjePOZ(int ido, out string problemy); 0 dodano dane osobowe 1 - zmodyfikowano dane osobowe 2 - dodano dane osobowe oraz deklaracje POZ 3 - zmodyfikowano dane osobowe oraz dodano deklaracje POZ -2 - nieprawidłowa wartość pola daneosobowe.nazwisko -3 - nieprawidłowa wartość pola daneosobowe.imie 5
-4 - nieprawidłowa wartość pola daneosobowe.pesel -5 - nieprawidłowa wartość pola daneosobowe.plec -6 - niezgodność numeru PESEL z datą urodzenia oraz płcią -7 - nie określono daty początkowej obowiązywania danych osobowych -8 - w bazie danych istnieją dane osobowe z tą samą lub późniejszą datą rozpoczęcia obowiązywania -9 - w bazie istnieją już dane dla wskazanej osoby (aktualizacja jest zabroniona) -10 Wystąpił błąd podczas wyszukiwania danych osobowych -11 - brak wymaganych danych osobowych - istnieją złożone (aktywne) deklaracje POZ -12 - anulowano operację podczas zmiany aktualnych danych deklaracji POZ -13 - wystąpił błąd operacji zapisu danych osobowych do bazy -14 - w przekazanych danych osobowych występują błędy (zapisywanie z błędami zabronione) -15 - wystąpił błąd ogólny podczas dodawania danych osobowych -21 - nieprawidłowy status połączenia z bazą danych podczas dodawania deklaracji POZ -22 - błąd wyszukiwania danych osobowych podczas dodawania deklaracji POZ -23 - anulowano tworzenie nowej deklaracji POZ (dane osobowe zostały zapisane) -24 - nieprawidłowe wywołanie formatki edycji danych deklaracji POZ (dane osobowe zostały zapisane) -25 - nie można zaktualizować danych, ponieważ są one blokowane przez innego użytkownika int DodajDeklaracjePOZ(int ido, out string problemy); Wywołanie funkcji powoduje wyświetlenie formatki, w której wprowadzić można dane deklaracji POZ związanej z identyfikatorem pacjenta podanym w argumencie ido. ido problemy identyfikator pacjenta uzyskany za pomocą funkcji DaneOsoboweID. zmienna, w której opisane zostały problemy występujące podczas wykonywania funkcji 0 dodawanie deklaracji POZ zakończone zostało powodzeniem -2 błąd wyszukiwania danych osobowych podczas dodawania deklaracji POZ -3 - anulowano tworzenie nowej deklaracji POZ -4 - nieprawidłowe wywołanie formatki edycji danych deklaracji POZ int DodajDeklaracjePOZ(string pesel, string imie, string nazwisko, DateTime dataurodz, out string problemy); Wywołanie funkcji powoduje wyświetlenie formatki, w której wprowadzić można dane deklaracji POZ związanej z danymi pacjenta podanym w argumentach pesel, imie, nazwisko, dataurodz. Podczas wyszukiwania danych osobowych, używana jest funkcja DaneOsoboweID pesel numer PESEL pacjenta imie imię pacjenta nazwisko nazwisko pacjenta dataurodz data urodzenia pacjenta 0 dodawanie deklaracji POZ zakończone zostało powodzeniem -2 błąd wyszukiwania danych osobowych podczas dodawania deklaracji POZ -3 - anulowano tworzenie nowej deklaracji POZ -4 - nieprawidłowe wywołanie formatki edycji danych deklaracji POZ 6
int StatusyDeklaracjiPOZ(int ido, int typlisty, bool wyswietlkomunikat, out string problemy); Wywołanie funkcji powoduje wyświetlenie formatki, w której pokazane zostają statusy danych deklaracji POZ związanej z identyfikatorem pacjenta podanym w argumencie ido. Formatka ukaże się tylko w przypadku, kiedy pacjent nie ma złożonej deklaracji POZ określonego typu lub deklaracja nie została zaliczona w ostatnim dostępnym procesie weryfikacji. ido typlisty wyswietlkomunikat problemy identyfikator pacjenta uzyskany za pomocą funkcji DaneOsoboweID. typ listy (1 lekarska, 2- pielęgniarki środowiskowej, 3 położnej, 4 med. szkolnej). jeżeli True funkcja powoduje wyświetlenie formatki z tekstem przekazanym również w argumencie problemy zmienna, w której opisane zostały problemy występujące podczas wykonywania funkcji 0 operacja sprawdzania statusów deklaracji POZ zakończona została powodzeniem -2 - nie podano danych osobowych wystarczających do wyszukania pacjenta w bazie osobowej -3 - wystąpił błąd podczas wyszukiwania statusów deklaracji POZ -4 - pacjent ma nieprawidłowy status deklaracji POZ dla typu wskazanego w argumencie typlisty -5 - wystąpił błąd podczas wyszukiwania statusów deklaracji POZ int StatusyDeklaracjiPOZ(string pesel, string imie, string nazwisko, DateTime dataurodz, int typlisty, bool wyswietlkomunikat, out string problemy); Wywołanie funkcji powoduje wyświetlenie formatki, w której pokazane zostają statusy danych deklaracji POZ związanej z danymi pacjenta podanym w argumentach pesel, imie, nazwisko, dataurodz. Formatka ukaże się tylko w przypadku, kiedy pacjent nie ma złożonej deklaracji POZ określonego typu lub deklaracja nie została zaliczona w ostatnim dostępnym procesie weryfikacji. pesel imie nazwisko dataurodz typlisty wyswietlkomunikat problemy numer PESEL pacjenta imię pacjenta nazwisko pacjenta data urodzenia pacjenta typ listy (1 lekarska, 2- pielęgniarki środowiskowej, 3 położnej, 4 med. szkolnej). jeżeli True funkcja powoduje wyświetlenie formatki z tekstem przekazanym również w argumencie problemy zmienna, w której opisane zostały problemy występujące podczas wykonywania funkcji 0 operacja sprawdzania statusów deklaracji POZ zakończona została powodzeniem -2 - nie podano danych osobowych wystarczających do wyszukania pacjenta w bazie osobowej -3 - pacjent nie ma deklaracji POZ dla typu wskazanego w argumencie typlisty -4 - pacjent ma nieprawidłowy status deklaracji POZ dla typu wskazanego w argumencie typlisty -5 - wystąpił błąd podczas wyszukiwania statusów deklaracji POZ 7
public int DrukujDeklaracjePOZ(int ido, out string problemy) Wywołanie funkcji powoduje wyświetlenie formatki, w której możliwe jest określenie parametrów drukowania deklaracji związanej z identyfikatorem pacjenta podanym w argumencie ido. ido problemy identyfikator pacjenta uzyskany za pomocą funkcji DaneOsoboweID. zmienna, w której opisane zostały problemy występujące podczas wykonywania funkcji 0 operacja drukowania deklaracji POZ zakończona została powodzeniem -2 - anulowano drukowanie deklaracji POZ -3 - wystąpił błąd podczas drukowania deklaracji POZ 8