1 / 12

Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas) .NET-palvelutoteutus: CoreServiceDemo

Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas) .NET-palvelutoteutus: CoreServiceDemo. PlugIT-loppuseminaari 31.8.2004 Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat Heli Mäki, HIS-tutkimusyksikkö / Kuopion yliopisto. Toteutuksesta. Sovelluskehitin: MS Visual Studio .NET 2003

kirk
Download Presentation

Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas) .NET-palvelutoteutus: CoreServiceDemo

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Ydinpalveluiden (käyttäjä, käyttöoikeus, potilas) .NET-palvelutoteutus:CoreServiceDemo PlugIT-loppuseminaari 31.8.2004 Koulutustyöpaja 1: Avoimet ohjelmistorajapinnat Heli Mäki, HIS-tutkimusyksikkö / Kuopion yliopisto

  2. Toteutuksesta • Sovelluskehitin: MS Visual Studio .NET 2003 • Sovellustyyppi: ASP.NET Web Application • Ohjelmointikieli: C# • Tietokanta: MS Access ODBC-tietokantarajapinta • Rajapinta  luokka • Operaatio  metodi

  3. Luokat • CoreServiceDemo.aspx • Global.asax • AuthenticateUser • AuthorizationAccess • UserIdentifyProfile • UserProfileAccess • PatientIdentifyProfile • PatientProfileAccess • Checker • DatabaseConnector sovelluskehittimen automaattisesti generoimat luokat rajapinnat toteuttavat luokat apuluokat

  4. CoreServiceDemo.aspx-luokka • Sovelluskehittimen automaattisesti generoima • Nimen alkuosa sama kuin projektille annettu nimi • Toteuttaa sovelluksen käyttöliittymän (Web Forms page) • Ydinpalvelu ei tarvitse graafista käyttöliittymää, joten luokkaan ei tarvitse lisätä mitään toiminnallisuutta.

  5. Global.asax-luokka • Sovelluskehittimen automaattisesti generoima • Reagoi sovellustason tapahtumiin • Sisältää valmiiksi metodit: • Application_Start • Session_Start • Application_BeginRequest (CoreServiseDemo:ssa toteutusta vain tähän) • Application_EndRequest • Application_AuthenticateRequest • Application_Error • Session_End • Application_End • Lisäksi erilliseen metodiin on toteutettu if-else-rakenne, jossa luodaan ilmentymä kutsutun rajapinnan toteuttavasta luokasta sekä kutsutaan operaation toteuttavaa metodia

  6. Tietokanta • CoreDemoKanta-tietokannan tietokantataulut:

  7. Esimerkki: CoreServiceDemoPatientProfileAccess GetProfile (1/5) • palvelupyyntö: <?xml version="1.0" encoding="UTF-8"?> <request xmlns="urn:plugit:CommonServices"> <interface>PatientProfileAccess</interface> <method>GetProfile</method> <param> <coupon>81935272</coupon> <accessProfile id=”111111-111A"> <trait id="sukunimi" /> <trait id="etunimet" /> <trait id=”kotikunta" /> <trait id="N.postitoimipaikka" /> </accessProfile> </param> </request>

  8. Esimerkki: CoreServiceDemoPatientProfileAccess GetProfile (2/5) • Global.asax • Application_BeginRequest • lukee palvelupyynnön (XmlDocument-tyyppiseksi) XML-dokumentiksi kutsumalla metodia streamToXmlDocument • luo tietokantayhteyden (OdbcConnection) • tarkistaa (Checker-luokka) XML-dokumentista, että se sisältää • request-elementin, jolla on lapsielementtejä • interface-elementin, joka sisältää tekstiä • method-elementin, joka sisältää tekstiä • lukee interface- ja method-arvot • kutsuu getResponseXmlDoc-metodia • getResponseXmlDoc • kutsuu interface- ja method-arvojen perusteella PatientProfileAccess-luokan getProfile-metodia

  9. Esimerkki: CoreServiceDemoPatientProfileAccess GetProfile (3/5) • PatientProfileAccess • getProfile • tarkistaa (Checker-luokka) ja lukee XML-dokumentista coupon-elementin sisällön • tarkistaa, että kuponki on varmennettu • tarkistaa (Checker-luokka) XML-dokumentista accessProfile-elementit • muodostaa vastauksen alkuosan • käy läpi XML-dokumentista jokaisen accessProfile-elementin: • lukee profiilin tunnisteen (id-attribuutin arvon) • lukee haettavat ominaisuudet (trait-elementtien id-attribuuttien arvot) • hakee tietokannasta potilaan tiedot profiilin tunnisteella • lisää vastaukseen profile-elementin, jonka id-attribuutin arvoksi luettu profiilin tunniste • lisää profile-elementtiin jokaista luettua ominaisuutta kohti trait-elementin, jonka id-attribuutin arvoksi ominaisuus ja sisällöksi tietokannasta haettu arvo • lisää vastaukseen loppuosan • muuntaa vastauksen XML-dokumentiksi ja palauttaa sen

  10. Esimerkki: CoreServiceDemoPatientProfileAccess GetProfile (4/5) • Global.asax • getResponseXmlDoc • palauttaa getProfile-metodilta saadun vastauksen (XML-dokumentti) • Application_BeginRequest • muuntaa getResponseXmlDoc-metodilta saadun vastauksen merkkijonoksi ja lähettää sen vastauksena palvelupyyntöön

  11. Esimerkki: CoreServiceDemoPatientProfileAccess GetProfile (5/5) • vastaus: <?xml version="1.0" encoding="UTF-8"?> <response xmlns="urn:plugit:CommonServices"> <profile id=”111111-111A"> <trait id="sukunimi">Meikäläinen</trait> <trait id="etunimet">Matti</trait> <trait id=”kotikunta">Kuopio</trait> <trait id="N.postitoimipaikka">Oulu</trait> </profile> </response>

  12. Mistä löytyy? http://www.plugit.fi Rajapinnat  Toteutukset Referenssitoteutukset Käyttäjä-, käyttöoikeus- ja potilas-ydinpalvelut: • NETCommonService • sovellus + dokumentaatio + lähdekoodi (zip)

More Related