Page History
...
Eksempelkoden stammer oprindeligt (er tilrettet for simplificering) fra DROS integrationstest og kan findes her: https://svn.nspop.dk/svn/components/dros/trunk/
...
- Opret kald i OpeneHealth code model
- For iti41 kald indebærer det blandt andet opret/indlæs af dokument samt opret af metadata til documententry
- For iti42, 57 og 61 indebærer det oprettelse af metadata
- Udfør kald - det transformeres til RIM formatet på vej ud, og tilbage til core model ved returnering automatisk vha. openeHealth frameworket
- Aflæs kaldets svar og håndter eventuelle fejl returneret
...
Først OpeneHealth core model, den kode man skriver i sit program:
Code Block | ||||
---|---|---|---|---|
| ||||
documentEntry.getConfidentialityCodes().add(new Code("N", new LocalizedString("N"), "2.16.840.1.113883.5.25")); AssigningAuthority patientIdAssigningAuthority = new AssigningAuthority("1.2.208.176.1.2"); Code patientCode = new Code("2512489996", new LocalizedString("CPR"), "1.2.208.176.1.2"); documentEntry.setPatientId(new Identifiable(patientCode, patientIdAssigningAuthority)); |
Og her tilsvarende RIM format, som openeHealth automatisk oversætter det til:
Code Block | ||||
---|---|---|---|---|
| ||||
<ns2:Classification classificationScheme="urn:uuid:f4f85eac-e6cb-4883-b524-f2705394840f" classifiedObject="urn:uuid:69d3b9f3-7919-40e0-8731-32fb339216c2" nodeRepresentation="N" id="urn:uuid:9068bc2b-1717-4337-abfb-027f303b20c6"> <ns2:Slot name="codingScheme"> <ns2:ValueList> <ns2:Value>2.16.840.1.113883.5.25</ns2:Value> </ns2:ValueList> </ns2:Slot> <ns2:Name> <ns2:LocalizedString xml:lang="en-US" charset="UTF-8" value="N"/> </ns2:Name> </ns2:Classification> <ns2:ExternalIdentifier registryObject="urn:uuid:69d3b9f3-7919-40e0-8731-32fb339216c2" identificationScheme="urn:uuid:58a6f841-87b3-4a3e-92fd-a8ffeff98427" value="2512489996^^^&1.2.208.176.1.2&ISO" id="urn:uuid:6dc240d8-d871-4df1-b8c6-3414f1415022"> <ns2:Name> <ns2:LocalizedString value="XDSDocumentEntry.patientId"/> </ns2:Name> </ns2:ExternalIdentifier> |
...
En vigtig detalje er Document Entry UUID, som sættes på DocumentEntrypå DocumentEntry. Denne anvendes iforbindelse i forbindelse med "Ret Stable Dokument" og "Slet Dokument" og skal sættes med prefix "urn:uuid:". I nedenstående request eksempel er det "urn:uuid:69d3b9f3-7919-40e0-8731-32fb339216c2"
Helt overordnet vil et kald ITI-41 kunne laves med:
Code Block | ||||
---|---|---|---|---|
| ||||
// Indlæs dokumentet, som skal registreres
String documentPayload = getAppointmentXmlDocument();
// Opret documentEntry
DocumentEntry documentEntry = createDocumentEntry();
// Opret kald/request
ProvideAndRegisterDocumentSetRequestType provideAndRegisterDocumentSetRequest = buildProvideAndRegisterDocumentSetRequestAftale(documentEntry, documentPayload);
try {
// Udfør kald
RegistryResponseType registryResponse = iti41PortType.documentRepositoryProvideAndRegisterDocumentSetB(provideAndRegisterDocumentSetRequest);
// Aflæs kaldets svar
handleResponse(registryResponse);
} catch (WebServiceException e) {
// Håndter exception
} |
Det at lave
Code Block | ||||
---|---|---|---|---|
| ||||
Code Block | ||||
---|---|---|---|---|
| ||||
I requestet nedenfor ses selve dokumentet (som MTOM attachment) samt de specificerede metadata (den del af requestet, der er i tag SubmitObjectsRequest)
...