From 51908543c8de5369b3d77c451b04eca3c4a7eb0f Mon Sep 17 00:00:00 2001 From: Tobias Kast Date: Mon, 2 Dec 2024 14:49:14 +0100 Subject: [PATCH 1/5] ERE-732 Fix: NullPointerException in PIN Timeout --- .../ps/resource/gematik/ERezeptWorkflowResource.java | 8 +++++++- .../ps/service/gematik/ERezeptWorkflowService.java | 12 +++++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/main/java/health/ere/ps/resource/gematik/ERezeptWorkflowResource.java b/src/main/java/health/ere/ps/resource/gematik/ERezeptWorkflowResource.java index 82ec4739b..333317ac5 100644 --- a/src/main/java/health/ere/ps/resource/gematik/ERezeptWorkflowResource.java +++ b/src/main/java/health/ere/ps/resource/gematik/ERezeptWorkflowResource.java @@ -201,7 +201,13 @@ public Response testConfigurationsByCreatingTestPrescription() throws } }; bundle.getIdentifier().setValue(taskId); - SignResponse signResponse = eRezeptWorkflowService.signBundleWithIdentifiers(bundle, false, runtimeConfig); + + SignResponse signResponse = null; + try { + signResponse = eRezeptWorkflowService.signBundleWithIdentifiers(bundle, false, runtimeConfig); + } catch (ERezeptWorkflowException e) { + throw new WebApplicationException(e); + } String base64String = signResponse2base64String(signResponse); eRezeptWorkflowService.updateERezeptTask(taskId, accessCode, Base64.getDecoder().decode(base64String), runtimeConfig); diff --git a/src/main/java/health/ere/ps/service/gematik/ERezeptWorkflowService.java b/src/main/java/health/ere/ps/service/gematik/ERezeptWorkflowService.java index a0d1c9ccc..3623a38a7 100644 --- a/src/main/java/health/ere/ps/service/gematik/ERezeptWorkflowService.java +++ b/src/main/java/health/ere/ps/service/gematik/ERezeptWorkflowService.java @@ -498,7 +498,11 @@ public SignResponse signBundleWithIdentifiers(Bundle bundle, boolean wait10secon public SignResponse signBundleWithIdentifiers(Bundle bundle, boolean wait10secondsAfterJobNumber, RuntimeConfig runtimeConfig, Session replyTo, String replyToMessageId) throws ERezeptWorkflowException { List signResponses = signBundleWithIdentifiers(Arrays.asList(bundle), wait10secondsAfterJobNumber, runtimeConfig, replyTo, replyToMessageId); - return signResponses.get(0); + try { + return signResponses.get(0); + } catch (Exception e) { + throw new ERezeptWorkflowException("Could not get signResponse", e); + } } public List signBundleWithIdentifiers(List bundles, boolean wait10secondsAfterJobNumber) @@ -688,6 +692,12 @@ public List signBundleWithIdentifiers(List bundles, boolea } } } + + if (signResponses == null || signResponses.isEmpty()) { + log.warning("Was not able to sign document(s)."); + throw new ERezeptWorkflowException("Was not able to sign document(s)."); + } + return signResponses; } From 78d4f2d54856e2c3e8810f601690ac3811c9dc27 Mon Sep 17 00:00:00 2001 From: Tobias Kast Date: Wed, 4 Dec 2024 12:51:50 +0100 Subject: [PATCH 2/5] Add: Bundle Assembler to create ePrescriptions from known entries for further testing (e.g. create adhoc bundles for given card with known test cases by just adding the entry for patient and coverage) --- .../ere/ps/service/kbv/KBVFHIRUtilTest.java | 183 ++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java diff --git a/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java b/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java new file mode 100644 index 000000000..42013a91f --- /dev/null +++ b/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java @@ -0,0 +1,183 @@ +package health.ere.ps.service.kbv; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.util.Date; +import java.util.UUID; + +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.CsvSource; + +import org.hl7.fhir.r4.model.*; +import ca.uhn.fhir.context.FhirContext; +import ca.uhn.fhir.model.api.TemporalPrecisionEnum; +import ca.uhn.fhir.parser.IParser; + + +public class KBVFHIRUtilTest { + IParser parser = FhirContext.forR4().newXmlParser(); + IParser jsonParser = FhirContext.forR4().newJsonParser(); + + @ParameterizedTest + @CsvSource({ + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, TK-Mustermann_Max.xml, TK-Testprescription.xml, Freetext/_Test.xml, MedicationRequest_GebPflicht.xml", +/* + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Joe_Doe.xml, TestGKVSV-Joe_Doe.xml, PZN/Ibuflam600N3.xml, Dosierung_Gekreuzt.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Joe_Doe.xml, TestGKVSV-Joe_Doe.xml, PZN/LThyroxin75N3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Grundner_Finn_SECRET.xml, TestGKVSV-Grundner_Finn_SECRET.xml, PZN/Ibuflam600N3.xml, Dosierung_Gekreuzt.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Collins_Klaus_SECRET.xml, TestGKVSV-Collins_Klaus_SECRET.xml, PZN/LThyroxin75N3.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Mondwürfel_Mia_SECRET.xml, TestGKVSV-Mondwürfel_Mia_SECRET.xml, PZN/Metoprolol95N3.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Müller-Lügenscheidt_Tina_SECRET.xml, TestGKVSV-Müller-Lügenscheidt_Tina_SECRET.xml, PZN/NovaminsulfonLichN3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Kraus_Bertha_SECRET.xml, TestGKVSV-Kraus_Bertha_SECRET.xml, PZN/Ramilich10N3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Baggins_Bilbo_SECRET.xml, TestGKVSV-Baggins_Bilbo_SECRET.xml, PZN/TorasemidALN3.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Otis_Thorsten.xml, TestGKVSV-Otis_Thorsten.xml, PZN/Amvuttra.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Doria_Finn_Sigurd.xml, TestGKVSV-Doria_Finn_Sigurd.xml, PZN/Impfstoff_Beriglobin.xml, Z_ä_A_MedicationRequest.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Doria_Finn_Sigurd.xml, TestGKVSV-Doria_Finn_Sigurd.xml, Freetext/Impfstoff_Beriglobin.xml, Z_ä_A_MedicationRequest.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Doria_Finn_Sigurd.xml, TestGKVSV-Doria_Finn_Sigurd.xml, Ingredient/Metronidazol_400_N3.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Collins_Klaus_SECRET.xml, TestGKVSV-Collins_Klaus_SECRET.xml, Ingredient/PrednicarbatFettsalbe.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Kätner_Paula_SECRET.xml, TestGKVSV-Kätner_Paula_SECRET.xml, Ingredient/Metamizol500N1.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Kraus_Bertha_SECRET.xml, TestGKVSV-Kraus_Bertha_SECRET.xml, Ingredient/Ibuprofen600N1.xml, Ingredient_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Beutelsbacher-Tütenheim_Anastasia_SECRET.xml, TestGKVSV-Beutelsbacher-Tütenheim_Anastasia_SECRET.xml, Ingredient/Ramipril5N3.xml, Ingredient_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Mondwürfel_Mia_SECRET.xml, TestGKVSV-Mondwürfel_Mia_SECRET.xml, Ingredient/Paracetamol40mgmlN1.xml, Ingredient_GebFrei.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Doria_Finn_Sigurd.xml, TestGKVSV-Doria_Finn_Sigurd.xml, Freetext/Tavor_1_50Tab.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Bräuer_Dominik-Peter_SECRET.xml, TestGKVSV-Bräuer_Dominik-Peter_SECRET.xml, Freetext/Tavor_1_50Tab.xml, Dosierung_Gekreuzt.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Popowitsch_Martina_SECRET.xml, TestGKVSV-Popowitsch_Martina_SECRET.xml, Freetext/Fastjekt.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Popowitsch_Martina_SECRET.xml, TestGKVSV-Popowitsch_Martina_SECRET.xml, Freetext/Ibuprofen600N1.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Popowitsch_Martina_SECRET.xml, TestGKVSV-Popowitsch_Martina_SECRET.xml, Freetext/TilidinComp50_4_N1.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Dammer-Orsted_Tobias_SECRET.xml, TestGKVSV-Dammer-Orsted_Tobias_SECRET.xml, Freetext/Ramipril_5_N3_Tab.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Cördes_Kevin_SECRET.xml, TestGKVSV-Cördes_Kevin_SECRET.xml, Freetext/Rezeptur_Freitext_Creme.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Broder_Julian_SECRET.xml, TestGKVSV-Broder_Julian_SECRET.xml, Freetext/Rezeptur_Freitext_Tube.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Doria_Finn_Sigurd.xml, TestGKVSV-Doria_Finn_Sigurd.xml, Compounding/Triam01Clotri2BasiscremeAd100.xml, Rezeptur_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Klein_Teddy.xml, AOKBY-Klein_Teddy.xml, Compounding/Triam01Clotri2BasiscremeAd100.xml, Rezeptur_GebFrei.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Broder_Julian_SECRET.xml, TestGKVSV-Broder_Julian_SECRET.xml, Compounding/Triam01Clotri2BasiscremeAd100.xml, Rezeptur_27aSGBV.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Broder_Julian_SECRET.xml, TestGKVSV-Broder_Julian_SECRET.xml, PZN/Orgalutran.xml, 27aSGBV.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Dammer-Orsted_Tobias_SECRET.xml, TestGKVSV-Dammer-Orsted_Tobias_SECRET.xml, Ingredient/Paracetamol40mgmlN1.xml, Ingredient_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Königsstein_Ludger.xml, AOKNO-Königsstein_Ludger.xml, Ingredient/Paracetamol40mgmlN1.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, TK-Pan_Peter.xml, Ingredient/Paracetamol40mgmlN1.xml, Ingredient_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Broder_Julian_SECRET.xml, TestGKVSV-Broder_Julian_SECRET.xml, Ingredient/Paracetamol40mgmlN1.xml, Ingredient_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Broder_Julian_SECRET.xml, TestGKVSV-Broder_Julian_SECRET.xml, PZN/LactuloseAL1000N3.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Königsstein_Ludger.xml, AOKNO-Königsstein_Ludger.xml, PZN/LactuloseAL1000N3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, TK-Pan_Peter.xml, PZN/LactuloseAL1000N3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Grossherzog_Friedrich.xml, mhplusBKK-Grossherzog_Friedrich.xml, PZN/LactuloseAL1000N3.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privatus_Paulus.xml, AllianzPKV-Privatus_Paulus.xml, PZN/LactuloseAL1000N3.xml, PKV-MedicationRequest.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privatus_Paulus.xml, AllianzPKV-Privatus_Paulus.xml, PZN/Amvuttra.xml, PKV-MedicationRequest.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privatus_Paulus.xml, AllianzPKV-Privatus_Paulus.xml, Ingredient/Metronidazol_400_N3.xml, PKV-Ingredient.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Paula.xml, AllianzPKV-Privati_Paula.xml, Freetext/Impfstoff_Beriglobin.xml, PKV-MedicationRequest.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Paula.xml, AllianzPKV-Privati_Paula.xml, Compounding/Triam01Clotri2BasiscremeAd100.xml, PKV-Rezeptur.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Teddy.xml, AllianzPKV-Privati_Teddy.xml, Ingredient/Paracetamol40mgmlN1.xml, PKV-Ingredient.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Teddy.xml, AllianzPKV-Privati_Teddy.xml, Ingredient/Paracetamol40mgmlN1.xml, PKV-Ingredient.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Teddy.xml, AllianzPKV-Privati_Teddy.xml, Ingredient/Paracetamol40mgmlN1.xml, PKV-Ingredient.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, PKV-Privati_Teddy.xml, AllianzPKV-Privati_Teddy.xml, Compounding/Triam01Clotri2BasiscremeAd100.xml, PKV-Rezeptur.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, Selbstzahler-Pan_Peter.xml, PZN/LactuloseAL1000N3.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, Selbstzahler-Pan_Peter.xml, PZN/Amvuttra.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, Selbstzahler-Pan_Peter.xml, Ingredient/Ramipril5N3.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Pan_Peter.xml, Selbstzahler-Pan_Peter.xml, Freetext/Tavor_1_50Tab.xml, MedicationRequest_GebPflicht.xml", + + "FehlenderArztstempel.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Amvuttra.xml, MedicationRequest_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, Ingredient/Metamizol500N1.xml, ExtremLangeDosierung.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, Versicherung_fehlt1.xml, Ingredient/Metamizol500N1.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, Versicherung_fehlt2.xml, Ingredient/Metamizol500N1.xml, Ingredient_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/ProstaguttUno_NichtErstatt.xml, MedicationRequest_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Birke_Bruno.xml, VerwaltungsBG-Birke_Bruno.xml, Ingredient/PrednicarbatFettsalbe.xml, Ingredient_Arbeitsunfall.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Birke_Bruno.xml, VerwaltungsBG-Birke_Bruno.xml, Ingredient/PrednicarbatFettsalbe.xml, Ingredient_Berufskrankheit.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Birke_Bruno.xml, KN-Birke_Bruno.xml, Ingredient/PrednicarbatFettsalbe.xml, Ingredient_Unfall.xml", + + + //Entlassmanagement needs another BSNR and legal basis - not "just send" + "Beirliner_Maria.xml, Vincenzkrankenhaus.xml, Erbprinzessin_Ingrid.xml, AOKBY-Erbprinzessin_Ingrid.xml, PZN/Clexane40N1.xml, MedicationRequest_GebFrei.xml", + "Beirliner_Maria.xml, Vincenzkrankenhaus.xml, Erbprinzessin_Ingrid.xml, AOKBY-Erbprinzessin_Ingrid.xml, Freetext/Ibuprofen600N1.xml, MedicationRequest_GebFrei.xml", + "Beirliner_Maria.xml, Vincenzkrankenhaus.xml, Erbprinzessin_Ingrid.xml, AOKBY-Erbprinzessin_Ingrid.xml, Freetext/TilidinComp50_4_N1.xml, MedicationRequest_GebFrei.xml", + "Beirliner_Maria.xml, Vincenzkrankenhaus.xml, Erbprinzessin_Ingrid.xml, AOKBY-Erbprinzessin_Ingrid.xml, Ingredient/Metamizol500N1.xml, Ingredient_GebFrei.xml", + "Beirliner_Maria.xml, Vincenzkrankenhaus.xml, Erbprinzessin_Ingrid.xml, AOKBY-Erbprinzessin_Ingrid.xml, Ingredient/Ibuprofen600N1.xml, Ingredient_GebFrei.xml", + + + // MFVO ... sharing the same ID! Not "just send" + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Metoprolol95N3.xml, MFVO1_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Metoprolol95N3.xml, MFVO2_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Metoprolol95N3.xml, MFVO3_3_GebPflicht.xml", + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/TorasemidALN3.xml, MFVO1_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/TorasemidALN3.xml, MFVO2_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/TorasemidALN3.xml, MFVO3_3_GebPflicht.xml", + + + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Ramilich10N3.xml, MFVO1_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Ramilich10N3.xml, MFVO2_3_GebPflicht.xml", + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, vonSchaumberg_Karl.xml, AOKRLHH-vonSchaumberg_Karl.xml, PZN/Ramilich10N3.xml, MFVO3_3_GebPflicht.xml", + */ + }) + public void testAssembleBundle(String practitionerFilename, String organizationFilename, String patientFilename, String coverageFilename, String medicationSubfolderFilename, String medicationRequestFilename) throws IOException { + Practitioner practitioner = parser.parseResource(Practitioner.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/Practitioner/" + practitionerFilename))); + Organization organization = parser.parseResource(Organization.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/Organization/" + organizationFilename))); + PractitionerRole practitionerRole = null; + Practitioner attester = null; + + Patient patient = parser.parseResource(Patient.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/Patient/" + patientFilename))); + Coverage coverage = parser.parseResource(Coverage.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/Coverage/" + coverageFilename))); + + Medication medication = parser.parseResource(Medication.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/Medication/" + medicationSubfolderFilename))); + + MedicationRequest medicationRequest = parser.parseResource(MedicationRequest.class, Files.readString(Paths.get("./src/test/resources/secret/bundle-entries/MedicationRequest/" + medicationRequestFilename))); + medicationRequest.setId(UUID.randomUUID().toString()); + + medicationRequest.setAuthoredOn(new Date()); + medicationRequest.getAuthoredOnElement().setPrecision(TemporalPrecisionEnum.DAY); + + medicationRequest.getRequester().setReference(practitioner.getId()); + medicationRequest.getSubject().setReference(patient.getId()); + medicationRequest.getInsurance().get(0).setReference(coverage.getId()); + medicationRequest.getMedicationReference().setReference(medication.getId()); + + Bundle bundle = KBVFHIRUtil.assembleBundle(practitioner, organization, patient, coverage, medication, medicationRequest, null, null); + //System.out.println(parser.encodeResourceToString(bundle)); + + /* + // 04 = Entlassmanagement Krankenhaus + Coding valueCoding = new Coding("https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_STATUSKENNZEICHEN", "04", null); + bundle.getEntry().forEach(entry -> { + if (entry.getResource() instanceof Composition) { + ((Composition) entry.getResource()).getExtensionByUrl("https://fhir.kbv.de/StructureDefinition/KBV_EX_FOR_Legal_basis").setValue(valueCoding); + } + }); + // Entlassmanagement BSNR + bundle.getEntry().forEach(entry -> { + if (entry.getResource() instanceof Organization) { + ((Organization) entry.getResource()).getIdentifierFirstRep().setValue("771234567"); + } + }); + */ + + //Encode to JSON + System.out.println(jsonParser.encodeResourceToString(bundle)); + + //Encode to XML + System.out.println(parser.encodeResourceToString(bundle).replaceAll("\"", "'")); + } +} + + + From 7bf0a74b9acb8b092229cef2c8fcb51b07fb1bd6 Mon Sep 17 00:00:00 2001 From: Tobias Kast Date: Wed, 4 Dec 2024 12:55:41 +0100 Subject: [PATCH 3/5] Add: Jetbrains http client REST Create ePrescription --- .../http/workflow/prescription.http | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 src/test/resources/jetbrains-httpclient/http/workflow/prescription.http diff --git a/src/test/resources/jetbrains-httpclient/http/workflow/prescription.http b/src/test/resources/jetbrains-httpclient/http/workflow/prescription.http new file mode 100644 index 000000000..59b57e0df --- /dev/null +++ b/src/test/resources/jetbrains-httpclient/http/workflow/prescription.http @@ -0,0 +1,56 @@ +### Create Task - Get PrescriptionId & AccessCode 160.000.226.814.402.17 8fd9d0f9cf03dca90dc1ba7af5d4f8144559cd345db1325784d9fbd39a19180b +POST http://{{base-url}}/workflow/task +Accept: application/fhir+json +Content-Type: application/json +X-userId: {{userId}} +X-eHBAHandle: {{eHBAHandle}} +X-SMCBHandle: {{SMCBHandle}} +X-clientSystemId: {{connector.client-system-id}} +X-mandantId: {{connector.mandant-id}} +X-workplaceId: {{connector.workplace-id}} +X-clientCertificatePassword: {{connector.clientCertificatePassword}} +X-clientCertificate: {{connector.clientCertificate}} + + +### Sign Bundle after setting PrescriptionId +POST http://{{base-url}}/workflow/sign +Accept: text/plain +content-type: application/xml +X-userId: {{userId}} +X-eHBAHandle: {{eHBAHandle}} +X-SMCBHandle: {{SMCBHandle}} +X-sendPreview: false + +<custodian><reference value='Organization/d9984508-b7d7-4e1b-bf27-90b77056953a'/></custodian><section><code><coding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Section_Type'/><code value='Prescription'/></coding></code><entry><reference value='MedicationRequest/ecc081b7-b433-450d-ae9b-4c580c914d2b'/></entry></section><section><code><coding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Section_Type'/><code value='Coverage'/></coding></code><entry><reference value='Coverage/46ddce10-b604-4dfa-b1bc-3ac1c4070154'/></entry></section></Composition></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/Patient/842d4df5-00dc-4eab-8914-158f2841ba50'/><resource><Patient xmlns='http://hl7.org/fhir'><id value='842d4df5-00dc-4eab-8914-158f2841ba50'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Patient|1.1.0'/></meta><identifier><type><coding><system value='http://fhir.de/CodeSystem/identifier-type-de-basis'/><code value='GKV'/></coding></type><system value='http://fhir.de/sid/gkv/kvid-10'/><value value='X110509650'/></identifier><name><use value='official'/><family value='Prof. Dr. Thorsten Graf Otís'><extension url='http://fhir.de/StructureDefinition/humanname-namenszusatz'><valueString value='Graf'/></extension><extension url='http://hl7.org/fhir/StructureDefinition/humanname-own-name'><valueString value='Otís'/></extension></family><given value='Thorsten'/><prefix value='Prof. Dr.'><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier'><valueCode value='AC'/></extension></prefix></name><birthDate value='1943-02-01'/><address><type value='both'/><line value='Otis-Burg 1'><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName'><valueString value='Otis-Burg'/></extension><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber'><valueString value='1'/></extension></line><city value='Hamburg'/><postalCode value='22397'/><country value='D'/></address></Patient></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/Medication/7a97e667-7ca6-4195-8045-8ee0ee61ddb9'/><resource><Medication xmlns='http://hl7.org/fhir'><id value='7a97e667-7ca6-4195-8045-8ee0ee61ddb9'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_PZN|1.1.0'/></meta><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_Base_Medication_Type'><valueCodeableConcept><coding><system value='http://snomed.info/sct'/><version value='http://snomed.info/sct/900000000000207008/version/20220331'/><code value='763158003'/><display value='Medicinal product (product)'/></coding></valueCodeableConcept></extension><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Category'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Medication_Category'/><code value='00'/></valueCoding></extension><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Vaccine'><valueBoolean value='false'/></extension><code><coding><system value='http://fhir.de/CodeSystem/ifa/pzn'/><code value='18111007'/></coding><text value='AMVUTTRA 25 mg Injektionslösung i.e.Fertigspritze'/></code><form><coding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_DARREICHUNGSFORM'/><code value='IFE'/></coding></form><amount><numerator><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_PackagingSize'><valueString value='1'/></extension><unit value='St'/></numerator><denominator><value value='1'/></denominator></amount></Medication></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/MedicationRequest/ecc081b7-b433-450d-ae9b-4c580c914d2b'/><resource><MedicationRequest xmlns='http://hl7.org/fhir'><id value='ecc081b7-b433-450d-ae9b-4c580c914d2b'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Prescription|1.1.0'/></meta><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_FOR_StatusCoPayment'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_StatusCoPayment'/><code value='0'/></valueCoding></extension><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_EmergencyServicesFee'><valueBoolean value='false'/></extension><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_BVG'><valueBoolean value='false'/></extension><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Multiple_Prescription'><extension url='Kennzeichen'><valueBoolean value='false'/></extension></extension><status value='active'/><intent value='order'/><medicationReference><reference value='Medication/7a97e667-7ca6-4195-8045-8ee0ee61ddb9'/></medicationReference><subject><reference value='Patient/842d4df5-00dc-4eab-8914-158f2841ba50'/></subject><authoredOn value='2024-11-19'/><requester><reference value='Practitioner/313fd7d2-a232-48fd-8e28-98c1d6688068'/></requester><insurance><reference value='Coverage/46ddce10-b604-4dfa-b1bc-3ac1c4070154'/></insurance><dosageInstruction><extension url='https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_DosageFlag'><valueBoolean value='false'/></extension></dosageInstruction><dispenseRequest><quantity><value value='1'/><system value='http://unitsofmeasure.org'/><code value='{Package}'/></quantity></dispenseRequest><substitution><allowedBoolean value='true'/></substitution></MedicationRequest></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/Practitioner/313fd7d2-a232-48fd-8e28-98c1d6688068'/><resource><Practitioner xmlns='http://hl7.org/fhir'><id value='313fd7d2-a232-48fd-8e28-98c1d6688068'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Practitioner|1.1.0'/></meta><identifier><type><coding><system value='http://terminology.hl7.org/CodeSystem/v2-0203'/><code value='LANR'/></coding></type><system value='https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR'/><value value='123456499'/></identifier><name><use value='official'/><family value='Bëírliner'><extension url='http://hl7.org/fhir/StructureDefinition/humanname-own-name'><valueString value='Bëírliner'/></extension></family><given value='Maria'/><prefix value='Dr. med'><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-EN-qualifier'><valueCode value='AC'/></extension></prefix></name><qualification><code><coding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_Qualification_Type'/><code value='00'/></coding></code></qualification><qualification><code><coding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_Berufsbezeichnung'/><code value='Berufsbezeichnung'/></coding><text value='Arzt'/></code></qualification></Practitioner></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/Organization/d9984508-b7d7-4e1b-bf27-90b77056953a'/><resource><Organization xmlns='http://hl7.org/fhir'><id value='d9984508-b7d7-4e1b-bf27-90b77056953a'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Organization|1.1.0'/></meta><identifier><type><coding><system value='http://terminology.hl7.org/CodeSystem/v2-0203'/><code value='BSNR'/></coding></type><system value='https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR'/><value value='036812345'/></identifier><name value='Praxis SigmuntowskíTEST-ONLY'/><telecom><system value='phone'/><value value='0123456789'/></telecom><address><type value='both'/><line value='Sulzfeldstraße 7'><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName'><valueString value='Sulzfeldstraße'/></extension><extension url='http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber'><valueString value='7'/></extension></line><city value='Regensburg'/><postalCode value='93055'/><country value='D'/></address></Organization></resource></entry><entry><fullUrl value='http://pvs.praxis.local/fhir/Coverage/46ddce10-b604-4dfa-b1bc-3ac1c4070154'/><resource><Coverage xmlns='http://hl7.org/fhir'><id value='46ddce10-b604-4dfa-b1bc-3ac1c4070154'/><meta><profile value='https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Coverage|1.1.0'/></meta><extension url='http://fhir.de/StructureDefinition/gkv/besondere-personengruppe'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_PERSONENGRUPPE'/><code value='00'/></valueCoding></extension><extension url='http://fhir.de/StructureDefinition/gkv/dmp-kennzeichen'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_DMP'/><code value='00'/></valueCoding></extension><extension url='http://fhir.de/StructureDefinition/gkv/wop'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_ITA_WOP'/><code value='98'/></valueCoding></extension><extension url='http://fhir.de/StructureDefinition/gkv/versichertenart'><valueCoding><system value='https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_VERSICHERTENSTATUS'/><code value='1'/></valueCoding></extension><status value='active'/><type><coding><system value='http://fhir.de/CodeSystem/versicherungsart-de-basis'/><code value='GKV'/></coding></type><beneficiary><reference value='Patient/842d4df5-00dc-4eab-8914-158f2841ba50'/></beneficiary><payor><identifier><system value='http://fhir.de/sid/arge-ik/iknr'/><value value='109500969'/></identifier><display value='Test GKV-SV'/></payor></Coverage></resource></entry></Bundle> + + +### Update Task +POST http://{{base-url}}/workflow/update +Content-Type: application/json +Accept: application/fhir+json +X-userId: {{userId}} +X-eHBAHandle: {{eHBAHandle}} +X-SMCBHandle: {{SMCBHandle}} +X-sendPreview: "false" + +{ + "taskId": "160.000.226.814.402.17", + "accessCode": "8fd9d0f9cf03dca90dc1ba7af5d4f8144559cd345db1325784d9fbd39a19180b", + "signedBytes": "MII79wYJKoZIhvcNAQcCoII76DCCO+QCAQUxDzANBglghkgBZQMEAgEFADCCLlwGCSqGSIb3DQEHAaCCLk0Egi5JPEJ1bmRsZSB4bWxucz0iaHR0cDovL2hsNy5vcmcvZmhpciI+PGlkIHZhbHVlPSI2NDFkMDA5Ny04NGU5LTRmYWItYmI0Mi04ZGM4YzU3MmY2MDciPjwvaWQ+PG1ldGE+PGxhc3RVcGRhdGVkIHZhbHVlPSIyMDI0LTExLTE5VDExOjU5OjA2LjgxMSswMTowMCI+PC9sYXN0VXBkYXRlZD48cHJvZmlsZSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9QUl9FUlBfQnVuZGxlfDEuMS4wIj48L3Byb2ZpbGU+PC9tZXRhPjxpZGVudGlmaWVyPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZ2VtYXRpay5kZS9maGlyL2VycC9OYW1pbmdTeXN0ZW0vR0VNX0VSUF9OU19QcmVzY3JpcHRpb25JZCI+PC9zeXN0ZW0+PHZhbHVlIHZhbHVlPSIxNjAuMDAwLjIyNi44MTQuNDAyLjE3Ij48L3ZhbHVlPjwvaWRlbnRpZmllcj48dHlwZSB2YWx1ZT0iZG9jdW1lbnQiPjwvdHlwZT48dGltZXN0YW1wIHZhbHVlPSIyMDI0LTExLTE5VDExOjU5OjA2LjgxMSswMTowMCI+PC90aW1lc3RhbXA+PGVudHJ5PjxmdWxsVXJsIHZhbHVlPSJodHRwOi8vcHZzLnByYXhpcy5sb2NhbC9maGlyL0NvbXBvc2l0aW9uL2ExNzJkYmFlLWU0YTUtNDBkZS05YTc1LWE3NDVjNzY5NjViNCI+PC9mdWxsVXJsPjxyZXNvdXJjZT48Q29tcG9zaXRpb24+PGlkIHZhbHVlPSJhMTcyZGJhZS1lNGE1LTQwZGUtOWE3NS1hNzQ1Yzc2OTY1YjQiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRVJQX0NvbXBvc2l0aW9ufDEuMS4wIj48L3Byb2ZpbGU+PC9tZXRhPjxleHRlbnNpb24gdXJsPSJodHRwczovL2ZoaXIua2J2LmRlL1N0cnVjdHVyZURlZmluaXRpb24vS0JWX0VYX0ZPUl9MZWdhbF9iYXNpcyI+PHZhbHVlQ29kaW5nPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvQ29kZVN5c3RlbS9LQlZfQ1NfU0ZISVJfS0JWX1NUQVRVU0tFTk5aRUlDSEVOIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iMDAiPjwvY29kZT48L3ZhbHVlQ29kaW5nPjwvZXh0ZW5zaW9uPjxzdGF0dXMgdmFsdWU9ImZpbmFsIj48L3N0YXR1cz48dHlwZT48Y29kaW5nPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvQ29kZVN5c3RlbS9LQlZfQ1NfU0ZISVJfS0JWX0ZPUk1VTEFSX0FSVCI+PC9zeXN0ZW0+PGNvZGUgdmFsdWU9ImUxNkEiPjwvY29kZT48L2NvZGluZz48L3R5cGU+PHN1YmplY3Q+PHJlZmVyZW5jZSB2YWx1ZT0iUGF0aWVudC84NDJkNGRmNS0wMGRjLTRlYWItODkxNC0xNThmMjg0MWJhNTAiPjwvcmVmZXJlbmNlPjwvc3ViamVjdD48ZGF0ZSB2YWx1ZT0iMjAyNC0xMS0xOVQxMTo1OTowNiswMTowMCI+PC9kYXRlPjxhdXRob3I+PHJlZmVyZW5jZSB2YWx1ZT0iUHJhY3RpdGlvbmVyLzMxM2ZkN2QyLWEyMzItNDhmZC04ZTI4LTk4YzFkNjY4ODA2OCI+PC9yZWZlcmVuY2U+PHR5cGUgdmFsdWU9IlByYWN0aXRpb25lciI+PC90eXBlPjwvYXV0aG9yPjxhdXRob3I+PHR5cGUgdmFsdWU9IkRldmljZSI+PC90eXBlPjxpZGVudGlmaWVyPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvTmFtaW5nU3lzdGVtL0tCVl9OU19GT1JfUHJ1ZWZudW1tZXIiPjwvc3lzdGVtPjx2YWx1ZSB2YWx1ZT0iWS80MDAvMTkwNC8zNi8xMTIiPjwvdmFsdWU+PC9pZGVudGlmaWVyPjwvYXV0aG9yPjx0aXRsZSB2YWx1ZT0iZWxla3Ryb25pc2NoZSBBcnpuZWltaXR0ZWx2ZXJvcmRudW5nIj48L3RpdGxlPjxjdXN0b2RpYW4+PHJlZmVyZW5jZSB2YWx1ZT0iT3JnYW5pemF0aW9uL2Q5OTg0NTA4LWI3ZDctNGUxYi1iZjI3LTkwYjc3MDU2OTUzYSI+PC9yZWZlcmVuY2U+PC9jdXN0b2RpYW4+PHNlY3Rpb24+PGNvZGU+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL0NvZGVTeXN0ZW0vS0JWX0NTX0VSUF9TZWN0aW9uX1R5cGUiPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSJQcmVzY3JpcHRpb24iPjwvY29kZT48L2NvZGluZz48L2NvZGU+PGVudHJ5PjxyZWZlcmVuY2UgdmFsdWU9Ik1lZGljYXRpb25SZXF1ZXN0L2VjYzA4MWI3LWI0MzMtNDUwZC1hZTliLTRjNTgwYzkxNGQyYiI+PC9yZWZlcmVuY2U+PC9lbnRyeT48L3NlY3Rpb24+PHNlY3Rpb24+PGNvZGU+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL0NvZGVTeXN0ZW0vS0JWX0NTX0VSUF9TZWN0aW9uX1R5cGUiPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSJDb3ZlcmFnZSI+PC9jb2RlPjwvY29kaW5nPjwvY29kZT48ZW50cnk+PHJlZmVyZW5jZSB2YWx1ZT0iQ292ZXJhZ2UvNDZkZGNlMTAtYjYwNC00ZGZhLWIxYmMtM2FjMWM0MDcwMTU0Ij48L3JlZmVyZW5jZT48L2VudHJ5Pjwvc2VjdGlvbj48L0NvbXBvc2l0aW9uPjwvcmVzb3VyY2U+PC9lbnRyeT48ZW50cnk+PGZ1bGxVcmwgdmFsdWU9Imh0dHA6Ly9wdnMucHJheGlzLmxvY2FsL2ZoaXIvUGF0aWVudC84NDJkNGRmNS0wMGRjLTRlYWItODkxNC0xNThmMjg0MWJhNTAiPjwvZnVsbFVybD48cmVzb3VyY2U+PFBhdGllbnQ+PGlkIHZhbHVlPSI4NDJkNGRmNS0wMGRjLTRlYWItODkxNC0xNThmMjg0MWJhNTAiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRk9SX1BhdGllbnR8MS4xLjAiPjwvcHJvZmlsZT48L21ldGE+PGlkZW50aWZpZXI+PHR5cGU+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwOi8vZmhpci5kZS9Db2RlU3lzdGVtL2lkZW50aWZpZXItdHlwZS1kZS1iYXNpcyI+PC9zeXN0ZW0+PGNvZGUgdmFsdWU9IkdLViI+PC9jb2RlPjwvY29kaW5nPjwvdHlwZT48c3lzdGVtIHZhbHVlPSJodHRwOi8vZmhpci5kZS9zaWQvZ2t2L2t2aWQtMTAiPjwvc3lzdGVtPjx2YWx1ZSB2YWx1ZT0iWDExMDUwOTY1MCI+PC92YWx1ZT48L2lkZW50aWZpZXI+PG5hbWU+PHVzZSB2YWx1ZT0ib2ZmaWNpYWwiPjwvdXNlPjxmYW1pbHkgdmFsdWU9IlByb2YuIERyLiBUaG9yc3RlbiBHcmFmIE90w61zIj48ZXh0ZW5zaW9uIHVybD0iaHR0cDovL2ZoaXIuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9odW1hbm5hbWUtbmFtZW5zenVzYXR6Ij48dmFsdWVTdHJpbmcgdmFsdWU9IkdyYWYiPjwvdmFsdWVTdHJpbmc+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9odW1hbm5hbWUtb3duLW5hbWUiPjx2YWx1ZVN0cmluZyB2YWx1ZT0iT3TDrXMiPjwvdmFsdWVTdHJpbmc+PC9leHRlbnNpb24+PC9mYW1pbHk+PGdpdmVuIHZhbHVlPSJUaG9yc3RlbiI+PC9naXZlbj48cHJlZml4IHZhbHVlPSJQcm9mLiBEci4iPjxleHRlbnNpb24gdXJsPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vaXNvMjEwOTAtRU4tcXVhbGlmaWVyIj48dmFsdWVDb2RlIHZhbHVlPSJBQyI+PC92YWx1ZUNvZGU+PC9leHRlbnNpb24+PC9wcmVmaXg+PC9uYW1lPjxiaXJ0aERhdGUgdmFsdWU9IjE5NDMtMDItMDEiPjwvYmlydGhEYXRlPjxhZGRyZXNzPjx0eXBlIHZhbHVlPSJib3RoIj48L3R5cGU+PGxpbmUgdmFsdWU9Ik90aXMtQnVyZyAxIj48ZXh0ZW5zaW9uIHVybD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL2lzbzIxMDkwLUFEWFAtc3RyZWV0TmFtZSI+PHZhbHVlU3RyaW5nIHZhbHVlPSJPdGlzLUJ1cmciPjwvdmFsdWVTdHJpbmc+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHA6Ly9obDcub3JnL2ZoaXIvU3RydWN0dXJlRGVmaW5pdGlvbi9pc28yMTA5MC1BRFhQLWhvdXNlTnVtYmVyIj48dmFsdWVTdHJpbmcgdmFsdWU9IjEiPjwvdmFsdWVTdHJpbmc+PC9leHRlbnNpb24+PC9saW5lPjxjaXR5IHZhbHVlPSJIYW1idXJnIj48L2NpdHk+PHBvc3RhbENvZGUgdmFsdWU9IjIyMzk3Ij48L3Bvc3RhbENvZGU+PGNvdW50cnkgdmFsdWU9IkQiPjwvY291bnRyeT48L2FkZHJlc3M+PC9QYXRpZW50PjwvcmVzb3VyY2U+PC9lbnRyeT48ZW50cnk+PGZ1bGxVcmwgdmFsdWU9Imh0dHA6Ly9wdnMucHJheGlzLmxvY2FsL2ZoaXIvTWVkaWNhdGlvbi83YTk3ZTY2Ny03Y2E2LTQxOTUtODA0NS04ZWUwZWU2MWRkYjkiPjwvZnVsbFVybD48cmVzb3VyY2U+PE1lZGljYXRpb24+PGlkIHZhbHVlPSI3YTk3ZTY2Ny03Y2E2LTQxOTUtODA0NS04ZWUwZWU2MWRkYjkiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRVJQX01lZGljYXRpb25fUFpOfDEuMS4wIj48L3Byb2ZpbGU+PC9tZXRhPjxleHRlbnNpb24gdXJsPSJodHRwczovL2ZoaXIua2J2LmRlL1N0cnVjdHVyZURlZmluaXRpb24vS0JWX0VYX0Jhc2VfTWVkaWNhdGlvbl9UeXBlIj48dmFsdWVDb2RlYWJsZUNvbmNlcHQ+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwOi8vc25vbWVkLmluZm8vc2N0Ij48L3N5c3RlbT48dmVyc2lvbiB2YWx1ZT0iaHR0cDovL3Nub21lZC5pbmZvL3NjdC85MDAwMDAwMDAwMDAyMDcwMDgvdmVyc2lvbi8yMDIyMDMzMSI+PC92ZXJzaW9uPjxjb2RlIHZhbHVlPSI3NjMxNTgwMDMiPjwvY29kZT48ZGlzcGxheSB2YWx1ZT0iTWVkaWNpbmFsIHByb2R1Y3QgKHByb2R1Y3QpIj48L2Rpc3BsYXk+PC9jb2Rpbmc+PC92YWx1ZUNvZGVhYmxlQ29uY2VwdD48L2V4dGVuc2lvbj48ZXh0ZW5zaW9uIHVybD0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9FWF9FUlBfTWVkaWNhdGlvbl9DYXRlZ29yeSI+PHZhbHVlQ29kaW5nPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvQ29kZVN5c3RlbS9LQlZfQ1NfRVJQX01lZGljYXRpb25fQ2F0ZWdvcnkiPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSIwMCI+PC9jb2RlPjwvdmFsdWVDb2Rpbmc+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfRVhfRVJQX01lZGljYXRpb25fVmFjY2luZSI+PHZhbHVlQm9vbGVhbiB2YWx1ZT0iZmFsc2UiPjwvdmFsdWVCb29sZWFuPjwvZXh0ZW5zaW9uPjxjb2RlPjxjb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cDovL2ZoaXIuZGUvQ29kZVN5c3RlbS9pZmEvcHpuIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iMTgxMTEwMDciPjwvY29kZT48L2NvZGluZz48dGV4dCB2YWx1ZT0iQU1WVVRUUkEgMjUgbWcgSW5qZWt0aW9uc2zDtnN1bmcgaS5lLkZlcnRpZ3Nwcml0emUiPjwvdGV4dD48L2NvZGU+PGZvcm0+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL0NvZGVTeXN0ZW0vS0JWX0NTX1NGSElSX0tCVl9EQVJSRUlDSFVOR1NGT1JNIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iSUZFIj48L2NvZGU+PC9jb2Rpbmc+PC9mb3JtPjxhbW91bnQ+PG51bWVyYXRvcj48ZXh0ZW5zaW9uIHVybD0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9FWF9FUlBfTWVkaWNhdGlvbl9QYWNrYWdpbmdTaXplIj48dmFsdWVTdHJpbmcgdmFsdWU9IjEiPjwvdmFsdWVTdHJpbmc+PC9leHRlbnNpb24+PHVuaXQgdmFsdWU9IlN0Ij48L3VuaXQ+PC9udW1lcmF0b3I+PGRlbm9taW5hdG9yPjx2YWx1ZSB2YWx1ZT0iMSI+PC92YWx1ZT48L2Rlbm9taW5hdG9yPjwvYW1vdW50PjwvTWVkaWNhdGlvbj48L3Jlc291cmNlPjwvZW50cnk+PGVudHJ5PjxmdWxsVXJsIHZhbHVlPSJodHRwOi8vcHZzLnByYXhpcy5sb2NhbC9maGlyL01lZGljYXRpb25SZXF1ZXN0L2VjYzA4MWI3LWI0MzMtNDUwZC1hZTliLTRjNTgwYzkxNGQyYiI+PC9mdWxsVXJsPjxyZXNvdXJjZT48TWVkaWNhdGlvblJlcXVlc3Q+PGlkIHZhbHVlPSJlY2MwODFiNy1iNDMzLTQ1MGQtYWU5Yi00YzU4MGM5MTRkMmIiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRVJQX1ByZXNjcmlwdGlvbnwxLjEuMCI+PC9wcm9maWxlPjwvbWV0YT48ZXh0ZW5zaW9uIHVybD0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9FWF9GT1JfU3RhdHVzQ29QYXltZW50Ij48dmFsdWVDb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9Db2RlU3lzdGVtL0tCVl9DU19GT1JfU3RhdHVzQ29QYXltZW50Ij48L3N5c3RlbT48Y29kZSB2YWx1ZT0iMCI+PC9jb2RlPjwvdmFsdWVDb2Rpbmc+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfRVhfRVJQX0VtZXJnZW5jeVNlcnZpY2VzRmVlIj48dmFsdWVCb29sZWFuIHZhbHVlPSJmYWxzZSI+PC92YWx1ZUJvb2xlYW4+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfRVhfRVJQX0JWRyI+PHZhbHVlQm9vbGVhbiB2YWx1ZT0iZmFsc2UiPjwvdmFsdWVCb29sZWFuPjwvZXh0ZW5zaW9uPjxleHRlbnNpb24gdXJsPSJodHRwczovL2ZoaXIua2J2LmRlL1N0cnVjdHVyZURlZmluaXRpb24vS0JWX0VYX0VSUF9NdWx0aXBsZV9QcmVzY3JpcHRpb24iPjxleHRlbnNpb24gdXJsPSJLZW5uemVpY2hlbiI+PHZhbHVlQm9vbGVhbiB2YWx1ZT0iZmFsc2UiPjwvdmFsdWVCb29sZWFuPjwvZXh0ZW5zaW9uPjwvZXh0ZW5zaW9uPjxzdGF0dXMgdmFsdWU9ImFjdGl2ZSI+PC9zdGF0dXM+PGludGVudCB2YWx1ZT0ib3JkZXIiPjwvaW50ZW50PjxtZWRpY2F0aW9uUmVmZXJlbmNlPjxyZWZlcmVuY2UgdmFsdWU9Ik1lZGljYXRpb24vN2E5N2U2NjctN2NhNi00MTk1LTgwNDUtOGVlMGVlNjFkZGI5Ij48L3JlZmVyZW5jZT48L21lZGljYXRpb25SZWZlcmVuY2U+PHN1YmplY3Q+PHJlZmVyZW5jZSB2YWx1ZT0iUGF0aWVudC84NDJkNGRmNS0wMGRjLTRlYWItODkxNC0xNThmMjg0MWJhNTAiPjwvcmVmZXJlbmNlPjwvc3ViamVjdD48YXV0aG9yZWRPbiB2YWx1ZT0iMjAyNC0xMS0xOSI+PC9hdXRob3JlZE9uPjxyZXF1ZXN0ZXI+PHJlZmVyZW5jZSB2YWx1ZT0iUHJhY3RpdGlvbmVyLzMxM2ZkN2QyLWEyMzItNDhmZC04ZTI4LTk4YzFkNjY4ODA2OCI+PC9yZWZlcmVuY2U+PC9yZXF1ZXN0ZXI+PGluc3VyYW5jZT48cmVmZXJlbmNlIHZhbHVlPSJDb3ZlcmFnZS80NmRkY2UxMC1iNjA0LTRkZmEtYjFiYy0zYWMxYzQwNzAxNTQiPjwvcmVmZXJlbmNlPjwvaW5zdXJhbmNlPjxkb3NhZ2VJbnN0cnVjdGlvbj48ZXh0ZW5zaW9uIHVybD0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9FWF9FUlBfRG9zYWdlRmxhZyI+PHZhbHVlQm9vbGVhbiB2YWx1ZT0iZmFsc2UiPjwvdmFsdWVCb29sZWFuPjwvZXh0ZW5zaW9uPjwvZG9zYWdlSW5zdHJ1Y3Rpb24+PGRpc3BlbnNlUmVxdWVzdD48cXVhbnRpdHk+PHZhbHVlIHZhbHVlPSIxIj48L3ZhbHVlPjxzeXN0ZW0gdmFsdWU9Imh0dHA6Ly91bml0c29mbWVhc3VyZS5vcmciPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSJ7UGFja2FnZX0iPjwvY29kZT48L3F1YW50aXR5PjwvZGlzcGVuc2VSZXF1ZXN0PjxzdWJzdGl0dXRpb24+PGFsbG93ZWRCb29sZWFuIHZhbHVlPSJ0cnVlIj48L2FsbG93ZWRCb29sZWFuPjwvc3Vic3RpdHV0aW9uPjwvTWVkaWNhdGlvblJlcXVlc3Q+PC9yZXNvdXJjZT48L2VudHJ5PjxlbnRyeT48ZnVsbFVybCB2YWx1ZT0iaHR0cDovL3B2cy5wcmF4aXMubG9jYWwvZmhpci9QcmFjdGl0aW9uZXIvMzEzZmQ3ZDItYTIzMi00OGZkLThlMjgtOThjMWQ2Njg4MDY4Ij48L2Z1bGxVcmw+PHJlc291cmNlPjxQcmFjdGl0aW9uZXI+PGlkIHZhbHVlPSIzMTNmZDdkMi1hMjMyLTQ4ZmQtOGUyOC05OGMxZDY2ODgwNjgiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRk9SX1ByYWN0aXRpb25lcnwxLjEuMCI+PC9wcm9maWxlPjwvbWV0YT48aWRlbnRpZmllcj48dHlwZT48Y29kaW5nPjxzeXN0ZW0gdmFsdWU9Imh0dHA6Ly90ZXJtaW5vbG9neS5obDcub3JnL0NvZGVTeXN0ZW0vdjItMDIwMyI+PC9zeXN0ZW0+PGNvZGUgdmFsdWU9IkxBTlIiPjwvY29kZT48L2NvZGluZz48L3R5cGU+PHN5c3RlbSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9OYW1pbmdTeXN0ZW0vS0JWX05TX0Jhc2VfQU5SIj48L3N5c3RlbT48dmFsdWUgdmFsdWU9IjEyMzQ1NjQ5OSI+PC92YWx1ZT48L2lkZW50aWZpZXI+PG5hbWU+PHVzZSB2YWx1ZT0ib2ZmaWNpYWwiPjwvdXNlPjxmYW1pbHkgdmFsdWU9IkLDq8OtcmxpbmVyIj48ZXh0ZW5zaW9uIHVybD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL2h1bWFubmFtZS1vd24tbmFtZSI+PHZhbHVlU3RyaW5nIHZhbHVlPSJCw6vDrXJsaW5lciI+PC92YWx1ZVN0cmluZz48L2V4dGVuc2lvbj48L2ZhbWlseT48Z2l2ZW4gdmFsdWU9Ik1hcmlhIj48L2dpdmVuPjxwcmVmaXggdmFsdWU9IkRyLiBtZWQiPjxleHRlbnNpb24gdXJsPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vaXNvMjEwOTAtRU4tcXVhbGlmaWVyIj48dmFsdWVDb2RlIHZhbHVlPSJBQyI+PC92YWx1ZUNvZGU+PC9leHRlbnNpb24+PC9wcmVmaXg+PC9uYW1lPjxxdWFsaWZpY2F0aW9uPjxjb2RlPjxjb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9Db2RlU3lzdGVtL0tCVl9DU19GT1JfUXVhbGlmaWNhdGlvbl9UeXBlIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iMDAiPjwvY29kZT48L2NvZGluZz48L2NvZGU+PC9xdWFsaWZpY2F0aW9uPjxxdWFsaWZpY2F0aW9uPjxjb2RlPjxjb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9Db2RlU3lzdGVtL0tCVl9DU19GT1JfQmVydWZzYmV6ZWljaG51bmciPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSJCZXJ1ZnNiZXplaWNobnVuZyI+PC9jb2RlPjwvY29kaW5nPjx0ZXh0IHZhbHVlPSJBcnp0Ij48L3RleHQ+PC9jb2RlPjwvcXVhbGlmaWNhdGlvbj48L1ByYWN0aXRpb25lcj48L3Jlc291cmNlPjwvZW50cnk+PGVudHJ5PjxmdWxsVXJsIHZhbHVlPSJodHRwOi8vcHZzLnByYXhpcy5sb2NhbC9maGlyL09yZ2FuaXphdGlvbi9kOTk4NDUwOC1iN2Q3LTRlMWItYmYyNy05MGI3NzA1Njk1M2EiPjwvZnVsbFVybD48cmVzb3VyY2U+PE9yZ2FuaXphdGlvbj48aWQgdmFsdWU9ImQ5OTg0NTA4LWI3ZDctNGUxYi1iZjI3LTkwYjc3MDU2OTUzYSI+PC9pZD48bWV0YT48cHJvZmlsZSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL0tCVl9QUl9GT1JfT3JnYW5pemF0aW9ufDEuMS4wIj48L3Byb2ZpbGU+PC9tZXRhPjxpZGVudGlmaWVyPjx0eXBlPjxjb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cDovL3Rlcm1pbm9sb2d5LmhsNy5vcmcvQ29kZVN5c3RlbS92Mi0wMjAzIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iQlNOUiI+PC9jb2RlPjwvY29kaW5nPjwvdHlwZT48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL05hbWluZ1N5c3RlbS9LQlZfTlNfQmFzZV9CU05SIj48L3N5c3RlbT48dmFsdWUgdmFsdWU9IjAzNjgxMjM0NSI+PC92YWx1ZT48L2lkZW50aWZpZXI+PG5hbWUgdmFsdWU9IlByYXhpcyBTaWdtdW50b3dza8OtVEVTVC1PTkxZIj48L25hbWU+PHRlbGVjb20+PHN5c3RlbSB2YWx1ZT0icGhvbmUiPjwvc3lzdGVtPjx2YWx1ZSB2YWx1ZT0iMDEyMzQ1Njc4OSI+PC92YWx1ZT48L3RlbGVjb20+PGFkZHJlc3M+PHR5cGUgdmFsdWU9ImJvdGgiPjwvdHlwZT48bGluZSB2YWx1ZT0iU3VsemZlbGRzdHJhw59lIDciPjxleHRlbnNpb24gdXJsPSJodHRwOi8vaGw3Lm9yZy9maGlyL1N0cnVjdHVyZURlZmluaXRpb24vaXNvMjEwOTAtQURYUC1zdHJlZXROYW1lIj48dmFsdWVTdHJpbmcgdmFsdWU9IlN1bHpmZWxkc3RyYcOfZSI+PC92YWx1ZVN0cmluZz48L2V4dGVuc2lvbj48ZXh0ZW5zaW9uIHVybD0iaHR0cDovL2hsNy5vcmcvZmhpci9TdHJ1Y3R1cmVEZWZpbml0aW9uL2lzbzIxMDkwLUFEWFAtaG91c2VOdW1iZXIiPjx2YWx1ZVN0cmluZyB2YWx1ZT0iNyI+PC92YWx1ZVN0cmluZz48L2V4dGVuc2lvbj48L2xpbmU+PGNpdHkgdmFsdWU9IlJlZ2Vuc2J1cmciPjwvY2l0eT48cG9zdGFsQ29kZSB2YWx1ZT0iOTMwNTUiPjwvcG9zdGFsQ29kZT48Y291bnRyeSB2YWx1ZT0iRCI+PC9jb3VudHJ5PjwvYWRkcmVzcz48L09yZ2FuaXphdGlvbj48L3Jlc291cmNlPjwvZW50cnk+PGVudHJ5PjxmdWxsVXJsIHZhbHVlPSJodHRwOi8vcHZzLnByYXhpcy5sb2NhbC9maGlyL0NvdmVyYWdlLzQ2ZGRjZTEwLWI2MDQtNGRmYS1iMWJjLTNhYzFjNDA3MDE1NCI+PC9mdWxsVXJsPjxyZXNvdXJjZT48Q292ZXJhZ2U+PGlkIHZhbHVlPSI0NmRkY2UxMC1iNjA0LTRkZmEtYjFiYy0zYWMxYzQwNzAxNTQiPjwvaWQ+PG1ldGE+PHByb2ZpbGUgdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9LQlZfUFJfRk9SX0NvdmVyYWdlfDEuMS4wIj48L3Byb2ZpbGU+PC9tZXRhPjxleHRlbnNpb24gdXJsPSJodHRwOi8vZmhpci5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2drdi9iZXNvbmRlcmUtcGVyc29uZW5ncnVwcGUiPjx2YWx1ZUNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL0NvZGVTeXN0ZW0vS0JWX0NTX1NGSElSX0tCVl9QRVJTT05FTkdSVVBQRSI+PC9zeXN0ZW0+PGNvZGUgdmFsdWU9IjAwIj48L2NvZGU+PC92YWx1ZUNvZGluZz48L2V4dGVuc2lvbj48ZXh0ZW5zaW9uIHVybD0iaHR0cDovL2ZoaXIuZGUvU3RydWN0dXJlRGVmaW5pdGlvbi9na3YvZG1wLWtlbm56ZWljaGVuIj48dmFsdWVDb2Rpbmc+PHN5c3RlbSB2YWx1ZT0iaHR0cHM6Ly9maGlyLmtidi5kZS9Db2RlU3lzdGVtL0tCVl9DU19TRkhJUl9LQlZfRE1QIj48L3N5c3RlbT48Y29kZSB2YWx1ZT0iMDAiPjwvY29kZT48L3ZhbHVlQ29kaW5nPjwvZXh0ZW5zaW9uPjxleHRlbnNpb24gdXJsPSJodHRwOi8vZmhpci5kZS9TdHJ1Y3R1cmVEZWZpbml0aW9uL2drdi93b3AiPjx2YWx1ZUNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwczovL2ZoaXIua2J2LmRlL0NvZGVTeXN0ZW0vS0JWX0NTX1NGSElSX0lUQV9XT1AiPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSI5OCI+PC9jb2RlPjwvdmFsdWVDb2Rpbmc+PC9leHRlbnNpb24+PGV4dGVuc2lvbiB1cmw9Imh0dHA6Ly9maGlyLmRlL1N0cnVjdHVyZURlZmluaXRpb24vZ2t2L3ZlcnNpY2hlcnRlbmFydCI+PHZhbHVlQ29kaW5nPjxzeXN0ZW0gdmFsdWU9Imh0dHBzOi8vZmhpci5rYnYuZGUvQ29kZVN5c3RlbS9LQlZfQ1NfU0ZISVJfS0JWX1ZFUlNJQ0hFUlRFTlNUQVRVUyI+PC9zeXN0ZW0+PGNvZGUgdmFsdWU9IjEiPjwvY29kZT48L3ZhbHVlQ29kaW5nPjwvZXh0ZW5zaW9uPjxzdGF0dXMgdmFsdWU9ImFjdGl2ZSI+PC9zdGF0dXM+PHR5cGU+PGNvZGluZz48c3lzdGVtIHZhbHVlPSJodHRwOi8vZmhpci5kZS9Db2RlU3lzdGVtL3ZlcnNpY2hlcnVuZ3NhcnQtZGUtYmFzaXMiPjwvc3lzdGVtPjxjb2RlIHZhbHVlPSJHS1YiPjwvY29kZT48L2NvZGluZz48L3R5cGU+PGJlbmVmaWNpYXJ5PjxyZWZlcmVuY2UgdmFsdWU9IlBhdGllbnQvODQyZDRkZjUtMDBkYy00ZWFiLTg5MTQtMTU4ZjI4NDFiYTUwIj48L3JlZmVyZW5jZT48L2JlbmVm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" +} + + +### Create PDF from Updated Task +POST http://{{base-url}}/document/bundles +Accept: application/pdf +Content-Type: application/json +X-userId: {{userId}} +X-eHBAHandle: {{eHBAHandle}} +X-SMCBHandle: {{SMCBHandle}} +X-sendPreview: "false" + + +[{ + "accessCode": "8fd9d0f9cf03dca90dc1ba7af5d4f8144559cd345db1325784d9fbd39a19180b", + "bundle": {"type": "document", "identifier": {"system": "https://gematik.de/fhir/erp/NamingSystem/GEM_ERP_NS_PrescriptionId", "value": "160.000.226.212.716.02"}, "entry": [{"fullUrl": "http://pvs.praxis.local/fhir/Composition/442ed7c7-4e5b-4d6b-8fff-e4cea082b92f", "resource": {"type": {"coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_FORMULAR_ART", "code": "e16A"}]}, "status": "final", "custodian": {"reference": "Organization/c45ae027-8175-40fa-a274-c4cf5a7c09bb"}, "date": "2024-03-22T16:28:41+01:00", "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Composition|1.1.0"]}, "section": [{"entry": [{"reference": "MedicationRequest/c669bacd-c997-4b1c-9892-1a5aaf7413ca"}], "code": {"coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Section_Type", "code": "Prescription"}]}}, {"entry": [{"reference": "Coverage/90ec1578-38aa-4505-b4bf-8a0c4498c983"}], "code": {"coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Section_Type", "code": "Coverage"}]}}], "title": "elektronische Arzneimittelverordnung", "author": [{"reference": "Practitioner/be9c73e7-bcae-4f57-b493-25c1419b67ac", "type": "Practitioner"}, {"identifier": {"system": "https://fhir.kbv.de/NamingSystem/KBV_NS_FOR_Pruefnummer", "value": "Y/400/1904/36/112"}, "type": "Device"}], "id": "442ed7c7-4e5b-4d6b-8fff-e4cea082b92f", "extension": [{"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_FOR_Legal_basis", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_STATUSKENNZEICHEN", "code": "00"}}], "subject": {"reference": "Patient/65255390-3c0c-4971-b6d4-ed2645f40716"}, "resourceType": "Composition"}}, {"fullUrl": "http://pvs.praxis.local/fhir/Patient/65255390-3c0c-4971-b6d4-ed2645f40716", "resource": {"birthDate": "1996-10-09", "identifier": [{"system": "http://fhir.de/sid/gkv/kvid-10", "type": {"coding": [{"system": "http://fhir.de/CodeSystem/identifier-type-de-basis", "code": "GKV"}]}, "value": "X110486750"}], "address": [{"type": "both", "_line": [{"extension": [{"url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName", "valueString": "Lemsahler Landstr."}, {"url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber", "valueString": "118"}]}], "country": "D", "line": ["Lemsahler Landstr. 118"], "postalCode": "22397", "city": "Hamburg"}], "id": "65255390-3c0c-4971-b6d4-ed2645f40716", "name": [{"use": "official", "given": ["Elisabeth Sophie Adelheid Annemarie"], "family": "Gräfin Angermänn", "_family": {"extension": [{"url": "http://fhir.de/StructureDefinition/humanname-namenszusatz", "valueString": "Gräfin"}, {"url": "http://hl7.org/fhir/StructureDefinition/humanname-own-name", "valueString": "Angermänn"}]}}], "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Patient|1.1.0"]}, "resourceType": "Patient"}}, {"fullUrl": "http://pvs.praxis.local/fhir/MedicationRequest/c669bacd-c997-4b1c-9892-1a5aaf7413ca", "resource": {"status": "active", "intent": "order", "authoredOn": "2024-03-22", "dosageInstruction": [{"extension": [{"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_DosageFlag", "valueBoolean": false}]}], "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Prescription|1.1.0"]}, "substitution": {"allowedBoolean": true}, "dispenseRequest": {"quantity": {"system": "http://unitsofmeasure.org", "value": 1, "code": "{Package}"}}, "requester": {"reference": "Practitioner/be9c73e7-bcae-4f57-b493-25c1419b67ac"}, "insurance": [{"reference": "Coverage/90ec1578-38aa-4505-b4bf-8a0c4498c983"}], "subject": {"reference": "Patient/65255390-3c0c-4971-b6d4-ed2645f40716"}, "id": "c669bacd-c997-4b1c-9892-1a5aaf7413ca", "extension": [{"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_FOR_StatusCoPayment", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_StatusCoPayment", "code": "0"}}, {"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_EmergencyServicesFee", "valueBoolean": false}, {"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_BVG", "valueBoolean": false}, {"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Multiple_Prescription", "extension": [{"url": "Kennzeichen", "valueBoolean": false}]}], "medicationReference": {"reference": "Medication/23ddff9a-45df-47c3-bc13-15c992b65bf5"}, "resourceType": "MedicationRequest"}}, {"fullUrl": "http://pvs.praxis.local/fhir/Practitioner/be9c73e7-bcae-4f57-b493-25c1419b67ac", "resource": {"identifier": [{"system": "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_ANR", "type": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "LANR"}]}, "value": "999999999"}], "qualification": [{"code": {"coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_Qualification_Type", "code": "00"}]}}, {"code": {"text": "Arzt", "coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_FOR_Berufsbezeichnung", "code": "Berufsbezeichnung"}]}}], "id": "be9c73e7-bcae-4f57-b493-25c1419b67ac", "name": [{"use": "official", "given": ["Mãrianne Gräfin"], "family": "Oldenburg", "_family": {"extension": [{"url": "http://hl7.org/fhir/StructureDefinition/humanname-own-name", "valueString": "Oldenburg"}]}}], "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Practitioner|1.1.0"]}, "resourceType": "Practitioner"}}, {"fullUrl": "http://pvs.praxis.local/fhir/Organization/c45ae027-8175-40fa-a274-c4cf5a7c09bb", "resource": {"telecom": [{"system": "phone", "value": "123456"}], "identifier": [{"system": "https://fhir.kbv.de/NamingSystem/KBV_NS_Base_BSNR", "type": {"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v2-0203", "code": "BSNR"}]}, "value": "999999999"}], "address": [{"type": "both", "_line": [{"extension": [{"url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-streetName", "valueString": "Sundgauallee"}, {"url": "http://hl7.org/fhir/StructureDefinition/iso21090-ADXP-houseNumber", "valueString": "59"}]}], "country": "D", "line": ["Sundgauallee 59"], "postalCode": "79114", "city": "Freiburg"}], "id": "c45ae027-8175-40fa-a274-c4cf5a7c09bb", "name": "VincenzkrankenhausTEST-ONLY", "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Organization|1.1.0"]}, "resourceType": "Organization"}}, {"fullUrl": "http://pvs.praxis.local/fhir/Coverage/90ec1578-38aa-4505-b4bf-8a0c4498c983", "resource": {"beneficiary": {"reference": "Patient/65255390-3c0c-4971-b6d4-ed2645f40716"}, "type": {"coding": [{"system": "http://fhir.de/CodeSystem/versicherungsart-de-basis", "code": "GKV"}]}, "status": "active", "payor": [{"identifier": {"system": "http://fhir.de/sid/arge-ik/iknr", "value": "109500969"}, "display": "Test GKV-SV"}], "id": "90ec1578-38aa-4505-b4bf-8a0c4498c983", "extension": [{"url": "http://fhir.de/StructureDefinition/gkv/besondere-personengruppe", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_PERSONENGRUPPE", "code": "00"}}, {"url": "http://fhir.de/StructureDefinition/gkv/dmp-kennzeichen", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_DMP", "code": "00"}}, {"url": "http://fhir.de/StructureDefinition/gkv/wop", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_ITA_WOP", "code": "02"}}, {"url": "http://fhir.de/StructureDefinition/gkv/versichertenart", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_SFHIR_KBV_VERSICHERTENSTATUS", "code": "1"}}], "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_FOR_Coverage|1.1.0"]}, "resourceType": "Coverage"}}, {"fullUrl": "http://pvs.praxis.local/fhir/Medication/23ddff9a-45df-47c3-bc13-15c992b65bf5", "resource": {"code": {"text": " 
", "coding": [{"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Medication_Type", "code": "freitext"}]}, "id": "23ddff9a-45df-47c3-bc13-15c992b65bf5", "extension": [{"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Category", "valueCoding": {"system": "https://fhir.kbv.de/CodeSystem/KBV_CS_ERP_Medication_Category", "code": "00"}}, {"url": "https://fhir.kbv.de/StructureDefinition/KBV_EX_ERP_Medication_Vaccine", "valueBoolean": false}], "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Medication_FreeText|1.1.0"]}, "resourceType": "Medication"}}], "id": "08ee83bf-af0b-4039-8cc0-23e69c87b7df", "timestamp": "2024-03-22T16:28:41.855+01:00", "meta": {"profile": ["https://fhir.kbv.de/StructureDefinition/KBV_PR_ERP_Bundle|1.1.0"], "lastUpdated": "2024-03-22T16:28:41.855+01:00"}, "resourceType": "Bundle"} + }] \ No newline at end of file From df73ca3f390a686337f253758190e8ac32d38824 Mon Sep 17 00:00:00 2001 From: Tobias Kast <Tobias.Kast@t-online.de> Date: Wed, 4 Dec 2024 14:28:20 +0100 Subject: [PATCH 4/5] Fix: Disable Test (CI Pipeline) --- .../java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java b/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java index 42013a91f..9a510c520 100644 --- a/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java +++ b/src/test/java/health/ere/ps/service/kbv/KBVFHIRUtilTest.java @@ -6,6 +6,7 @@ import java.util.Date; import java.util.UUID; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.CsvSource; @@ -19,10 +20,11 @@ public class KBVFHIRUtilTest { IParser parser = FhirContext.forR4().newXmlParser(); IParser jsonParser = FhirContext.forR4().newJsonParser(); + @Disabled("This test needs unpublished data") @ParameterizedTest - @CsvSource({ + @CsvSource({/* "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, TK-Mustermann_Max.xml, TK-Testprescription.xml, Freetext/_Test.xml, MedicationRequest_GebPflicht.xml", -/* + "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Joe_Doe.xml, TestGKVSV-Joe_Doe.xml, PZN/Ibuflam600N3.xml, Dosierung_Gekreuzt.xml", "Beirliner_Maria.xml, Praxis_Sigmuntowski.xml, Joe_Doe.xml, TestGKVSV-Joe_Doe.xml, PZN/LThyroxin75N3.xml, MedicationRequest_GebPflicht.xml", From 4b8d5641616bcf2e08d77006a80b6b8a096da680 Mon Sep 17 00:00:00 2001 From: Manuel Blechschmidt <manuel.blechschmidt@incentergy.de> Date: Mon, 16 Dec 2024 09:37:33 +0100 Subject: [PATCH 5/5] Update README.md Added profile RU for quarkus:dev --- README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4c4e6c2cf..5865f180d 100644 --- a/README.md +++ b/README.md @@ -109,10 +109,14 @@ The ere-health application read configuration is the following order from most i Make sure you created a `.env` file with your connector-specific configuration, see [CONFIGURATION.md](CONFIGURATION.md). - Then run: + Then run (with titus)): > mvn quarkus:dev + With RU: + + > mvn -Dquarkus.profile=RU quarkus:dev + [(Examples to start the application in different profiles and example CLI Parameters can be found in the CONFIGURATION.md file)](CONFIGURATION.md)