- MedpassResourceAPi v 0.0.5 - restowe api dostepu do zasobów systemu medpass 2.0 - 1) Instalacja: z ruby gems: gem install medpass_resource_api 2) Konfiguracja - W config/environment.rb config.gem 'medpass_resource_api' - Po bloku Rails::Initializer.run do |config| . . . end MedpassResourceApi.configure do |config| config.api_key = '1234567890' config.medpass_url = 'http://medpass.pl' end 3) Użycie: Metody wywołujemy na rzecz klasy MedpassResourceApi::Base --->MedpassResourceApi::Base.get_user(openid_url_or_login) - zwraca usera (podstawowe dane: id, login, nazwa_wyświetlana(*), grupa(1,2,3 ... itd zgodnie z grupami medpass)) Możemy rowniez wywołać tą metodę w formie z przekazaną aktualną datą / czasem: ---->MedpassResourceApi::Base.get_user(openid_url_or_login, Date.today) - zwraca usera tylko w przypadku gdy nastapily zmiany w profilu i sa >= przekazana data ----------------------------------------------------------------------------------------- ---->MedpassResourceApi::Base.get_user_profile(openid_url_or_login) - zwraca pełny profil usera (analogicznie jak nasza SOAP-owa metoda export_profile) Tak samo jak get_user - mozemy przekazac datę naszej ostatniej wersji profilu, np: ---->MedpassResourceApi::Base.get_user_profile(openid_url_or_login,'2010-01-01') ------------------------------------------------------------------------------------------ ---->MedpassResourceApi::Base.get_user_friends(openid_url_or_login) - zwraca listę znajomych danego usera: znajomi indentyfikowani sa przez: id, login, display_name, email ------------------------------------------------------------------------------------------- ---->MedpassResourceApi::Base.get_user_message(openid_url_or_login, id_message'a) - zwraca wiadomość medpass o id id_message'a dla danego uzytkownika (pobranie wiadomosci - oznacza jej przeczytanie - wpis w DB) -------------------------------------------------------------------------------------------- ---->MedpassResourceApi::Base.get_user_received_messages(openid_url_or_login, options = {}) - zwraca otrzymane(wszystkie) message dla usera: dostepne opcje to: limit - ograniczenie ilosci, i app - nazwa aplikacji, np: ---->MedpassResourceApi::Base.get_user_received_messages(openid_url_or_login, :limit => 10, :app =>'science') - zwraca 10 ostatnich wiadomosci wyslanych w ramach portalu science ---------------------------------------------------------------------------------------------- ---->MedpassResourceApi::Base.get_user_read_messages(openid_url_or_login, options ={}) - jak wyżej tylko zwraca wiadomości oznaczone jako przeczytane ----------------------------------------------------------------------------------------------- ---->MedpassResourceApi::Base.get_user_unread_messages(openid_url_or_login, options ={}) - jak wyżej tylko zwraca wiadomości oznaczone jako nieprzeczytane ----------------------------------------------------------------------------------------------- Zakładanie konta MedpassResourceApi::Base.register_user(group_id, hash_of_args, portal_name = nil) group_id => group_id z medpass czyli np zeby zalozyc konto niezwiazane z medycyna trzeba: przekazac 1 hash_of_args => argumenty usera przekazane jako hasz portal_name => mozemy przekazac portal name - wtedy jesli bedzie wysłany mail do usera pojawi sie tam ta nazwa w przeciwnym razie bedzie to medpass.pl Przyklad: MedpassResourceApi::Base.register_user(1, {:login =>"fluffy", :email =>"fluffy@wp.pl"}, "evra.pl") Minimalne argumenty to : login i email -> wtedy na podany email wysylane jest wygenerowane haslo i login Inny przyklad: MedpassResourceApi::Base.register_user(3, {:login =>'kazimierz.wichura',:password =>'wkaziu', :email =>"kazek@gmail.com", :first_name =>"Kazimierz", :last_name =>"Wichura" }) Generalnie klucze hasza atrybutow powinny byc zgodne z nazwa pola w bazie (tabelka users, personal_profiles, specialtiy_profiles - w przypadku lekarza) MedpassResourceApi::Base.register_doctor(arguments_hash, portal_name = nil) - analogicznie jak wyzej tylko nie przekazujesz w pierwszym arg funkcji grupy bo jest ona z automatu ustawiona na 2 - czyli lekarz. Dodatkowo w argumentach mozemy przekazywac argumenty ze speciality profile - tutaj :pwz - jest WYMAGANY!!! Powyzsze funkcje zwracaja albo MedpassResourceApi::Result - z userem Albo MedpassResourceApi::ErrorResult - w przypadku bledow walidacji konta ErrorResult - ma nastepujace metody: errors - zwraca hasza wszystkich bledow typu :pole => tablica bledow errors_on(:pole) - zwraca bledy tylko na dane pole first_error_on(:pole) - zwraca pierwszy napotkany blad dotyczaca pola :pole ---->MedpassResourceApi::Base.get_user_sent_messages(openid_url_or_login, options ={}) - jak wyżej ale zwraca wiadomości wysłane W przypadku wiadomości mamy tez metode ---->ActiveResource::Base.get_user_messages(openid_url_or_login, options ={}) - jak wyzej z tym ze mamy dodatkowa opcje: scope ->(:read, :sent, :received ), np: ---->ActiveResource::Base.get_user_messages(openid_url_or_login, :scope => :unread, :app =>'science', :limit =>10) 4) Wartości zwracane: Metody zwracają obiekt typu MedpassResourceApi::Result. Jego atrybuty dostepne są po kropce, np: ---->@profile = MedpassResourceApi::Base.get_user_profile(openid_url_or_login) ---->@profile.display_name W przypadku odwołania się do nieistniejącego atrybutu - nie jest zwracany bład a jedynie string "brak", np: ---->@profile.ulubiony_drink => "brak" Metody mogą zwrócić row niez obiekt typu MedpassResourceApi::NilResult - w przypadku braku wyników do zwrócenia, lub tablicę obiketow MedpassResourceApi::Result - dla metod zwracających kolekcje W przypadku blednej konfiguracji api key podnoszony jest wyjątek: ActiveResource::ForbiddenAccess 5) Todo - bedzie dodane keszowanie memcache
voytee/medpass_resource_api
Restful API for getting medpass 2.0 resources (currently only available for Activeweb Company projects)
Ruby