This is an old revision of the document!
Table of Contents
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
I forespørgslen 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 ændringslog, mellem den valgte periode og den foregående, såfremt dette er tilgængelig.
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, denne 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 akut-pakning). For mere info om indholdet af denne dispenserings PDF se Hent Dispenseringskort
Eksempel på request:
<GetMedicineCardAsPDFRequest> <PersonIdentifier source="CRP">1111111118</PersonIdentifier> <PrintType>medicinkort</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();
