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-05-05 13:29] 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 op mod klient-applikationer, med det formål at stille en service til rådighed, der kan foreslå en lægemiddelordination med tilhørende dosis og indikation ud fra en fritekst, som brugeren har skrevet i et felt i klient-applikationen.+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.
  
-**I det følgende omtales en lægemiddelordination med tilhørende dosis og indikation, som er angivet i en struktureret form - baseret på kendte FMK typer - som en "ordination".**+**I det følgende omtales en lægemiddelordination med tilhørende dosering og indikation, som er angivet i en struktureret form - baseret på kendte FMK typer - som en "ordination".**
  
-DosageAI servicen gør brug af Artificial Intelligence (AI) dvs. machine learning til at udvælge en prædefineret lægemiddelordination m. dosis 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.+OrdinationsAI servicen gør brug af Artificial Intelligence (AI) dvs. machine 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.
  
-Arbejdsgangen vil være således at brugeren af klient-applikationen, eksempelvis en læge, indtaster en fritekst, som sendes til DosageAI servicen, og får efterfølgende vist de tilsvarende data på en struktureret form i klient-applikationen (der bliver returneret i samme kald). +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 ønskede. Den eventuelt korrigerede ordination vil efterfølgende blive sendt til DosageAI servicen sammen med den oprindelige fritekst, som blev indtastet til at begynde med. Dette kald til DosageAI 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.+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 ønskede. Den 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.
  
-DosageAI servicen kommer til at køre i en periode i pilotdrift med et begrænset antal brugere men med produktionsdata. I denne periode vil datagrundlaget for algoritmen blive gennemgået manuelt. +OrdinationsAI servicen kommer til at køre i 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 DosageAI servicen kører i produktion og er tilgængelig for alle, vil al data blive gemt mht. læring, men selve datagrundlaget for algoritmen vil kun sjældent blive opdateret, og i så fald kun manuelt, da man regner med at have et så præcist og fuldendt datagrundlag som muligt, og for at sikre konsistens i svarene fra AI algoritmen.+Når OrdinationsAI servicen kører i produktion og er tilgængelig for alle, vil al data blive gemt mht. læring, men selve datagrundlaget for algoritmen vil kun sjældent blive opdateret, og 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 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.+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. 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 fritekst ==== ==== Foreslå en struktureret ordination ud fra fritekst ====
  
-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 DosageAI 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 ordination, hvilket svarer til den ordination, der har det højeste konfidenstal i forhold til den indtastede tekst. Dvs. det bedst mulige svar fra AI algoritmen.+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 ordination, hvilket 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 ordination 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.
  
-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å 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.
  
-Hvis eksempelvis et svar indeholder en lægemiddelordination med dosis 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 i 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.+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 i 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
 + 
 +Nogle gange kan AI-algoritmen ikke foreslå en dosering eller indikation, hvormed disse to er tomme, og kun lægemiddelnavnet returneres i svaret.
  
 ==== Send korrigeret struktureret data retur ==== ==== Send korrigeret struktureret data retur ====
  
-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.  +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 skal klient-applikationen gemme den oprindelige tekst således at den kan indsættes i dette kald efter at brugeren har korrigeret i teksten og er klar til at oprette selve lægemiddelordinationen.+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.
  
-Kaldet returnerer en statuskode for om kaldet tilbage til DosageAI servicen gik godt eller ej. Hvis kaldet gik godt returneres blot et tomt svar.+Denne forespørgsel returnerer en statuskode mhp. om kaldet til OrdinationsAI-servicen gik godt eller ej. Hvis kaldet gik godt returneres blot et tomt svar. Hvis kaldet fejlede, returneres en fejlkode.
  
-===== Eksempel XML for brugen af DosageAI servicen =====+===== Eksempel XML for brugen af OrdinationsAI-servicen =====
  
-Nedenunder ses et eksempel XML dokument på at sende en tekst til DosageAI servicen.  +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 DosageAI servicen, hvis muligt. Hvis ikke det er muligt at returnere en struktureret ordination, så returneres en fejl i stedet for+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. 
-I nedenstående eksempel er antallet af tabletter forkert angivet i resultatet (se Quantity feltet). Der står 1 i stedet for 2. Derfor er lægemiddelordinationen korrigeret i det efterfølgende eksempel, dvs. lægen har manuelt korrigeret denne og resultatet bliver sendt retur til DosageAI servicen med henblik på læring af algoritmen+
  
 +<code xml>
  
-<code> +<?xml version="1.0" encoding="UTF-8"?>
- +
-?xml version="1.0" encoding="UTF-8"?>+
 <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"> <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 mg 2 tbl morgen mod forhøjet kolesterol</DrugMedicationText> 
-<DrugMedicationText>Simvastatin 20 mg2 tbl morgen og aften (men tag halv dosis den første uge), mod forhøjet kolesterol</DrugMedicationText> +   <!--Optional:--> 
-<!--Optional:--> +   <MaxResult>1</MaxResult>
-<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 87: 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 109: 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 116: 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 141: 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 161: 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 171: Line 158:
  
  
-===== WSDL for DosageAI 1.0 =====+===== WSDL for OrdinationsAI 1.0 =====
  
-DosageAI servicens SOAP snitflade mod klient-applikationer er defineret gennem den tilhørende WSDL, som kan ses og downloades via linket:+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/DosageAI_2022_03_01-collection-dist.zip?raw=true] | WSDL og skemaer]]+[[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/DosageAI-inline_2022_03_01.wsdl.zip?raw=true] | WSDL og skemaer inline]]+[[https://github.com/trifork/FMKResources/blob/master/wsdl/OrdinationsAI-inline_2022_03_01.wsdl.zip?raw=true] | WSDL og skemaer inline]]
  
  
fmk/dosageai/1.0/dosageai.1651757384.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki