====== Hent medicinkort/dispenseringskort som PDF ====== Servicen gør det muligt at hente et medicinkort eller dispenseringskort som et PDF dokument. Formålet hermed er, at kunne præsentere en medicinoversigt, hvor formatet er fælles, uanset hvilket system lægen bruger. ==== Forespørgsel ==== [[fmk:medicinecard-inline_2022_01_01:feltbeskrivelser#getmedicinecardaspdfrequesttype|Request]] I denne forespørgsel angives patientens ''PersonIdentifier'', efterfulgt at en ''PrintType''. I elementet PrintType angives typen af PDF: * Med ”**medicinkortet**” angives, at udskriften ønskes af medicinkortet. * Med “**dispenseringskort**” angives, at der ønskes en udskrift af patientens dispenseringskort. * Med “**dispenseringskort med ændringsliste**” angives et ønske om et print af dispenseringskort i et format, som er tænkt til udskrift til borgeren. Forskellen mellem denne type og “**dispenseringskort**” er inklusionen af en [[fmk:1.6.0:services:Hent ændringslog for dispenseringsperiode|ændringslog]] mellem den valgte periode og den foregående, såfremt dette er tilgængeligt. Ved hentning af typen ”**medicinkortet**”, kan der også anvendes ''MedicineCardVersion'' eller ''MedicineCardDateTime'' til at hente specifikke versioner af medicinkortet som PDF. **Specielt omkring dispenseringskort og hentning af perioder:** Ved anvendelsen af typen “dispenseringskort” eller “dispenseringskort med ændringsliste” hentes der som standard både nuværende og kommende perioder. Ønskes der kun hentning af en specifik periode, skal elementet ''DispensingPeriodFilterDate'' benyttes. Dette skal udfyldes med en ''DateInPeriod''. Udfyldes ''DateInPeriod'' 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 akutpakning). For mere info om indholdet af denne dispenserings PDF, se [[fmk:1.6.0:services:Hent Dispenseringskort]] Eksempel på request: 1111111118 medicinkort ==== Svar ==== [[fmk:medicinecard-inline_2022_01_01:feltbeskrivelser#getmedicinecardaspdfresponsetype|Response]] 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 linjeskift 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 linjeskift mens JAXB er). <[CDATA[JVBERi0xLjQKJeLjz9MKNCAwIG9iaiA8PC9MZW5ndGggMzExL0ZpbHRlci9GbGF0ZURlY29kZT4+ c3RyZWFtCnicXVFBTsMwELznFXMsoil2UpWQnoBScakQUj5g6k1wk9jFdivx4b6BI3alQFPLslYz s7Oz8lfyVCX5AgVboJIJQ8qLWNytOXiGqk4mG5Jqq3RrrEdtLPhwihKPWnkRXknWkb6pdpcO2eCA KyIfiDcrlRZeGY3m1EkKPqitgGnQk0TG2EPKeLjwqhujeZrzke1kY+Q5X08NefTiSO7b0hJU ... byA4IDAgUi9TaXplIDk+PgpzdGFydHhyZWYKMTA4MAolJUVPRgo=]]> Anvendes en standarddecoder, 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("")) 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();