This is an old revision of the document!
Table of Contents
Hent medicinkort som PDF
Servicen gør det muligt at hente et medicinkort som et PDF dokument. Formålet hermed er at kunne præsentere et medicinkort på papir, hvor formatet er fælles uanset hvilket system lægen bruger.
Forespørgsel
Forespørgslen sendes i MedicineCardAsPDFRequest-elementet. Opslaget på medicinkortet i PDF-format har de samme muligheder for at slå op på historiske versioner som den almindelige forespørgsel til at hente medicinkort (se Hent medicinkort).
I elementet PrintType angives typen af PDF:
- Med ”læge” angives at udskriften er til lægens brug.
- Med ”borger” angives at udskriften er til borger.
- Med ”borgerUdenStatusangivelse” angives at udskriften er til borger.
- Med “dosisdispenseringskort” angives at der ønskes en særlig udskrift af et evt. dosisdispenseringskort for den pågældende person i.f.m. dosisdispenseringsfunktionaliten i FMK.
- Med “borger dosisdispenseringskort” angives et ønske om et print af dosisdispenseringskortet i et format som er tænkt til udskrift til borgeren. Forskellen mellem denne type og “dosisdispenseringskort” er inklusionen af en ændringslog, mellem den valgte periode og den foregående, såfremt dette er tilgængelig
Bemærk typerne: Læge, Borger & BorgerUdenStatusangivelse har været tiltænkt 3 forskellige resulterende PDF'er igennem tiden, men de er sidenhen blevet ensrettet, og i dag er deres udformning 100% ens. Der arbejdes på om hvorledes det kunne være godt at typerne erstattes med en samlet Medicinkortet type. Skulle dette blive en realitet, udmeldes dette.
Specielt omkring DD-kort og hentning af perioder: Ved anvendelsen af typen “dosisdispenseringskort” eller “borger dosisdispenseringskort” hentes der som standard både nuværende og kommende perioder. Ønskes der kun hentning af en specifik periode skal elementet ShowDosageLimitations benyttes, denne skal udfyldes med en StartDate og en EndDate og disse skal være ens, idet der ikke er support for intervalsøgning. Udfyldes ShowDosageLimitations på denne måde, finder FMK kun perioder hvor den angivne dato indgår, hvilket typisk kun giver 1 resultat (flere perioder kan forekomme i forbindelse med overlappende akut-pakning). For mere info om indholdet af denne dosisdispenserings PDF se Hent Dosisdispenseringskort
I forbindelse med at der indføres doseringer med flere perioder kan en lægemiddelordination indeholde en række doseringer i efterfølgende perioder. Eksempelvis en nedtrapning over et begrænset antal dage, efterfulgt af en simpel fast dosering. Hvis en doseringsperiode er udløbet på udskrifttidspunktet, udelades denne periode fra printet, med mindre det er den sidste periode i doseringen. Denne virkemåde er i øvrigt identisk med den der er gældende for “Hent lægemiddelordination” og “Hent medicinkort”.
Eksempel på request:
<GetMedicineCardAsPDFRequest> <PersonIdentifier>1111111118</PersonIdentifier> <PrintType>borgerUdenStatusangivelse</PrintType> </GetMedicineCardAsPDFRequest>
Svar
I svaret fra FMK vil der være et eller flere PDF dokumenter encoded i BASE64. Hvert MedicineCard-element vil indeholde et enkelt PDF-dokument, returneres der flere PDF dokumenter vil disse findes i hver deres struktur. Er der linieskift i strengen i MedicineCard-elementet kan det være nødvendigt at fjerne disse, alt efter hvilken decoder der anvendes (f.eks. er javax.mail.internet.MimeUtility ikke følsom over for linieskift mens JAXB er).
<GetMedicineCardAsPDFResponse> <MedicineCard> <[CDATA[JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9MZW5ndGggMzExL0ZpbHRlci9GbGF0ZURlY29kZT4+ c3RyZWFtCnicXVFBTsMwELznFXMsoil2UpWQnoBScakQUj5g6k1wk9jFdivx4b6BI3alQFPLslYz s7Oz8lfyVCX5AgVboJIJQ8qLWNytOXiGqk4mG5Jqq3RrrEdtLPhwihKPWnkRXknWkb6pdpcO2eCA KyIfiDcrlRZeGY3m1EkKPqitgGnQk0TG2EPKeLjwqhujeZrzke1kY+Q5X08NefTiSO7b0hJU ... byA4IDAgUi9TaXplIDk+PgpzdGFydHhyZWYKMTA4MAolJUVPRgo=]]> </MedicineCard> </GetMedicineCardAsPDFResponse>
Anvendes en standard decoder er processen til at danne en PDF-fil simpel, følgende eksempel anvender javax.mail.internet.MimeUtility (fejlhåndtering m.v. er udeladt):
String encodedPDF = (strengen i MedicineCard-elementet) if(encodedPDF.startsWith("<![CDATA[")&&encodedPDF.endsWith("]]>")) encodedPDF = encodedPDF.substring(9, encodedPDF.length()-3); BufferedInputStream is = new BufferedInputStream(MimeUtility.decode(new ByteArrayInputStream(encodedPDF.getBytes()), "BASE64")); BufferedOutputStream os = new BufferedOutputStream(new FileOutputStream("medicinkort.pdf")); byte[] buffer = new byte[is.available()]; is.read(buffer); os.write(buffer); is.close(); os.close();
