User Tools

Site Tools


fmk:dosageai:1.0:dosageai

This is an old revision of the document!


Dosage AI service

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.

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 i klient-applikationen.

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 (eventuelt) korrigeret 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 med. Dette 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.

Når DosageAI servicen kører i produktion, vil der ikke være noget læring mht. AI algoritmen eller datagrundlaget, da man regner med at have et så præcist og fuldendt datagrundlag som muligt, og for at sikre konsistens i svarene, dvs. hvis lægen indtaster den samme tekst to gange med en uges mellemrum, så vil svaret altid være det samme, som lægen får retur.

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 nogle fælles funktionalitet, som anvendes og tilbydes igennem FMK servicen.

Der sendes ingen personhenførbare data via DosageAI servicen.

Snitfladebeskrivelser

DosageAI snitfladen, som er tilgængelig for klient-applikationer, stiller to klient-forespørgsler til rådighed.

Foreslå en struktureret ordination ud fra tekst

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ægemiddelordination, nemlig den ordination, der har den højeste konfidens i forhold til den indtastede tekst.

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.

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. 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 i stedet for en struktureret ordination.

Send korrigeret struktureret ordination 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. Kaldet returnerer en statuskode for om kaldet tilbage til DosageAI servicen gik godt eller ej. Hvis kaldet gik godt returneres blot et tomt svar.

Eksempel XML for brugen af DosageAI servicen

Nedenunder ses et eksempel XML dokument på at sende en tekst til DosageAI 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.

?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">

<DrugMedicationText>Simvastatin 20 mg, 2 tbl morgen og aften (men tag halv dosis den første uge), mod forhøjet kolesterol</DrugMedicationText>
<!--Optional:-->
<MaxResult>1</MaxResult>
</ParseDrugMedicationTextRequest>

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. Konfidensværdien af den strukturerede ordination er her i eksemplet sat til 95.

<?xml version="1.0" encoding="UTF-8"?>
<ParseDrugMedicationTextResponse xsi:schemaLocation="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01 ParseDrugMedicationTextResponse.xsd" xmlns="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01" xmlns="http://www.dkma.dk/medicinecard/xml.schema/2015/01/01" xmlns="http://www.dkma.dk/medicinecard/xml.schema/2015/01/01/E4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ParseDrugMedicationTextResult>
    <Drug>
        <ATC>
            <Code source="Medicinpriser" date="2015-01-06">C10AA01</Code>
            <Text>Simvastatin</Text>
        </ATC>
        <Identifier source="Medicinpriser" date="2014-05-01">28103185500</Identifier>
        <Name>Simvastatin Stada</Name>
    </Drug>
    <Dosage>
        <Structures>
            <UnitTexts>
                <Singular>tablet</Singular>
                <Plural>tabletter</Plural>
            </UnitTexts>
            <Structure>
                <IterationInterval>2</IterationInterval>
                <StartDate>2021-03-01</StartDate>
		<DosageEndingUndetermined/>
                <Day>
                    <Number>1</Number>
                    <Dose>
                        <Quantity>1</Quantity>
                    </Dose>
                </Day>
                <Day>
		    <Number>2</Number>
		    <Dose>
			<Quantity>1</Quantity>
		    </Dose>
		</Day>
            </Structure>
        </Structures>
    </Dosage>
    <Indication>
        <Code source="Medicinpriser" date="2014-05-01">79</Code>
        <Text>mod forhøjet kolesterol</Text>
    </Indication>
    <Confidence>95</Confidence>
</ParseDrugMedicationTextResult>
</ParseDrugMedicationTextResponse>

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. 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.

<?xml version="1.0" encoding="UTF-8"?>
<SendDrugMedicationResultRequest xsi:schemaLocation="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01 SendDrugMedicationResultRequest.xsd"
xmlns="http://fmk-teknik.dk/dosageAI/xml.schema/2022/03/01" xmlns="http://www.dkma.dk/medicinecard/xml.schema/2015/01/01" xmlns="http://www.dkma.dk/medicinecard/xml.schema/2015/01/01/E4"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ParseDrugMedicationTextResult>
    <Drug>
        <ATC>
            <Code source="Medicinpriser" date="2015-01-06">C10AA01</Code>
            <Text>Simvastatin</Text>
        </ATC>
        <Identifier source="Medicinpriser" date="2014-05-01">28103185500</Identifier>
        <Name>Simvastatin Stada</Name>
    </Drug>
    <Dosage>
        <Structures>
            <UnitTexts>
                <Singular>tablet</Singular>
                <Plural>tabletter</Plural>
            </UnitTexts>
            <Structure>
                <IterationInterval>2</IterationInterval>
                <StartDate>2021-03-01</StartDate>
                <DosageEndingUndetermined/>
                <Day>
                    <Number>1</Number>
                    <Dose>
                        <Quantity>2</Quantity>
                    </Dose>
                </Day>
                <Day>
                    <Number>2</Number>
                    <Dose>
                        <Quantity>2</Quantity>
                    </Dose>
                </Day>
            </Structure>
        </Structures>
    </Dosage>
    <Indication>
        <Code source="Medicinpriser" date="2014-05-01">79</Code>
        <Text>Mod forhøjet kolesterol. Men tag halv dosis den første uge.</Text>
    </Indication>
</ParseDrugMedicationTextResult>
    <DrugMedicationText>Simvastatin 20 mg, 2 tbl morgen og aften (men tag halv dosis den første uge), mod forhøjet kolesterol</DrugMedicationText>
</SendDrugMedicationResultRequest>

WSDL for DosageAI 1.0

DosageAI servicens SOAP snitflade mod klient-applikationer er defineret gennem den tilhørende WSDL, som kan ses og downloades via linket:

https://github.com/trifork/fmk-schemas/blob/master/etc/wsdl/DosageAI_2022_03_01.wsdl

(TODO: skal erstattes af den samlede zip-fil med WSDL'en og XSD typer)

fmk/dosageai/1.0/dosageai.1651049298.txt.gz · Last modified: (external edit)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki