User Tools

Site Tools


fmk:dosageai:1.0:dosageai

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
fmk:dosageai:1.0:dosageai [2022-04-27 08:36] hmmfmk:dosageai:1.0:dosageai [2026-03-06 08:53] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== Dosage AI service ======+====== OrdinationsAI service ======
  
 ''OBS! Under udvikling'' ''OBS! Under udvikling''
  
-DosageAI servicen er et selvstændigt FMK modul, der udstiller en snitflade mod klient-applikationer, der har behov for at få oversat en indtastet tekst til en faktisk lægemiddelordination med tilhørende dosis og  indikation. Med andre ord, at få en struktureret ordination ud fra en skrevet tekst.+OrdinationsAI servicen er et selvstændigt FMK modul, der udstiller en snitflade op mod klient-applikationer, med det formål at stille en service til rådighed, der kan foreslå en lægemiddelordination med tilhørende dosering og indikation ud fra en fritekst, som brugeren har skrevet i et felt i klient-applikationen.
  
-Servicen, som stilles til rådighed for klient-applikationer, gør brug af Artificial Intelligence (AI) / machine learning til at udvælge en eller flere prædefinerede lægemiddelordinationer - med tilhørende dosis-angivelse samt indikation - ud fra den indtastede tekst klient-applikationen+**I det følgende omtales en lægemiddelordination med tilhørende dosering og indikation, som er angivet en struktureret form baseret på kendte FMK typer - som en "ordination".**
  
-Brugeren af klient-applikationen, eksempelvis en læge, får efterfølgende vist en struktureret  lægemiddelordination i klient-applikationen, som DosageAI servicen har returneret fra selve kaldet. Lægen kan nu rette i den viste lægemiddelordination, hvis den viste struktureret ordination ikke stemmer overens med det ønskede. Den (eventueltkorrigeret struktureret lægemiddelordination vil efterfølgende blive sendt retur til DosageAI servicen (dog kun i testperioden) sammen med den oprindelige tekst, som blev tastet ind til at begynde medDette kald til DosageAI servicen har til formål at forbedre datagrundlaget for AI-algoritmen, således at fremtidige forespørgsler for en struktureret lægemiddelordination bliver mere præcise og dermed en bedre hjælp til brugerne af klient-applikationen.+OrdinationsAI servicen gør brug af Artificial Intelligence (AIdvsmachine learning til at udvælge en prædefineret lægemiddelordination m. dosering og indikation på struktureret form ud fra den indtastede tekst i klient-applikationen. Formålet er at lette brugerens arbejdsgang når der skal oprettes en lægemiddelordination.
  
-Når DosageAI servicen kører i produktionvil der ikke være noget læring mht. AI algoritmen eller datagrundlagetda man regner med at have et så præcist og fuldendt datagrundlag som muligt, og for at sikre konsistens svarenedvshvis lægen indtaster den samme tekst to gange med en uges mellemrumså vil svaret altid være det sammesom lægen får retur.+Arbejdsgangen vil være således at brugeren af klient-applikationen, eksempelvis en læge, indtaster en fritekst, som sendes til OrdinationsAI servicen, og får efterfølgende vist de tilsvarende data på en struktureret form i klient-applikationen (der bliver returneret i samme kald). 
 +Lægen kan nu vælge at rette i den foreslåede ordination, hvis det viser sig at den foreslåede ordination ikke stemmer overens med det ønskedeDen eventuelt korrigerede ordination vil efterfølgende blive sendt til OrdinationsAI servicen sammen med den oprindelige fritekst, som blev indtastet til at begynde med. Dette kald til OrdinationsAI servicen har til formål på sigt at forbedre datagrundlaget for AI-algoritmen, således at fremtidige ordinationer dannet ud fra fritekst bliver mere præcise og dermed en bedre hjælp til brugerne af klient-applikationen. 
 + 
 +OrdinationsAI servicen kommer til at køre en periode i pilotdrift med et begrænset antal brugere men med produktionsdata. I denne periode vil datagrundlaget for algoritmen blive gennemgået manuelt. 
 +Når OrdinationsAI servicen kører i produktion og er tilgængelig for allevil al data blive gemt mhtlæringmen selve datagrundlaget for algoritmen vil kun sjældent blive opdateretog i så fald kun manuelt.
  
 Selve lægemiddelordinationen oprettes efterfølgende i klient-applikationen i et nyt kald, og er derfor ikke en del af denne struktureringsproces. Selve lægemiddelordinationen oprettes efterfølgende i klient-applikationen i et nyt kald, og er derfor ikke en del af denne struktureringsproces.
  
-DosageAI servicen afvikles for sigsom et selvstændigt modul, afkoblet fra selve Fælles Medicinkort servicen, men gør dog brug af nogle fælles funktionalitet, som anvendes og tilbydes igennem FMK servicen.+OrdinationsAI servicen afvikles for sig som et selvstændigt modul, afkoblet fra selve Fælles Medicinkort servicen, men gør dog brug af noget fælles funktionalitet, som anvendes og tilbydes igennem FMK servicen
 +Fordelen ved at have en selvstændig service er at den kan tilrettes, udvides og deployes uafhængigt af FMK og andre moduler.
  
-Der sendes ingen personhenførbare data via DosageAI servicen.+Der sendes ingen personhenførbare data via OrdinationsAI servicen.
  
 ===== Snitfladebeskrivelser ===== ===== Snitfladebeskrivelser =====
  
-DosageAI snitfladen, som er tilgængelig for klient-applikationer, stiller to klient-forespørgsler til rådighed. +OrdinationsAI snitfladen, som er tilgængelig for klient-applikationer, stiller to klient-forespørgsler til rådighed. 
  
-==== Foreslå en struktureret ordination ud fra tekst ====+==== Foreslå en struktureret ordination ud fra fritekst ====
  
-Den ene forespørgsel anvendes til at opbygge en lægemiddelordination ud fra en tekst, som brugeren, eksempelvis en læge, indtaster i klient-applikationen. Denne tekst sendes i forespørgslen til DosageAI servicen som input. Man kan vælge at angive et maksimalt antal svar som forespørgslen skal returnere. Men vi anbefaler altid at sætte denne maksimumværdi til 1 i kaldet, idet klient-applikationen i dette tilfælde kun vil modtage et enkelt resultat for en struktureret lægemiddelordinationnemlig den ordination, der har den højeste konfidens i forhold til den indtastede tekst.+Den ene forespørgsel anvendes til at opbygge en ordination ud fra en fritekst, som brugeren indtaster i klient-applikationen. Denne fritekst sendes i forespørgslen til OrdinationsAI servicen som input. Man kan i dette kald vælge at angive et maksimalt antal svar som forespørgslen skal returnere. Vi anbefaler altid at sætte denne værdi til 1 i kaldet, idet klient-applikationen i dette tilfælde kun vil modtage et enkelt resultat for en ordinationhvilket svarer til den ordination, der har det højeste konfidenstal i forhold til den indtastede tekst. Dvs. det bedst mulige svar fra AI algoritmen.
  
-Svaret, der returneres fra denne forespørgsel, indeholder kendte FMK typer såsom DrugType, DrugDosage og Indication, samt et nyt felt, Confidence, som indikerer hvor stor tillid AI-algoritmen har til at det er den korrekte lægemiddelordination med hensyn til den indtastede tekst, der blev givet i forespørgslen. Confidence feltet indeholder en værdi mellem 0 og 100, hvor 100 er det højeste konfidenstal.+Svaret, der returneres fra denne forespørgsel, indeholder kendte FMK typer såsom DrugType, DrugDosage og Indication, samt et nyt felt, Confidence, som indikerer hvor stor tillid AI-algoritmen har til at det er det korrekte lægemiddel, der er valgt, med hensyn til den indtastede tekst, der blev givet i forespørgslen. Confidence feltet indeholder en værdi mellem 0 og 100, hvor 100 er det højeste konfidenstal.
  
-DosageAI servicen sorterer svar fra på baggrund af en given tærskelværdi for konfidenstallet. Denne tærskelværdi er parametriseret, således at man i testfasen kan justere denne tærskel alt efter hvor god AI algoritmen er til at strukturere tekst til ordinationer.  +Klient-applikationen kan efterfølgende vælge at sortere svar fra på baggrund af en given tærskelværdi for konfidenstallet. Denne tærskelværdi kan i klient-applikationen være parametriseret, således at man i testperioden kan justere denne tærskel alt efter hvor god AI-algoritmen er til at foreslå lægemidler.
-Når det kører i produktion, er det ikke meningen at tærskelværdien skal ændres efterfølgende.+
  
-Hvis eksempelvis et resultat indeholder en lægemiddelordination med dosis og indikation, men hvor Confidence tallet er under tærskelværdien, så vil det endelige svar på requested indeholde en fejlkode stedet for en struktureret ordination.+Hvis eksempelvis et svar indeholder en lægemiddelordination med dosering og indikation, men hvor Confidence tallet er under en given tærskelværdi, så skal klient-applikationen ikke vise struktureret data men blot tomme felter, og det er meningen at dette tilfælde skal lægen selv manuelt indtaste det ønskede data for en ordination, eller prøve med at indtaste en ny fritekst og forsøge igen.
  
-==== Send korrigeret struktureret ordination retur ====+Nogle gange kan AI-algoritmen ikke foreslå en dosering eller indikation, hvormed disse to er tomme, og kun lægemiddelnavnet returneres i svaret.
  
-Den anden forespørgsel, der stilles til rådighed, anvendes til at sende den (eventuelt) korrigerede lægemiddelordination retur til DosageAI servicen. Denne forespørgsel medtager derfor en struktureret lægemiddelordination bygget op omkring de samme FMK typer som i den første forespørgsel. Denne forespørgsel indeholder også den oprindelige tekst, der blev indtastet. Kaldet returnerer en statuskode for om kaldet tilbage til DosageAI servicen gik godt eller ej. Hvis kaldet gik godt returneres blot et tomt svar.+==== Send korrigeret struktureret data retur ====
  
-===== Eksempel XML for brugen af DosageAI servicen =====+Den anden forespørgsel, der stilles til rådighed af OrdinationsAI-servicen, anvendes til at sende den (eventuelt) korrigerede ordination retur til OrdinationsAI servicen. Denne forespørgsel medtager derfor en struktureret lægemiddelordination med dosering og indikation bygget op omkring de samme FMK typer som svaret i den første forespørgsel. Denne forespørgsel indeholder ydermere den oprindelige fritekst, der blev indtastet.  
 +Dermed er det nødvendigt at klient-applikationen gemmer den oprindelige tekst således at det er muligt at indsætte friteksten i dette kald.
  
-Nedenunder ses et eksempel XML dokument på at sende en tekst til DosageAI servicen.  +Denne forespørgsel returnerer en statuskode mhp. om kaldet til OrdinationsAI-servicen gik godt eller ejHvis kaldet gik godt returneres blot et tomt svar. Hvis kaldet fejlede, returneres en fejlkode.
-Her er værdien på MaxResult sat til 1, dvs. maksimalt 1 svar kan returneres fra DosageAI servicen, hvis muligt. Hvis ikke det er muligt at returnere en struktureret ordinationså returneres en fejl i stedet for.+
  
 +===== Eksempel XML for brugen af OrdinationsAI-servicen =====
  
-<code>+Nedenunder ses et eksempel XML dokument på at sende en fritekst til OrdinationsAI servicen.  
 +Her er værdien på MaxResult sat til 1, dvs. maksimalt 1 svar kan returneres fra OrdinationsAI servicen, hvis muligt. Hvis ikke det er muligt at returnere en ordination, så returneres en fejl i stedet for. 
  
-?xml version="1.0" encoding="UTF-8"?> +<code xml>
-<ParseDrugMedicationTextRequest xsi:schemaLocation="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01 ParseDrugMedicationTextRequest.xsd" xmlns="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">+
  
-<DrugMedicationText>Simvastatin 20 mg2 tbl morgen og aften (men tag halv dosis den første uge), mod forhøjet kolesterol</DrugMedicationText> +<?xml version="1.0" encoding="UTF-8"?> 
-<!--Optional:--> +<ParseDrugMedicationTextRequest xsi:schemaLocation="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01 ParseDrugMedicationTextRequest.xsd" xmlns="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
-<MaxResult>1</MaxResult>+   <DrugMedicationText>Simvastatin 20 mg 2 tbl morgen mod forhøjet kolesterol</DrugMedicationText> 
 +   <!--Optional:--> 
 +   <MaxResult>1</MaxResult>
 </ParseDrugMedicationTextRequest> </ParseDrugMedicationTextRequest>
  
 </code> </code>
  
-Nedenunder ses et eksempel på XML dokument der viser et svar fra DosageAI servicen på det ovenstående request. Svaret indeholder kendte FMK typer for en lægemiddelordination, dosis og indikation. Namespaces er udeladt i XML eksemplet nedenfor for at simplificere typerne. +Nedenunder ses et eksempel XML dokumentder viser et svar fra OrdinationsAI servicen på det ovenstående request. Svaret indeholder kendte FMK typer for en lægemiddelordination, dosering og indikation. Namespaces er udeladt i XML eksemplet for at simplificere typerne. 
-Konfidensværdien af den strukturerede ordination er her i eksemplet sat til 95.+Konfidensværdien af den foreslåede ordination er her i eksemplet 100.
  
  
-<code>+<code xml>
  
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Line 79: Line 86:
             </UnitTexts>             </UnitTexts>
             <Structure>             <Structure>
-                <IterationInterval>2</IterationInterval> +                <IterationInterval>1</IterationInterval> 
-                <StartDate>2021-03-01</StartDate>+                <StartDate>2022-05-01</StartDate>
  <DosageEndingUndetermined/>  <DosageEndingUndetermined/>
                 <Day>                 <Day>
                     <Number>1</Number>                     <Number>1</Number>
                     <Dose>                     <Dose>
-                        <Quantity>1</Quantity>+                        <Quantity>2</Quantity>
                     </Dose>                     </Dose>
                 </Day>                 </Day>
-                <Day> 
-     <Number>2</Number> 
-     <Dose> 
- <Quantity>1</Quantity> 
-     </Dose> 
- </Day> 
             </Structure>             </Structure>
         </Structures>         </Structures>
Line 101: Line 102:
         <Text>mod forhøjet kolesterol</Text>         <Text>mod forhøjet kolesterol</Text>
     </Indication>     </Indication>
-    <Confidence>95</Confidence>+    <Confidence>100</Confidence>
 </ParseDrugMedicationTextResult> </ParseDrugMedicationTextResult>
 </ParseDrugMedicationTextResponse> </ParseDrugMedicationTextResponse>
Line 108: Line 109:
  
  
-Nedenstående ses et eksempel på et XML dokument der viser et request til DosageAI servicen med den korrigerede, strukturerede lægemiddelordination. Dette request indeholder kendte FMK typer for en lægemiddelordination, dosis og indikation. Namespaces er udeladt i XML eksemplet nedenfor for at simplificere typerne. +Nedenstående ses et eksempel XML dokumentder viser et request til OrdinationsAI servicen med den korrigerede  ordination. Dette request indeholder kendte FMK typer for en lægemiddelordination, dosering og indikation. Namespaces er udeladt i XML eksemplet for at simplificere typerne. 
-Dette request indeholder også den oprindelige tekst, som lægen har indtastet i klient-applikationen. Denne tekst ses som det sidste felt i XML eksemplet.+Dette request indeholder også den oprindelige fritekst, som lægen har indtastet i klient-applikationen. Denne er angivet som det sidste felt i XML dokumentet.
  
-<code>+<code xml>
  
 <?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
Line 133: Line 134:
             </UnitTexts>             </UnitTexts>
             <Structure>             <Structure>
-                <IterationInterval>2</IterationInterval> +                <IterationInterval>1</IterationInterval> 
-                <StartDate>2021-03-01</StartDate>+                <StartDate>2022-05-01</StartDate>
                 <DosageEndingUndetermined/>                 <DosageEndingUndetermined/>
                 <Day>                 <Day>
                     <Number>1</Number>                     <Number>1</Number>
-                    <Dose> 
-                        <Quantity>2</Quantity> 
-                    </Dose> 
-                </Day> 
-                <Day> 
-                    <Number>2</Number> 
                     <Dose>                     <Dose>
                         <Quantity>2</Quantity>                         <Quantity>2</Quantity>
Line 153: Line 148:
     <Indication>     <Indication>
         <Code source="Medicinpriser" date="2014-05-01">79</Code>         <Code source="Medicinpriser" date="2014-05-01">79</Code>
-        <Text>Mod forhøjet kolesterol. Men tag halv dosis den første uge.</Text>+        <Text>Mod forhøjet kolesterol</Text>
     </Indication>     </Indication>
 </ParseDrugMedicationTextResult> </ParseDrugMedicationTextResult>
-    <DrugMedicationText>Simvastatin 20 mg2 tbl morgen og aften (men tag halv dosis den første uge), mod forhøjet kolesterol</DrugMedicationText>+    <DrugMedicationText>Simvastatin 20 mg 2 tbl morgen mod forhøjet kolesterol</DrugMedicationText>
 </SendDrugMedicationResultRequest> </SendDrugMedicationResultRequest>
  
Line 163: Line 158:
  
  
-===== WSDL for DosageAI 1.0 =====+===== WSDL for OrdinationsAI 1.0 ===== 
 + 
 +OrdinationsAI servicens SOAP snitflade mod klient-applikationer er defineret gennem den tilhørende WSDL, som kan ses og downloades via linket: 
 + 
 +[[https://github.com/trifork/FMKResources/blob/master/wsdl/OrdinationsAI_2022_03_01-collection.zip?raw=true] | WSDL og skemaer]] 
 + 
 +[[https://github.com/trifork/FMKResources/blob/master/wsdl/OrdinationsAI-inline_2022_03_01.wsdl.zip?raw=true] | WSDL og skemaer inline]]
  
-DosageAI servicens snitflade mod klient-applikationer er defineret gennem WSDLen, som kan ses og downloades via linket: 
  
-https://github.com/trifork/fmk-schemas/blob/master/etc/wsdl/DosageAI_2022_03_01.wsdl 
  
  
  
fmk/dosageai/1.0/dosageai.1651048601.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki