|
Tämä sivusto paketoi yhteen SerAPI-projektin kohteen potilaslista/ateriatilaus esimerkkitoteutukset (asiakas- ja palvelutoteutus). Toteutusten tarkoituksena on esitellä kohteessa määritettyä toiminnallisuutta ja siinä hyödynnettyä tietosisältöä, eikä toimia varsinaisena teknisenä ohjenuorana, minkä pohjalta tuotantojärjestelmissä toimivia potilasjärjestelmiä tulisi rakentaa. Käytännössä esimerkiksi potilaslista-rajapinnan palvelutoteutus tulisi rakentaa potilasydinjärjestelmän tai muun vastaavan potilastietoa tarjoavan tietokannan päälle. Tämä esimerkkipalveluntoteutus on yhteydessä ainoastaan omaan sisäänrakennettuun tietokantaansa, josta ei ole yhteyksiä muualle.
Esimerkkitoteutukset ovat rakennettu SerAPI-hankkeessa kehitetyn potilaslista-kohteen WSDL-kuvauksen avulla, johon liittyy ateriatilaus-kohteen tietosisältöä vastaava XML-skeema. WSDL siis määrää esimerkkitoteutuksen kutsurajapinnan ja yleiset sisällön SOAP-kyselyille ja -vastauksille, ja erillinen ateriatilaus-skeema tarkemman ateriatilaukseen liittyvän tietosisällön (esimerkiksi ruokavalion). WSDL-tiedosto myös sisältää SOAP-päätepisteen, jossa esimerkkipalvelutoteutus ottaa vastaan palvelukutsuja
Esimerkkitoteutus pohjautuu seuraaviin määrityksiin:Asiakastoteutuksella kyetään tuottamaan ja suorittamaan palvelupyyntöjä sekä tarkastelemaan niille palvelutoteutuksen tuottamia vasteita. Asiakaspäähän on myös toteutettu mahdollisuus tarkastella toiminnallisuuden tuottamisessa käytettyjä varsinaisia SOAP-viestejä. Esimerkkiasiakastoteutus hyödyntää oletuksena alempana kuvattua esimerkkipalvelutoteutusta.
Asiakastoteutus on saatavilla kahtena versiona: asennuspaketoituna, ajettavana versiona sekä sovellusprojektina, jossa mukana tulee toteutuksen lähdekoodi (C#-toteutus, vaatii Visual Studio.NET 2005-asennuksen). Molemmille toteutuksille on saatavilla yhteinen käyttö- ja asennusohjeistus.
Ladattavat esimerkkiasiakastoteutuksen tiedostot:
Palvelun toteutus on rakennettu itsenäisen SQL-tietokannan päälle. Seuraava kaavio sisältää toteutuksen tietokantakuvauksen, ja samalla siten myös esittää toteutuksen rajapintojen tietosisällön.

Esimerkkitoteutusta käyttävä asiakassovellus voidaan luoda edellä mainitusta WSDL-kuvauksesta ja siihen liittyvistä skeematiedostoista.
Tässä kappaleessa kuvataan esimerkkitoteutusten tuottamia ja ymmärtämiä SOAP-sanomia ja niiden vastaussanomia.
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<queryPatients xmlns="urn:serapi:PatientList">
<generalQueryParameters>
<department>
<id>701</id>
<idSystem>1.2.246.10.2458998</idSystem>
</department>
<startDate>2007-05-30</startDate>
<endDate>2007-05-30</endDate>
<extensionId>serapi.1</extensionId>
</generalQueryParameters>
<ns1:patientListQueryExtension xmlns:ns1="urn:serapi:PatientListExtension">
<ns1:patientStatus>asBooked</ns1:patientStatus>
</ns1:patientListQueryExtension>
</queryPatients>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<queryPatientsResponse xmlns="urn:serapi:PatientList">
<foundPatient>
<generalPatientInformation>
<patient>
<id>030488</id>
<idSystem>1.2.237.21</idSystem>
</patient>
<lastName>Thunder</lastName>
<givenNames>Dermot</givenNames>
<personId>030488-800Y</personId>
<birthDate>1974-04-03</birthDate>
</generalPatientInformation>
<ns1:patientListExtension xmlns:ns1="urn:serapi:PatientListExtension">
<ns1:asBooked>
<ns1:department>
<ns1:id>701</ns1:id>
<ns1:idSystem>1.2.246.10.2458998</ns1:idSystem>
</ns1:department>
<ns1:bookedDate>2007-05-30</ns1:bookedDate>
</ns1:asBooked>
</ns1:patientListExtension>
</foundPatient>
<foundPatient>
<generalPatientInformation>
<patient>
<id>110645</id>
<idSystem>1.2.237.21</idSystem>
</patient>
<lastName>Le Mans</lastName>
<givenNames>Jim Johnny</givenNames>
<personId>110645-600D</personId>
<birthDate>1974-06-11</birthDate>
</generalPatientInformation>
<ns1:patientListExtension xmlns:ns1="urn:serapi:PatientListExtension">
<ns1:asBooked>
<ns1:department>
<ns1:id>701</ns1:id>
<ns1:idSystem>1.2.246.10.2458998</ns1:idSystem>
</ns1:department>
<ns1:bookedDate>2007-05-30</ns1:bookedDate>
</ns1:asBooked>
</ns1:patientListExtension>
</foundPatient>
</queryPatientsResponse>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getPatientInfo xmlns="urn:serapi:PatientList">
<generalQueryParameters>
<patient>
<id>030488</id>
<idSystem>1.2.237.21</idSystem>
</patient>
<startDate>2007-05-30</startDate>
<endDate>2007-05-30</endDate>
<extensionId>serapi.1</extensionId>
</generalQueryParameters>
</getPatientInfo>
</soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" encoding="utf-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<getPatientInfoResponse xmlns="urn:serapi:PatientList">
<patientInformation>
<patient>
<id>030488</id>
<idSystem>1.2.237.21</idSystem>
</patient>
<ns1:patientInfoExtension xmlns:ns1="urn:serapi:PatientListExtension">
<ns1:dietaryInformation>
<ns1:diet>
<ns1:code>N</ns1:code>
<ns1:codeSystem>1.2.246.10.2458998</ns1:codeSystem>
<ns1:name>Normaali ruokavalio</ns1:name>
</ns1:diet>
<ns1:primaryDiet>true</ns1:primaryDiet>
<ns1:texture>
<ns1:code>K</ns1:code>
<ns1:codeSystem>1.2.246.10.2458998</ns1:codeSystem>
<ns1:name>Kiinteä</ns1:name>
</ns1:texture>
</ns1:dietaryInformation>
</ns1:patientInfoExtension>
</patientInformation>
</getPatientInfoResponse>
</soapenv:Body>
</soapenv:Envelope>