Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Gliffy Diagram
macroId0ae8a696-f205-4e88-95ac-79e6d9f9d455
displayNametransformering
namekald
pagePin23


Et eksempel på, hvordan forskellen mellem core model og RIM format kommer til udtryk, ses her for håndtering af confidentiality code og CPR nummer i forbindelse med registrering oprettelse af et dokument.

Først OpeneHealth core model, den kode man skriver i sit program:

...

Code Block
languagejava
titleEksempel på oprettelse af ProvideAndRegisterDocumentSetRequestType
linenumberstrue
public ProvideAndRegisterDocumentSetRequestType buildProvideAndRegisterDocumentSetRequest(DocumentEntry documentEntry, String documentPayload, Code contentTypeCode) {

	ProvideAndRegisterDocumentSet provideAndRegisterDocumentSet = new ProvideAndRegisterDocumentSet();

	Document document = new Document(documentEntry, new DataHandler(new ByteArrayDataSource(documentPayload.getBytes(), documentEntry.getMimeType())));
	provideAndRegisterDocumentSet.getDocuments().add(document);

	// Opret SubmissionSet for dokumentet
	SubmissionSet submissionSet = createSubmissionSet(documentEntry.getPatientId(), new Code("39289-4", new LocalizedString("Follow-up (referred to) provider &or specialist, appointment date"), "2.16.840.1.113883.6.1"), "20220221113011");
	provideAndRegisterDocumentSet.setSubmissionSet(submissionSet);

	// Opret association mellem SubmissionSet og DocumentEntry
	Association association = createAssociation(submissionSet, documentEntry);
	provideAndRegisterDocumentSet.getAssociations().add(association);

	// Transformer request - dette laver core model om til RIM format
	ProvideAndRegisterDocumentSetTransformer registerDocumentSetTransformer = new ProvideAndRegisterDocumentSetTransformer(ebXMLFactory);
	EbXMLProvideAndRegisterDocumentSetRequest30 ebxmlRequest = (EbXMLProvideAndRegisterDocumentSetRequest30) registerDocumentSetTransformer.toEbXML(provideAndRegisterDocumentSet);
	ProvideAndRegisterDocumentSetRequestType provideAndRegisterDocumentSetRequestType = ebxmlRequest.getInternal();

	return provideAndRegisterDocumentSetRequestType;
}

...

Code Block
languagejava
linenumberstrue
public void handleResponse(RegistryResponseType registryResponse) {

 	// Transformer response - dette laver RIM format til core model
	ResponseTransformer responseTransformer = new ResponseTransformer(ebXMLFactory);
	Response response = responseTransformer.fromEbXML(new EbXMLRegistryResponse30(registryResponse));

	if (registryResponseresponse.getStatus().equals(Status.SUCCESS.getOpcode30())	) {
		// Kaldet gik godt
	} else {
		// Der er fejl i kaldet, håndter dem
		for (RegistryError error : registryResponseresponse.getRegistryErrorList().getRegistryError()) {
		}
	}
}

...

Code Block
languagejava
titleEksempel på oprettelse af SubmitObjectsRequest
linenumberstrue
public SubmitObjectsRequest createDeprecateRequest(DocumentEntry documentEntryToDeprecate) {

	RegisterDocumentSet request = new RegisterDocumentSet();

	// Opret SubmissionSet for dokumentet der skal deprecates
	SubmissionSet submissionSet = createSubmissionSetForDocumentEntry(generateUUID(), documentEntryToDeprecate);
	request.setSubmissionSet(submissionSet);
	
	// Opret association mellem SubmissionSet og DocumentEntry der skal deprecates
	Association association = createAssociateDeprecateStatus(submissionSet, documentEntryToDeprecate);
	request.getAssociations().add(association);
	
	// Transformer request - dette laver core model om til RIM format
	RegisterDocumentSetTransformer requestTransformer = new RegisterDocumentSetTransformer(ebXMLFactory);
	EbXMLSubmitObjectsRequest30 ebxmlRequest = (EbXMLSubmitObjectsRequest30) requestTransformer.toEbXML(registerDocumentSet);
	SubmitObjectsRequest submitObjectsRequest = ebxmlRequest.getInternal();

	return submitObjectsRequest;
}

...