Specifikation 1 (114) Tjänstegränssnittsbeskrivning SIL SOAP API 3.1
Specifikation 2 (114) Innehållsförteckning 1. FÖRÄNDRINGSHISTORIK... 5 2. INTRODUKTION... 6 2.1 AVGRÄNSNINGAR... 6 2.2 DATAKÄLLOR I SIL... 6 2.3 TEKNISK LÖSNING... 6 2.4 UTVECKLINGSMILJÖ... 6 2.5 TESTMILJÖ... 6 2.6 DEFINITIONER... 7 3. VIKTIGA FÖRÄNDRINGAR I SIL SOAP API 3.1... 10 3.1 NYA TJÄNSTER OCH OBJEKT... 11 3.2 UTGÅNGNA TJÄNSTER OCH OBJEKT... 11 4. OBJEKTMODELL FÖR LÄKEMEDELSINFORMATION... 13 4.1 TJÄNSTER FÖR ATT SÖKA EFTER LÄKEMEDELSINFORMATION... 14 4.2 NÅGRA EXEMPEL... 14 4.2.1. En enskild läkemedelsprodukt utan parallellimporter: Aspirin... 14 4.2.2. En läkemedelsprodukt med parallellimporter: Stilnoct... 16 4.2.3. En substans som börjar med vissa tecken: Ace... 18 5. TJÄNSTER... 19 5.1 FELHANTERING... 19 5.2 EXEMPEL (OBS! ENDAST EXEMPEL)... 20 5.2.1. Exempel-objekt (OBS! endast exempel)... 20 5.3 ATC-KODER... 21 5.3.1. Atc-objekt... 23 5.3.2. DrugAtcCode-objekt... 23 5.3.3. AtcCodeDrug-objekt... 23 5.4 PARALLELLIMPORTERADE LÄKEMEDEL... 25 5.4.1. Drug-objekt... 30 5.5 LÄKEMEDELSPRODUKTER... 32 5.5.1. DistributedDrug-objekt... 36 5.6 LÄKEMEDELSVAROR... 38 5.6.1. DrugArticle-objekt... 41 5.6.2. TlvExchange-objekt... 44 5.6.3. ExchangePeriod-objekt... 44 5.7 FÖRVARING... 45 5.7.1. Storage-objekt... 45 5.8 LÄKEMEDELSFORMER... 46 5.8.1. DrugForm-objekt... 46 5.8.2. Dosage-objekt... 47 5.9 REFERENSDATATJÄNSTER... 48 5.9.1. DrugClassification-objekt... 55 5.9.2. ControlClass-objekt... 55 5.9.3. RouteOfAdministration-objekt... 56 5.9.4. Prescriber-objekt... 56
Specifikation 3 (114) 5.9.5. ProductType-objekt... 56 5.9.6. Prescription-objekt... 57 5.9.7. StrengthNumericUnit-objekt... 57 5.9.8. OrganizationRole-objekt... 57 5.9.9. ProcStatus-objekt... 58 5.9.10. Country-objekt... 58 5.9.11. DosdispLifeUnit-objekt... 58 5.9.12. PackageTypeInner-objekt... 59 5.9.13. PackCondition-objekt... 59 5.9.14. StorageTemp-objekt... 59 5.9.15. SalesRestriction-objekt... 60 5.9.16. PackSizeNumericUnit-objekt... 60 5.9.17. ShelfLifeUnit-objekt... 60 5.9.18. StorageCondition-objekt... 61 5.9.19. IngredientRole-objekt... 61 5.9.20. QuantityUnit-objekt... 61 5.9.21. AlternativeQuantityUnit-objekt... 62 5.9.22. CompTotWeightVolUnit-objekt... 62 5.9.23. CompRefQuantity-objekt... 62 5.9.24. SilDeviation-objekt... 63 5.10 FASS-TEXTER... 64 5.10.1. FassDoc-objekt... 64 5.11 INTERAKTIONER... 66 5.11.1. DrugInteraction-objekt... 68 5.11.2. ShortInteraction-objekt... 69 5.11.3. InteractionSection-objekt... 69 5.11.4. CompleteInteraction-objekt... 70 5.11.5. InteractingPart-objekt... 70 5.11.6. Reference-objekt... 70 5.12 GRAVIDITETS- OCH AMNINGSVARNINGAR... 71 5.12.1. SILPregnancyLactationWarning-objekt... 74 5.12.2. SourceWarning-objekt... 74 5.12.3. WarningClassification-objekt... 74 5.12.4. JanusInfoLactationDoc-objekt... 75 5.12.5. JanusInfoReference-objekt... 75 5.12.6. JanusInfoPregnancyDoc-objekt... 76 5.12.7. JanusInfoLink-objekt... 76 5.12.8. PregnancyCategoryInfo-objekt UTGÅNGEN (DEPRECATED)... 77 5.12.9. LactationGroupInfo-objekt UTGÅNGEN (DEPRECATED)... 78 5.13 REKOMMENDERADE LÄKEMEDEL... 79 5.13.1. Region-objekt... 84 5.13.2. ListType-objekt... 84 5.13.3. TherapyGroup-objekt... 84 5.13.4. IndicationPath-objekt... 85 5.13.5. Indication-objekt... 85 5.13.6. RecommendedListInfo-objekt... 85 5.13.7. Recommendation-objekt... 86 5.13.8. IdentiferValue-objekt... 87
Specifikation 4 (114) 5.13.9. ShortIndication-objekt... 87 5.13.10. Recommend-objekt UTGÅNGEN (DEPRECATED)... 88 5.13.11. Indic-objekt UTGÅNGEN (DEPRECATED)... 89 5.13.12. RecommendList-objekt UTGÅNGEN (DEPRECATED)... 89 5.14 ICKE LÄKEMEDELSVAROR... 90 5.14.1. NoneDrugArticle-objekt... 91 5.15 UTBYTBARHET... 93 5.15.1. SubstanceGroup-objekt... 96 5.15.2. StrengthGroup-objekt... 96 5.15.3. PharmaceuticalFormGroup-objekt... 96 5.16 INGREDIENSER OCH SUBSTANSER... 97 5.16.1. Substance-objekt... 99 5.16.2. DistributedDrugContent-objekt... 100 5.16.3. Ingredient-objekt... 100 5.17 KORTNOTATIONER... 101 5.18 UTSÄTTNINGSORSAKER... 102 5.18.1. TreatmentWithdrawalReason-objekt... 102 5.19 BIVERKNINGAR... 103 5.19.1. SideEffects-objekt... 105 5.19.2. SideEffect-objekt... 105 5.20 SÖKTJÄNSTER FÖR LÄKEMEDELSIDENTIFIERARE... 106 5.20.1. IdPair-objekt... 107 5.21 TJÄNSTER FÖR SAMLAD LÄKEMEDELSINFORMATION (SUPERTJÄNSTER)... 108 5.21.1. SuperDrug-objekt... 112 5.21.2. SuperDrugArticle-objekt... 112 5.22 VERSIONER... 113 5.22.1. DataVersion-objekt... 113 5.22.2. ApiVersion-objekt... 113
Specifikation 5 (114) 1. Förändringshistorik Dokumentversion Kommentar 7.0.0 (2013-04-30) Första utgåva för beta-release av SIL SOAP API 3.1. 7.0.1 (2013-05-07) Korrigerat villkor för ATC-tjänsterna. Längd på ATC-kod som inparameter var angiven till 8 tecken. Det ska vara och är nu mindre eller lika med 8 tecken. 7.0.2 (2013-09-03) Tagit bort duplicerad dokumentation för InteractionSection-objekt (kapitel 5.11) och gjort smärre förtydliganden i kapitel 5.4 och 5.5. Korrigerade två mindre fel i Pythonexemplen i kapitel 4.2. La till fältet spcupdated i SideEffects-objektet. Rättat några språkliga fel. La till förtydligande om att licensläkemedel alltid ingår i förmånen, även fast prisuppgift saknas. Rättat felaktigt returvärde i tjänsten gettlvexchangesbynplpackidlist. La in information om tjänsterna getfasslactationdocsbynplidlist och getfasspregnancydocsbynplidlist. 7.0.3 (2013-10-08) Korrigerat returvärde i tjänsterna getfasslactationdocsbynplidlist och getfasspregnancydocsbynplidlist till att vara en lista med objekt istället för ett enskilt objekt. 7.0.4 (2013-10-09) Förtydligat dokumentation om och korrigerat exempelinformation för drugclassification- och ControlClass-objekten. 7.0.5 (2014-01-10) Rättat mindre fel i exempelkoden på sidan 18; tjänsten getsubstancesbysubstancename ska bara anropas med en (1) inparameter. 7.0.6 (2014-02-19) Förtydligat dokumentation om attribut i JanusInfoLactationDoc-objekt, speciellt att fältet atccodegroup inte används idag.
Specifikation 6 (114) 2. Introduktion Detta dokument beskriver SIL SOAP API 3.1. Dokumentet vänder sig till systemutvecklare som vill integrera SIL i journalsystem eller andra expert- och stödsystem i vården. 2.1 Avgränsningar Detta dokument beskriver inte hur man installerar eller sköter drift av en SIL-server med SIL SOAP API och tillhörande SIL-databas. För information om det se dokumentet Installation och drift av SIL, Version 3.1, 2012-10-09. 2.2 Datakällor i SIL SIL SOAP API innehåller en mängd read-only tjänster som ger åtkomst till information om läkemedel i Sverige. SIL SOAP API använder internt en databas som populärt kallas för SIL-databasen. Informationen om läkemedel i SIL-databasen kommer i sin tur från ett antal olika källor och importeras till SIL:s centrala kvalitetssäkringsstöd en gång i veckan. Efter att informationen validerats och granskats skapas sedan en ny SIL-databas som publiceras varje vecka på SIL:s FTP-sajt. Källorna som används i SIL 3.1 är VARA (Apotekens Service AB), NSL (Läkemedelsverket) SFINX (SLL/JanusInfo), FASS (LIF) Amning & graviditetsvarningar (LIF/FASS), Amning & Fosterskador (SLL/JanusInfo), Doseringsregistret (SIL), Utsättningsorsaksregistret (SIL). Information i NSL underhålls av Läkemedelsverket, TLV samt läkemedelsföretagen. SIL har endast redaktionellt ansvar för Doseringsregistret och Utsättningsorsaksregistret. VARA används som grundkälla för information om läkemedelsprodukter och förpackningar. Vidare finns i SIL 3.1 också information om biverkningar som extraherats från Läkemedelsverkets produktresuméer. Dessa informationsextraktion är ännu inte helt kvalitetssäkrad och det är inte ännu fastställt hur den redaktionella processen för denna källa ska se ut. Det innebär att dessa tjänster inte ännu är avsedda användas i skarp produktion. De kan dock användas för att experimentera med hur beslutstödsfunktionalitet för biverkningsinformation kan utformas på ett bra sätt. 2.3 Teknisk lösning SIL tillhandahålls via ett SOAP API. API:et är implementerat med Apache Axis/Java och Tomcat. API:ets tjänstelager är implementerat i Java och använder MS SQL server som databas-backend. 2.4 Utvecklingsmiljö För att kunna utveckla mot SIL SOAP API krävs att man utgår från wdsl-filen för SIL SOAP API. Man kan antingen använda wsdl-filen och generera SOAP-klient stubbar för den utvecklingsmiljö och det programmeringspråk som man utvecklar med eller programmera manuellt mot den. wsdl-filen för SIL SOAP API 3.1 kommer man åt på den URL där man gjort sin installation av SIL-servern med SIL-API. Om man inte har en egen installation av SIL-servern kan man använda wsdl-filen som man kommer åt på testservern för SIL SOAP API (se nästa avsnitt). 2.5 Testmiljö För att kunna testa sin integration mot SIL API måste man ha åtkomst till en installation av SIL-servern med SIL SOAP API och en SIL-databas. För initial utveckling och test kan man använda en publikt tillgänglig testserver för SIL SOAP API 3.1:
Specifikation 7 (114) http://sil31.test.silinfo.se:8080/axis_silapi31/services/sildb3?wsdl För att kunna göra kontrollerade tester och systemtester med SIL SOAP API och sitt journalsystem eller beslutsstödsystem bör man givetvis ha en egen installation av SIL-servern med en kontrollerad utgåva av SIL-databasen. 2.6 Definitioner Term Akronym API SOAP SQL Förklaring Application Programming Interface. Programmeringsgränssnitt mot ett program- eller operativsystem. En W3C standard för RPC-baserat API-protokoll. Tidigare stod SOAP för Simple Object Access Protocol. Se: http://www.w3.org/tr/2007/rec-soap12-part1-20070427/ Structured Query Language. Standardiserat frågespråk för kommunikation med relationsdatabaser. Definitioner amningsgrupp (LIF/FASS) amningsriskklass (SLL/JanusInfo) atc-kod biverkning LIF/FASS klassificering av ett läkemedels dokumenterade effekt på dibarn under amningsperioden. Följande amningsgrupper finns: I: Passerar ej över i modersmjölk. II: Passerar över i modersmjölk men risk för påverkan på barnet synes III: osannolik med terapeutiska doser. Passerar över i modersmjölk i sådana mängder att risk för påverkan på barnet föreligger även med terapeutiska doser. IVa: Uppgift saknas om passage över i modersmjölk. IVb: Uppgift om passage över i modersmjölk är otillräcklig för att bedöma risken för barnet. För mer information om dessa se: http://www.fass.se/lif/produktfakta/fakta_lakare_artikel.jsp?articleid=18338 SLL/JanusInfo klassificering av ett läkemedels dokumenterade effekt på dibarn under amnings perioden. Följande riskklasser finns: A: Sannolikt kompatibelt med amning. B: Underlag för bedömning saknas. C: Särskilda överväganden och/eller med förbehåll. D: Amning avrådes. För mer information om dessa se: http://www.janusinfo.se/beslutsstod/lakemedel-amning/ Anatomiskt terapeutiskt kemiskt klassifikationssystem för läkemedel. SIL innehåller endast de ATC-koder för vilka det finns minst en registrerad läkemedelsprodukt hos Läkemedelsverket. Oönskad effekt av ett läkemedel.
Specifikation 8 (114) Term läkemedelsprodukt drugid eumano Fass-text graviditetskategori (LIF/FASS) graviditetsriskklass (SLL/JanusInfo) handelsnamn icke-läkemedelsvara kontrollkod parallellimporterat läkemedel Förklaring I SIL avser termen "läkemedelsprodukt" (DistributedDrug) en hos Läkemedelsverket registrerad läkemedelsprodukt med unikt NPL-id. En läkemedelsprodukt har en unik kombination av handelsnamn, läkemedelsform, styrka och ansvarigt företag. SIL:s id för parallellimporterade läkemedel (Drug). Baseras på NPL-id för originalläkemedelsprodukten. Det europeiska godkännandenummret för en läkemedelsprodukt vilket fastställs av EMA. Beskrivning av läkemedelsprodukter som ges ut av LIF. För varje läkemedelsprodukt baseras texten på den produktresumé (SPC) som registrerats hos Läkemedelsverket då läkemedelsprodukten registrerades och godkändes. LIF/FASS klassificering av ett läkemedels dokumenterade effekt på graviditet vid klinisk användning på människor i rekommenderade terapeutiska doser. Följande gravidtetskategorier finns: A, B, B:1, B:2, B:3, C, D. För mer information om dessa se: http://www.fass.se/lif/produktfakta/fakta_lakare_artikel.jsp?articleid=18338 SLL/JanusInfo klassificering av ett läkemedels dokumenterade effekt på graviditet vid klinisk användning på människor i rekommenderade terapeutiska doser. Följande gravidtetsriskklasser finns: 1: Läkemedlet kan användas under graviditet utan ökad risk för fostret. 2: Det finns viktig information att ta del av om det här läkemedlet under graviditet. 3: Läkemedlet kan eller misstänks kunna medföra betydande risker för fostret vid användning under graviditet. För mer information om dessa se: http://www.janusinfo.se/beslutsstod/lakemedel-och-fosterpaverkan/ Ett läkemedels försäljningsnamn (produktnamn). I SIL avser termen "icke-läkemedelsvara" (NoneDrugArticle) en förskrivningsbar artikel inom förmånen som kan expedieras av apotek men som inte innehåller läkemedel. Exempel: Zetuvit E", 25 styck, sterilt absorbationsförband. Kod som hänvisar till Läkemedelsverkets receptföreskrifter, vilka anger de villkor som föreligger vid förskrivning för att en viss läkemedelsvara t.ex. ett narkotikaklassat läkemedel ska kunna expedieras på apoteken. I SIL avser termen "parallellimporterat läkemedel" (Drug) den gemensamma information som ska gälla för alla läkemedelsprodukter som är parallellimporter till en given läkemedelsprodukt. Parallellimporterade läkemedelsprodukter har typiskt samma unika kombination av handelsnamn, läkemedelsform och styrka men olika ansvariga företag. Ibland kan dock även handelsnamnet skilja sig inom en grupp av parallelimporterade läkemedelsprodukter. Parallellimporterade läkemedel identifieras i SIL med drugid.
Specifikation 9 (114) Term läkemedelsform läkemedelsvara nollrekommendation semano Förklaring Utformning av bruksfärdigt läkemedel. Läkemedelsformer för invärtes bruk är t.ex. tabletter, dragéer, kapslar och mixturer; för utvärtes bruk t.ex. salvor, krämer, liniment och puder. Beredningsform är en synonym. I SIL avser termen "läkemedelsvara" (DrugArticle) en hos Läkemedelsverket registrerad läkemedelsförpackning med unikt NPL-packid. Den hör till ett och endast ett distribuerat läkemedel. En lista med rekommenderade läkemedelsvaror kan innehålla ickerekommendationer i betydelsen rekommenderas inte, avstås. Nollrekommendationer kombineras vanligtvis med en hänvisningsrekommendation till en alternativ nivå 7 ATC-kod. Ett läkemedels svenska godkännandenummer. Fastställs av Läkemedelsverket. Datatyper int string boolean float drugform<string> drugids<string [ ]> Anger ett heltal. Anger en textsträng. Anger ett sant eller falskt värde (true/false). Anger ett decimaltal Anger en parameter med namn drugform av datatypen string Anger en parameter med namn drugids innehållande en lista av datatypen string
Specifikation 10 (114) 3. Viktiga förändringar i SIL SOAP API 3.1 SIL SOAP API 3.1 är tekniskt bakåtkompatibelt med SIL SOAP API 3.0. Nyheter i SIL-API 3.1 är: Sex (6) nya tjänster för att komma åt information om amnings- och graviditetsvarningar. Detta beror bl.a. på att SIL nu ger åtkomst till två olika källor med denna information. Dels Amnings & Graviditetsvarningar från LIF/FASS och dels Varningar om Amnings- och Fosterskador från JanusInfo/SLL. Tre (3) nya substanstjänster för sökning av substansinformation. Två är för sökning av substanser baserat på nplsubstanceid eller substansnamn och en är för att hämta information om en läkemedelsprodukts substansinnehåll med möjlighet till filtrering så att enbart relevanta modersubstanser returneras. Sex (6) nya tjänster med information om rekommenderade läkemedel. Tre (3) nya tjänster med information om biverkningar. En (1) ny tjänst som ger möjlighet att hämta DrugArticle-, DistributedDrug-, Drug- och Atcobjekt för en (eller flera) förpackningar med ett anrop. De tekniska förändringarna gentemot SIL-API 3.0 är: En del nya tjänster och objekt har tillkommit. Ett antal tjänster har markerats som utgångna (deprecated). Dessa kommer att tas bort i nästa icke-bakåtkompatibla release av SIL SOAP API. Tjänster som markerats som utgångna ska man inte använda i nyutveckling och man ska i förvaltning av existerande system som använder dessa tjänster planera och genomföra anpassningar av sina system till att använda andra tjänster i SIL SOAP API. I SIL-API 3.0 infördes tjänster för att komma åt information om fler läkemedelsprodukttyper än i tidigare versioner av SIL. Då infördes också en gruppering av läkemedelsprodukttyper. Denna gruppering styr vilken information som returneras av en del tjänster i SIL-API. Produkttypsgrupperna är idag: APPROVED. Omfattar produkttyperna MEP, ALL, VBL, RAP, NLM, VUM och NIN. NON_APPROVED. Omfattar produktyperna APL och LIC. TRADITIONAL. Omfattar produkttypen TVB. Tjänsterna för läkemedel som ingår i gruppen APPROVED fungerar som i SIL SOAP API 2.9. Nya tjänster har tillkommit för läkemedel i grupperna NON_APPROVED och TRADITIONAL. Grupper utöver gruppen APPROVED kan komma att ändras i framtiden och integrerande system måste ta det i beaktande vid implementation.
Specifikation 11 (114) 3.1 Nya tjänster och objekt Här listas de nya tjänsterna och objekten. Läsaren hänvisas till relevant kapitel i dokumentet för mer ingående information om varje tjänst och objekt. Det finns sex nya tjänster för att hämta information om amnings- och graviditetsvarningar: getsilpregnancylactationwarningsbynplidlist () returnerar SILPregnancyLactationWarning-objekt. getwarningclassificationsbycode () returnerar WarningClassification-objekt. getjanusinfolactationdocsbynplidlist () returnerar JanusInfoLactationDoc-objekt. getjanusinfopregnancydocsbynplidlist () returnerar JanusInfoPregnancyDoc-objekt. getfasslactationdocsbynplidlist () returnerar FassLactationDoc-objekt. getfasspregnancydocsbynplidlist () returnerar FassPregnancyDoc-objekt. Det finns tre nya substansrelaterade tjänster: getsubstancesbynplsubstanceidlist () returnerar Substance-objekt. getsubstancesbysubstancename () returnerar Substance-objekt. getdistributeddrugcontentsbynplidlistfiltered () returnerar DistributedDrugContentobjekt. Det finns sex nya tjänster med information om rekommenderade läkemedel: gettherapygroups () returnerar TherapyGroup-objekt. getindicationpaths () returnerar IndicationPath-objekt. getindicationpath () returnerar IndicationPath-objekt. getrecommendationsbytherapygroupindicationname () returnerar Recommendationobjekt. getrecommendationsbynplpackidlist () returnerar Recommendation-objekt. getrecommendedlistinfosbyregionid () returnerar RecommendedListInfo-objekt. Det finns tre nya tjänster med information om biverkningar: getsideeffectsbynplidlist () returnerar SideEffects-objekt. getsideeffectfrequencies () returnerar String-objekt. getsideeffectsocs () returnerar String-objekt. Det finns en ny Super-tjänst som ger möjlighet att hämta DrugArticle-, DistributedDrug-, Drug- och Atcobjekt för en (eller flera) förpackningar med ett anrop: getsuperdrugarticlesbynplpackidlist () returnerar SuperDrugArticle-objekt. 3.2 Utgångna tjänster och objekt Följande 7 tjänster och tillhörande objekt har markerats som utgågna (deprecated): getpregnancycategoryinfosbycategory () getpregnancycategoryinfos () getlactationgroupinfosbygroup () getlactationgroupinfos () getrecommendlistsbyregionid ()
Specifikation 12 (114) getrecommendsbynplpackidlistregionidlisttypes () getrecommendsbytherapygroupindicationnameregionidlisttypes ()
Specifikation 13 (114) 4. Objektmodell för läkemedelsinformation SIL SOAP API tillhandahåller tjänster för att komma åt information om förskrivningsbara läkemedel och icke-läkemedelsvaror inom förmånen. Denna information är tillhandahålls via ett antal tjänster och informationsobjekt som var och en representerar olika förskrivnings- och läkemedelsrelaterade begrepp. För läkemedelsinformation finns tre viktiga objekt; Drug (parallellimporterat läkemedel), DistributedDrug (läkemedelsprodukt) och DrugArticle (läkemedelsvara). Ett DistributedDrug-objekt representerar en hos Läkemedelsverket registrerad läkemedelsprodukt med unikt NPL-id. Ett DistributedDrug-objekt har en unik kombination av handelsnamn, läkemedelsform, styrka och ansvarigt företag. Ett Drug-objekt representerar ett parallellimporterat läkemedel. Drug-objekt innehåller den gemensamma information som ska gälla för alla läkemedelsprodukter som är parallellimporter till en given läkemedelsprodukt. Det finns således alltid ett Drug-objekt även för sådana läkemedelsprodukter som saknar faktiska parallellimporter. Alla läkemedelsprodukter som ingår i en grupp parallellimporter har vanligtvis samma unika kombination av handelsnamn, läkemedelsform och styrka men olika ansvariga företag. Ibland kan dock handelsnamnet skilja sig inom en grupp av parallellimporterade läkemedelsprodukter. I detta fall har Drug-objektet ett handelsnamn som består av handelsnamnet på originalläkemedelsprodukten följt av tecknet '*'. Drug-objekt innehåller vidare gemensam läkemedelsinformation som gäller för alla läkemedelsprodukterna inom en grupp av parallellimporter. Ett DrugArticle-objekt representerar en hos Läkemedelsverket registrerad läkemedelsförpackning med unikt NPL-packid. Den hör till ett och endast ett distribuerat läkemedel. Nedan ges en översiktlig bild av hierarkin för de grundläggande läkemedelsobjekten Drug, DistributedDrug och DrugArticle samt dess tillhörande, huvudsakliga identifierare. Drug (Läkemedel) Drug (Läkemedel) identifierare: drugid identifierare: drugid En till flera Distributed Drug (Distribuerat Distributed läkemedel) Drug (Distribuerat läkemedel) identifierare: nplid identifierare: nplid Distributed Drug Distributed Drug Distributed Drug Distributed Drug En till flera DrugArticle (Läkemedelsvara) DrugArticle (Läkemedelsvara) identifierare: nplpackid identifierare: nplpackid DrugArticle DrugArticle DrugArticle DrugArticle
Specifikation 14 (114) 4.1 Tjänster för att söka efter läkemedelsinformation Sökning på läkemedelsinformation i form av Drug-, DistributedDrug- och DrugArticle-objekt kan göras på flera sätt. Det finns tjänster för att söka efter läkemedelsinformation baserat på bla. handelsnamn, NPL-id, NPL-packid, ATC text eller kod, NPL substansgruppsnamn, NPL substansnamn samt NPL substansid. 4.2 Några exempel I följande exempel presenteras hur man kan söka efter Drug-objekt (läkemedel) och DistributedDrugobjekt (distribuerade läkemedel) och hur informationen som returneras ser ut beroende på om det finns parallellimporter eller inte. Syftet med exemplen är att dels visa på hur man kan söka efter information och dels visa hur Drug-objekt förhåller sig till DistributedDrug-objekt för ett par olika fall. I exemplen nedan används programmeringsspråket Python och exemplen har gjorts som interaktiva sessioner med Pythons standardinterpretator 1. För att snabbt komma igång med SIL SOAP-API kan man använda SIL:s testserver 2 och Python-modulen suds 3. Med Python och suds kan man interaktivt ansluta sig till SIL:s testserver med SIL SOAP API så här (se till att använda rätt URL!): >>> import suds >>> url = "http://88.131.45.134:8080/axis_silapi3/services/sildb3?wsdl" >>> sil = suds.client.client (url) För att se tillgängliga tjänster och datatyper i SIL SOAP-API skriv: >>> print sil För att anropa en specifik tjänst som tex. getdistributeddrugsbydistributeddrugtradename kan man skriva: >>> ddrugs = sil.service.getdistributeddrugsbydistributeddrugtradename ("Aspirin", True, -1) Resultatet av anropet är nu tillgängligt i variabeln ddrugs. För att presentera resultat av anrop i exemplen nedan används Pythons standardfunktion print. 4.2.1. En enskild läkemedelsprodukt utan parallellimporter: Aspirin I detta exempel söker vi efter information om "Aspirin". Det finns endast en läkemedelsprodukt med handelsnamnet "Aspirin" och det finns inga parallellimporter för den läkemedelsprodukten. Således ska det finnas ett DistributedDrug-objekt och ett Drug-Objekt med information om "Aspirin". Sökning efter läkemedelsprodukten "Aspirin" kan göras med följande tjänst för DistributedDrugobjekt: >>> ddrugs = sil.service.getdistributeddrugsbydistributeddrugtradename ("Aspirin", True, -1) Den andra parametern med värdet True anger att vi enbart vill ha idag tillgängliga läkemedelsprodukter och den tredje parametern med värdet -1 anger att vi att vi inte vill begränsa vår sökning till någon regional rekommenderad läkemedelslista. Antalet returnerade DistributedDrug-objekt fås genom att skriva: 1 Exemplen har körts i Python 2.6. 2 Se http://www.silinfo.se för information om hur man kommer åt SIL testservrar. 3 Se https://fedorahosted.org/suds/ för information om suds.
Specifikation 15 (114) >>> len (ddrugs) 1 Således returnerades bara en läkemedelsprodukt med handelsnamnet "Aspirin", vilket ju var förväntat. Vi kan se på information om denna enda läkemedelsprodukt genom att skriva: >>> print ddrugs[0] (DistributedDrug){ approvaldate = "1935-01-31" availabledate = None availableflag = "Y" containslactosflag = "N" containslatexflag = "N" dosdispflag = "N" dosdisplife = 0 dosdisplifeunit = "Månader" drugformcode = "TABLET" drugformtextsv = "Tablett" drugid = "19350131000010" exportedfromcountrycode = "-" hasrecommendedarticle = True interchangeableflag = "N" localrepresentative = None marketingauthholder = "Bayer AB" nplid = "19350131000010" parallelimportdeviation = None parimporiginalid = "19350131000010" procstatusindcode = "-" productnoteind = None salesstoppedflag = "N" sildeviationcode = "-" strengthnumeric = 500.0 strengthnumericunit = "mg" strengthtext = "500 mg" tradename = "Aspirin " withdrawaldate = None } Även om inte just denna läkemedelsprodukt har några parallellimporter finns det alltså ett Drug-objekt vilket identifieras av fältet drugid. Detta Drug-objekt representerar alltså den gemensamma information som ska vara samma för alla parallellimporter till "Aspirin" om de funnits! Vi kan hämta denna information i form av ett Drug-objekt genom att använda det drugid som är angivet i DistributedDrug-objektet ovan och använda tjänsten getdrugbydrugid: >>> drug = sil.service.getdrugbydrugid ("19350131000010", True, -1) >>> print drug (Drug){ controlclasscode = "0" drugclassificationcode = "1" drugformcode = "TABLET" drugformtextsv = "Tablett" drugid = "19350131000010"
Specifikation 16 (114) hasrecommendedarticle = True interactionstatus = 1 interchangeableflag = "N" lactationgroup = "II" pharmaceuticalformgroupid = 0 pharmaceuticalformgroupname = "Ospecificerad" pregnancycategory = "C" prescribercodes[] = "1", "2", "3", "4", "6", prescriptioncode = "0" producttypecode = "MEP" routeofadministrationcodes[] = "-", sildeviationcode = "-" strengthgroupid = 0 strengthgroupname = "Ospecificerad" strengthnumeric = 500.0 strengthnumericunit = "mg" strengthtext = "500 mg" substancegroupid = 0 substancegroupname = "Ospecificerad" tradename = "Aspirin" withdrawaldate = None } För att verifiera att det inte finns några parallellimporterade läkemedelsprodukter kan vi använda tjänsten getdistributeddrugsbydrugid: >>> ddrugs = sil.service.getdistributeddrugsbydrugid ("19350131000010", True, -1) >>> len (ddrugs) 1 Således finns det alltid ett Drug-objekt för varje läkemedelsprodukt även om den inte har några parallellimporter. Notera också att Drug-objekt innehåller information om läkemedel som inte finns tillgängligt i DistributedDrug-objekt. 4.2.2. En läkemedelsprodukt med parallellimporter: Stilnoct I detta exempel söker vi efter information om läkemedelsprodukter med handelsnamnet "Stilnoct". Det finns två olika grupper av parallellimporterade läkemedelsprodukter som innehåller handelsnamnet "Stilnoct". Således ska det finnas två Drug-Objekt med information om "Stilnoct". Sökning efter information om parallellimporterade läkemedelsprodukter med handelsnamnet "Stilnoct" görs med följande tjänst för Drug-objekt: >>> drugs = sil.service.getdrugsbydistributeddrugtradename ("Stilnoct", True, -1) >>> len (drugs) 2
Specifikation 17 (114) Således ser vi att det finns två Drug-objekt som returneras. Det innebär som väntat att det finns två olika grupper med parallellimporterade läkemedelsprodukter som båda innehåller "Stilnoct" i handelsnamnet. För att kunna jämföra dessa två Drug-objekt skriver vi först en liten hjälpfunktion för att skriva ut information om drug-id, handelsnamn, läkemedelsform samt styrka för ett Drug-objekt: >>> def print_drug (drug):... print "%s %s, %s [drugid: %s]" % \... (drug['tradename'], \... drug['strengthtext'], \... drug['drugformtextsv'], \... drug['drugid'])... Vi använder hjälpfunktionen för att titta på handelsnamn, styrka, läkemedelsform samt drug-id för de returnerade Drug-objekten: >>> for x in drugs: print_drug (x)... Stilnoct 5 mg, Tablett (drugid: 19940128000057) Stilnoct* 10 mg, Tablett (drugid: 19940128000064) Det sista Drug-objektet har en avslutande asterisk '*' i handelsnamnet. Det innebär att a) det finns minst en läkemedelsprodukt i den gruppen av parallellimporterade läkemedelsprodukter som inte har "Stilnoct" som handelsnamn och b) originalläkemedelsprodukten har handelsnamnet "Stilnoct". Vi kan nu hämta alla läkemedelsprodukter som ingår i den gruppen av paralellimporter med tjänsten: >>> ddrugs = sil.service.getdistributeddrugsbydrugid ("19940128000064", True, -1) >>> len (ddrugs) 1 Vi upptäcker då att det bara ingår en läkemedelsprodukt i denna grupp av parallellimporterade läkemedel! Detta beror på att vi har angivit värdet True på den andra parametern i anropet. Det anger att vi bara vill se läkemedelsprodukter för vilka det finns minst en tillgänglig läkemedelsförpackning. Om vi istället vill se alla läkemedelsprodukter som ingår i denna grupp av parallellimporter, oavsett om de har tillgängliga läkemedelsförpackningar eller inte, ska vi anropa med värdet False: >>> ddrugs = sil.service.getdistributeddrugsbydrugid ("19940128000064", False, -1) >>> len (ddrugs) 10 För att kunna jämföra dessa tio DistributedDrug-objekt skriver vi först en liten hjälpfunktion för att skriva ut information om handelsnamn, styrka, läkemedelsform, NPL-id, tillgänglighet samt ansvarigt företag (MAH) för ett DistributedDrug-objekt: >>> def print_ddrug (ddrug):... print "%s %s, %s, [nplid: %s, (%s), MAH: %s]" % \... (ddrug['tradename'], \... ddrug['strengthtext'], \... ddrug['drugformtextsv'], \... ddrug['nplid'], \... ddrug['availableflag'], \... ddrug['marketingauthholder'])...
Specifikation 18 (114) Om vi använder denna funktion för att skriva ut information om alla tio läkemedelsprodukterna ovan får vi: >>> for x in ddrugs: print_ddrug (x)... Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19940128000064, (Y), MAH: sanofi-aventis AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19990813000138, (N), MAH: Paranova Läkemedel AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19990827000124, (N), MAH: Paranova Läkemedel AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19990910000048, (N), MAH: Paranova Läkemedel AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19990910000178, (N), MAH: Orifarm AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 19991104000257, (N), MAH: Orifarm AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 20020614000030, (N), MAH: Paranova Läkemedel AB] Stilnoct 10 mg, Filmdragerad tablett, [nplid: 20020809000043, (N), MAH: Orifarm AB] Stilnox 10 mg, Filmdragerad tablett, [nplid: 20020614000054, (N), MAH: Medartuum AB] Stilnox 10 mg, Filmdragerad tablett, [nplid: 20020719000034, (N), MAH: Medartuum AB] Då ser vi att det bara är en av alla läkemedelsprodukterna som är tillgänglig (vilket indikeras med ett 'Y' inom parentes), dvs. har minst en tillgänglig läkemedelsförpackning. Vi ser också att det finns två läkemedelsprodukter som har ett annat handelsnamn än originalläkemedelsprodukten, nämligen "Stilnox". Det är därför som Drug-objektet som representerar denna grupp av parallellimporter har en asterisk '*' i slutet av handelsnamnet. Den uppmärksamme läsaren ser att det finns tre parallellimporterade läkemedelsprodukter i listan ovan som har samma handelsnamn, styrka, läkemedelsform och ansvarigt företag (NPL-id: 19990813000138, 19990827000124 och 19990910000048). Det som skiljer dem är att de importeras från olika länder (Spanien, Portugal och Grekland). Informationen om vilket land läkemedelsprodukten importeras från finns tillgänglig i fältet exportedfromcountrycode i respektive DistributedDrugobjekt. 4.2.3. En substans som börjar med vissa tecken: Ace För att anropa en specifik tjänst som t.ex. getsubstancesbysubstancename kan man för att få alla substanser med substansnamn som börjar med "ace" skriva: >>> subs = sil.service.getsubstancesbysubstancename ("ace%") Resultatet av anropet är nu tillgängligt i variabeln subs. För att presentera resultat av anrop i kan man använda Pythons standardfunktion print: >>> print subs [(Substance){ casno = None children[] = <empty> nplsubstanceid = "IDE4POFKUB2F9VERT1" parents[] = <empty> substancename = "aceklofenak"
Specifikation 19 (114) 5. Tjänster Detta avsnitt beskriver samtliga tjänster som ingår i SIL SOAP API. Tjänsterna och den information de returnerar är beroende av strukturen och informationsinnehållet i de datakällor som SIL använder. I designen av API:et har vi försökt att i möjligaste mån ta höjd för framtida förändringar i datakällorna för att åstadkomma ett stabilt tjänstegränssnitt. Notera att för de fall där en sträng kan användas som inparameter kan man i vissa fall använda SQLspecifik syntax. Ett exempel på detta är wildcards, som innebär att man kan ange % -tecken som del av strängen (%alv% söker oberoende av versaler och gemener efter sträng som innehåller texten alv ). En del tjänster tillåter dock inte wildcards. Det framgår då i kommentarfältet för tjänsten. 5.1 Felhantering Felhanteringen i SIL-gränssnittet är implementerad genom att tjänsterna kastar SILExceptions vid felsituationer. Ett SilException består av en kod (errorcode) samt en förklarande text (errormsg). Följande felkoder (errorcode) finns för tillfället: errorcode errormsg 100 Invalid parameter 800 Service returns too many elements 900 Server received an internal error När felsituationer uppstår skickar webbservern AxisFault exceptions till klienten med en <detail> tag, som bl.a. innehåller detta SilException, se nedan. Ur detta xml-meddelande kan sedan errorcode och errormsg erhållas genom traditionell xml-parsning. <detail> <sil.main.silexception xsi:type="ns1:silexception" xmlns:ns1="urn:xml-soap-sil"> <errorcode xsi:type="xsd:int">100</errorcode> <errormsg xsi:type="xsd:string"> Invalid parameter </errormsg> </sil.main.silexception> </detail>
Beskrivning 20 (114) 5.2 Exempel (OBS! endast exempel) I detta kapitel ges en beskrivning av den struktur för information om tjänsterna som behandlas i resterande del av dokumentet. Beskrivning av de olika fälten och kolumnerna finns inom parentes. Id Namn SOAP Inparametrar Kommentar 5.2.1 getexampleservice (namn på tjänsten, case-sensitive) Inparametrar Respons Villkor Exempel Returnerar Atc-objekt för angiven Atc-kod. atccode<string> <Atc[ ]> längd = 8 C07AA Wildcard tillåtet (Beskrivning av tjänsten) (inparameterbeskrivning) (returobjektbeskrivning) (fristående exempel på inparameter) (förtydligande beskrivning och begränsningar) 5.2.1. Exempel-objekt (OBS! endast exempel) Objekt som skickas som svar på anrop av tjänsterna där Exempel-objekt returneras. atcexamplecode (attributnamn) <string> (datatyp) 8 (fältlängdbegränsning) Atc-kod (Fältbeskrivning) C07AA (fristående exempel på fälttvärde) atcexample <string> Se 4.8.2 (referens till annan del av dokumentet) Beskrivning av den komplexa Atc-strukturen... Atc-kod kan anta värden mellan...
Beskrivning 21 (114) 5.3 Atc-koder Tjänsterna används för att hämta Atc-kodsinformation. Exempel på en Atc-kod är C08CA02. Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel 5.3.1 getatcsbyatccode Returnerar Atc-objekt för angiven Atckod. atccode <string> <Atc[ ]> längd = 8 C07AA Wildcard tillåtet Responsobjekten är sorterade på atccode i fallande ordning 5.3.2 getatcsbytextsv Returnerar Atc-objekt för angiven beskrivande svensk text. Wildcardsökning rekommenderas. 5.3.3 getatcsbydrugid textsv <string> <Atc[ ]> Beta-1- och beta-2- receptorblockerare Wildcard tillåtet Responsobjekten är sorterade på atccode i fallande ordning Returnerar Atc-objekt för angivet drugid. drugid <string> <Atc[ ]> längd = 14 19380131000010 Responsobjekten är sorterade på atccode i fallande ordning 5.3.4 getatcnarrowersbyatccode Se även 5.3.10 för mappningstjänst av ATC-kod och Läkemedel Returnerar Atc-objekt för nivån under angiven Atc-kod. atccode <string> <Atc[ ]> längd = 8 C07AA Wildcard ej tillåtet Responsobjekten är sorterade på atccode i fallande ordning
Beskrivning 22 (114) Id Namn SOAP Inparametrar Kommentar 5.3.5 getatcwiderbyatccode Inparametrar Respons Villkor Exempel Returnerar Atc-objekt för nivån över angiven Atc-kod. atccode <string> <Atc> längd <= 8 C07AA Wildcard ej tillåtet 5.3.6 getatcsbyatccodeandlevelinterval Returnerar Atc-objekt med angiven Atckod och inom angivet intervall. 5.3.7 getatcsbytextsvandlevelinterval atccode <string> levellow <int> levelhigh <int> <Atc[ ]> längd <= 8 C07AA 1 4 Wildcard tillåtet för atccode Responsobjekten är sorterade på atccode i fallande ordning Returnerar Atc-objekt för angiven svensk text och inom angivet intervall. 5.3.8 getatcsbylevel textsv <string> levellow <int> levelhigh <int> <Atc[ ]> Beta-1- och beta-2- receptorblockerare 1 4 Wildcard tillåtet för textsv Responsobjekten är sorterade på atccode i fallande ordning Returnerar Atc-objekt för angiven nivå. level <int> <Atc[ ]> 5 Responsobjekten är sorterade på atccode i fallande ordning 5.3.9 getatcsbyatccodelist Returnerar lista med Atc-objekt för lista med atc-koder 5.3.10 getdrugatccodesbydrugidlist atccodes <string [ ]> <Atc[ ]> längd <= 8 (sträng) [C07AA, C08CA02] Multipler tas bort från responsobjekten Returnerar lista med DrugAtcCodeobjekt för lista med drugid drugids <string [ ]> <DrugAtcCode [ ]> längd = 14 (sträng) [19350131000010, 19820115000010] Multipler tas bort från responsobjekten
Beskrivning 23 (114) Id Namn SOAP Inparametrar Kommentar 5.3.11 getatccodedrugsbyatccodelist Inparametrar Respons Villkor Exempel Returnerar lista med AtcCodeDrugobjekt för lista med atc-koder. Obs: tjänsten returnerar enbart referenser till läkemedelsprodukter med silproductgrouptype= APPROVED atccodes <string [ ]> flgcurrent <boolean> <AtcCodeDrug [ ]> längd <= 8 (sträng) -- [C07AA, C08CA02] false Multipler tas bort från responsobjekten 5.3.1. Atc-objekt Objekt som skickas som svar på anrop av tjänsterna där Atc-objekt returneras. atccode <string> 8 Atc-kod C07AA textsv <string> Tillhörande tillgänglig beskrivande svensk text. Beta-1- och beta-2- receptorblockerare lev <int> Nivå på Atc-koden. 4 5.3.2. DrugAtcCode-objekt Objekt som skickas som svar på anrop av tjänsterna där DrugAtcCode-objekt returneras. drugid <string> 14 Identifierare som baseras på nplid 19820312000059 atccodes <string[ ]> Lista med ATC-koder [N02AA59,N02AB05] 5.3.3. AtcCodeDrug-objekt Objekt som skickas som svar på anrop av tjänsterna där AtcCodeDrug-objekt returneras.
Beskrivning 24 (114) atccode <string> 14 ATC-kod N02AA59 drugids <string[ ]> Lista med identifierare som baseras på nplid [19820312000059, 19620312000459]
Beskrivning 25 (114) 5.4 Parallellimporterade läkemedel Tjänsterna används för att hämta information om parallellimporterade läkemedel. Exempel på ett paralellimporteat läkemedel är Plendil, 10 mg, depottabletter. Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel 5.4.1 getdrugsbyatccode Returnerar Drug-objekt för angiven Atckod. Om flgcurrent är sann returneras endast de läkemedel som har minst en läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. Obs: tjänsten returnerar enbart referenser till läkemedelsprodukter med silproductgrouptype= APPROVED atccode <string> flgcurrent <boolean> regionid <int> <Drug [ ]> längd = 8 C08CA02 false 3 Wildcard tillåtet för atccode Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid) Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning 5.4.2 getdrugsbydistributeddrugtradename
Beskrivning 26 (114) Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel Returnerar Drug-objekt för angivet distribuerat handelsnamn. Om flgcurrent är sann returneras endast de läkemedel som har minst en läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. Observera att returnerade läkemedelsobjekt kan ha andra namn än inparametern. Detta kan inträffa då distribuerade läkemedel är en parallellimport med annat originalnamn. tradename <string> flgcurrent <boolean> regionid <int> <Drug [ ]> Plendil true 3 Wildcard tillåtet för tradename Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid) Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning 5.4.3 getdrugbydrugid Returnerar Drug-objekt för angivet drugid. drugid <string> Om flgcurrent är sann returneras endast flgcurrent <boolean> de läkemedel som har minst en svara som regionid <int> är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. 5.4.4 getdrugsbydrugidlist <Drug> längd = 14 19380131000010 false 3 Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid)
Beskrivning 27 (114) Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel Returnerar lista med Drug-objekt för lista drugids <string [ ]> med drugid. Om flgcurrent är sann returneras endast de läkemedel som har flgcurrent <boolean> minst en läkemedelsvara som är tillgänglig regionid <int> för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. 5.4.5 getdrugsbysubstancegroupid <Drug [ ]> längd = 8 (sträng) [19350131000010, 19820115000010] false 3 Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid) Multipler tas bort från responsobjekten Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning Returnerar Drug-objekt för angivet substansgrupp. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. substancegroupid <int> flgcurrent <boolean> regionid <int> <Drug[ ]> 168 false 3 Substansgrupp används för att få information om utbytbarhet. Se 5.15 Drug-objekt med interchangeableflag Y och P returneras Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning. Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid)
Beskrivning 28 (114) Id Namn SOAP Inparametrar Kommentar 5.4.6 getdrugsbypharmaceuticalformgroupid Inparametrar Respons Villkor Exempel Returnerar Drug-objekt för angiven läkemedelsformgrupp. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. formgroupid <int> flgcurrent <boolean> regionid <int> <Drug[ ]> 200 false 3 Läkemedelsformgrupp används för att få information om utbytbarhet. Se 5.15 Drug-objekt med interchangeableflag Y och P returneras Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning. Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid) 5.4.7 getdrugsbystrengthgroupid
Beskrivning 29 (114) Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel Returnerar Drug-objekt för angivet styrkegrupp. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. strengthgroupid <int> flgcurrent <boolean> regionid <int> <Drug[ ]> 325 false 3 Styrkegrupp används för att få information om utbytbarhet. Se 5.15 Drug-objekt med interchangeableflag Y och P returneras Responsobjekten är sorterade på i första hand tradename och i andra hand drugformcode i fallande ordning. Om regionid = -1 sätts information om rekommenderat läkemedel för alla rekommenderade listor (oberoende av regionid) 5.4.8 getdrugidsbynplidlist Returnerar lista av idpair-objekt innehållande drugids för lista av angivna nplid nplids <string [ ]> <IdPair [ ]>, se 5.20.1 längd = 14 (sträng) [20031121100024, 19890131100010] Multipler tas bort från responsobjekten
Beskrivning 30 (114) 5.4.1. Drug-objekt Objekt som skickas som svar på anrop av tjänsterna där Drug-objekt returneras. drugid <string> 14 Identifierare som baseras på nplid 19350131000010 tradename <string> Läkemedlets handelsnamn. En asterisk efter ett handelsnamn i fältet CREON* tradename betyder att det även finns andra tradename (handelsnamn) i de underliggande DistributedDrug-objekten. Exempel CREON* i Drugobjektet har förekomsterna av handelsnamnen CREON och PANKREON i de underliggande DistributedDrugobjekten strengthnumeric <float> Läkemedlets numeriska styrka, kombineras med strengthnumericunit. 10 strengthnumericunit <string> Se 5.9.7 Styrkeenhet för läkemedlet, kombineras med strengthnumeric mg strengthtext <string> Styrketext för läkemedlet, används i första hand före användandet av 10 mg strengthnumeric och strengthnumericunit. För kombinationsläkemedel är strengthnumeric, strengthnumericunit och strengthtext tomt drugformcode <string> Se 5.8.1 Kod som anger läkemedelsform för läkemedlet DICHTA drugformtextsv <string> Se 5.8.1 Svensk läkemedelsformstext Dispergerbar tablett/tuggtablett drugclassificationcode <string> Se 5.9.1 Kod som representerar klassificeringen av särskilda läkemedel enligt 1 receptkungörelsen. För narkotikaklassificering se controlclasscode controlclasscode <string> Se 5.9.2 Kod som representerar narkotikaklassificering av läkemedel 1 routeofadministrationcodes <string[ ]> Se 5.9.3 Kod som representerar vilken del av kroppen, eller sättet, ett läkemedel är avsedd att administreras. För framtida bruk, används ej i nuläget. prescribercodes <string[ ]> Se 5.9.4 Kod som representerar förskrivningrättigheterna [6, 3] interchangeableflag <string> 1 Anger om ett läkemedel är utbytbart. Tillåtna värden: Y/N/P. Om alla P tillhörande DistributedDrug har interchangeableflag satta till Y sätts interchangeableflag på Drug till Y, om ingen är utbytbar sätts flaggan till N, om någon/några men inte alla, sätts flaggan till P substancegroupid <int> Substansgruppid för utbytbarhet, se även 5.15.1 168
Beskrivning 31 (114) substancegroupname <string> Se 5.15.1 Substansgruppnamnet för utbytbarhet Levomepromazin pharmaceuticalformgroupid <int> Läkemedelsformid för utbytbarhet(beredningsformid), se även 5.15.3 200 pharmaceuticalformgroupname <string> Se 5.15.3 Läkemedelsformnamnet för utbytbarhet Tablett strengthgroupid <int> Styrkegruppid för utbytbarhet, se även 5.15.2 325 strengthgroupname <string> Se 5.15.2 Styrkegruppnamnet för utbytbarhet 25 mg lactationgroup <string> Se 5.12.9 Amningsgrupp II pregnancycategory <string> Se 5.12.8 Graviditetskategori B interactionstatus <int> Interaktionsstatus för läkemedlet. Giltiga värden: 1 1= Läkemedlet ingår i interaktionsregistret och har kända interaktioner 0= Läkemedlet ingår i interaktionsregistret och har inga kända interaktioner -1= Läkemedlet ingår inte interaktionsregistret och interaktionsstatus är okänt producttypecode <string> Se 5.9.5 Kod som representerar produkttyp (sortimentskod) MEP prescriptioncode <string> Se 5.9.6 Kod som representerar ett läkemedels receptföreskrifter 5 (Receptfritt från 12 års ålder) withdrawaldate <string> 10 Datum när samtliga tillhörande distribuerade läkemedel 1978-12-23 (DistributedDrug) utgått hasrecommendedarticle <boolean> Anger om det till läkemedlet finns en eller flera rekommenderade FALSE läkemedelsvaror på någon rekommendationslista sildeviationcode <string> Se 5.9.24 Kod som representerar avvikelse i läkemedelsdata. Om ingen avvikelse finns så är fältet tomt. 100
Beskrivning 32 (114) 5.5 Läkemedelsprodukter Tjänsterna används för att hämta information om läkemedelsprodukter. Exempel på en läkemedelsprodukt är Plendil, 10 mg, depottabletter, Hässle. Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel 5.5.1 getdistributeddrugsbydistributeddrugtradename Returnerar DistributedDrug-objekt för angivet distribuerat handelsnamn. Om flgcurrent är sann returneras endast de distribuerade läkemedel som har minst en läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. Obs: tjänsten returnerar enbart referenser till läkemedelsprodukter med silproductgrouptype= APPROVED tradename <string> flgcurrent <boolean> regionid <int> <DistributedDrug [ ]> Plendil true 3 Wildcard tillåtet för tradename Om regionid = -1 sätts information om rekommenderat distribuerat läkemedel för alla rekommenderade listor (oberoende av regionid) Responsobjekten är sorterade på i första hand drugid, i andra hand tradename och tredje hand drugformcode i fallande ordning 5.5.2 getdistributeddrugbynplid Returnerar DistributedDrug-objekt för angivet nplid. Om flgcurrent är sann returneras endast de distribuerade läkemedel som har minst en läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. nplid <string> flgcurrent <boolean> regionid <int> <DistributedDrug> 14 19380131000010 false 3 Om regionid = -1 sätts information om rekommenderat distribuerat läkemedel för alla rekommenderade listor (oberoende av regionid) 5.5.3 getdistributeddrugsbydrugid
Beskrivning 33 (114) Id Namn SOAP Inparametrar Kommentar Inparametrar Respons Villkor Exempel Returnerar DistributedDrug-objekt för angivet drugid. Om flgcurrent är sann returneras endast de distribuerade läkemedel som har minst en läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. drugid <string> flgcurrent <boolean> regionid <int> <DistributedDrug [ ]> längd = 14 [19350131000010, 19820115000010] false 3 Om regionid = -1 sätts information om rekommenderat distribuerat läkemedel för alla rekommenderade listor (oberoende av regionid) Responsobjekten är sorterade på i första hand drugid, i andra hand tradename och tredje hand drugformcode i fallande ordning 5.5.4 getdistributeddrugsbydrugidlist Returnerar lista med DistributedDrugobjekt för lista med drugid. Om flgcurrent drugids <string [ ]> är sann returneras endast de distribuerade flgcurrent <boolean> läkemedel som har minst en regionid <int> läkemedelsvara som är tillgänglig för förskrivning/försäljning. regionid styr vilka rekommenderade läkemedelslistor sökningen ska ske mot. 5.5.5 getdistributeddrugsbynplidlist Returnerar lista med DistributedDrugobjekt för lista med nplid. Om flgcurrent är nplids <string [ ]> sann returneras endast de distribuerade flgcurrent <boolean> läkemedel som har minst en regionid <int> läkemedelsvara som är tillgänglig för <DistributedDrug [ ]> längd = 14 [19350131000010, (sträng) 19820115000010] false 3 <DistributedDrug [ ]> längd = 14 (sträng) [19350131000010, 19820115000010] false 3 Om regionid = -1 sätts information om rekommenderat distribuerat läkemedel för alla rekommenderade listor (oberoende av regionid) Responsobjekten är sorterade på i första hand drugid, i andra hand tradename och tredje hand drugformcode i fallande ordning Multipler tas bort från responsobjekten Om regionid = -1 sätts information om rekommenderat distribuerat läkemedel för alla rekommenderade listor (oberoende av regionid)