Page History
...
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 følgende eksempel sætter værdierne direkte.
| Code Block | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
public DocumentEntry createDocumentEntry() {
return createDocumentEntry(new Code("1234567890", new LocalizedString("CPR"), "1.2.208.176.1.2"),
new Code("12345679999", new LocalizedString("DROS Testafdeling"), "1.2.208.176.1.1"),
"120220221112149", "220220221112149", "320220221122149", // datoer skal angives i UTC tid
new Code("001", new LocalizedString("Klinisk rapport"), "1.2.208.184.100.9"),
new Code("N", new LocalizedString("N"), "2.16.840.1.113883.5.25"),
null,
new Code("urn:ad:dk:medcom:appointmentsummary:full", new LocalizedString("DK Appointment Summary Document schema"), "1.2.208.184.100.10"),
new Code("22232009", new LocalizedString("hospital"), "2.16.840.1.113883.6.96"),
"da-DK",
"text/xml",
"Dato og tidspunkt for møde mellem patient og sundhedsperson",
new Code("39289-4", new LocalizedString("Follow-up (referred to) provider &or specialist, appointment date"), "2.16.840.1.113883.6.1"),
new Code("408443003", new LocalizedString("almen medicin"), "2.16.840.1.113883.6.96"),
"urn:uuid:69d3b9f3cfe0c274-7919170c-40e0457e-87318db4-32fb339216c2978ef88cbc67", // dette er det entryuuid, som skal anvendes i forbindelse med evt. ret og slet dokument
null"6862563602240318502.5433907004287661552.1645438909923",
null"6862563602240318502.5433907004287661552.1645438909923");
}
public DocumentEntry createDocumentEntry(Code patientId, Code organisation, String creationTime, String serviceStartTime, String serviceStopTime, Code classCode, Code confidentialityCode, List<Code> eventCodes, Code formatCode, Code healthcareFacilityTypeCode,
String languageCode, String mimeType, String title, Code typeCode, Code practiceSettingCode, String documentEntryUuid, String uniqueId, String logicalId) {
// Opret DocumentEntry for CDA dokumentet
DocumentEntry documentEntry = new DocumentEntry();
documentEntry.setEntryUuid(documentEntryUuid); //
documentEntry.setUniqueId(uniqueId);
documentEntry.setLogicalUuid(logicalId);
// Patient Identification
Identifiable patientIdentifiable = null;
if (patientId != null) {
AssigningAuthority patientIdAssigningAuthority = new AssigningAuthority(patientId.getSchemeName());
patientIdentifiable = new Identifiable(patientId.getCode(), patientIdAssigningAuthority);
}
documentEntry.setPatientId(patientIdentifiable);
documentEntry.setSourcePatientId(patientIdentifiable);
// Opret author (Organisation)
AssigningAuthority organisationAssigningAuthority = new AssigningAuthority(organisation.getSchemeName());
Author author = new Author();
if (organisation != null && organisation.getCode() != null) {
String orgDisplayname = (organisation.getDisplayName() != null ? organisation.getDisplayName().getValue() : "");
Organization authorOrganisation = new Organization(orgDisplayname, organisation.getCode(), organisationAssigningAuthority);
author.getAuthorInstitution().add(authorOrganisation);
}
documentEntry.setAuthor(author);
// Availability Status (enumeration: APPROVED, SUBMITTED, DEPRECATED)
documentEntry.setAvailabilityStatus(AvailabilityStatus.APPROVED);
// Datoer - skal angives i UTC tid
if (creationTime != null) {
documentEntry.setCreationTime(creationTime);
}
if (serviceStartTime != null) {
documentEntry.setServiceStartTime(serviceStartTime);
}
if (serviceStopTime != null) {
documentEntry.setServiceStopTime(serviceStopTime);
}
if (classCode != null) {
documentEntry.setClassCode(classCode);
}
if (confidentialityCode != null) {
documentEntry.getConfidentialityCodes().add(confidentialityCode);
}
List<Code> eventCodesEntry = documentEntry.getEventCodeList();
if (eventCodes != null) {
for (Code eventCode : eventCodes) {
eventCodesEntry.add(eventCode);
}
}
if (formatCode != null) {
documentEntry.setFormatCode(formatCode);
}
if (healthcareFacilityTypeCode != null) {
documentEntry.setHealthcareFacilityTypeCode(healthcareFacilityTypeCode);
}
if (languageCode != null) {
documentEntry.setLanguageCode(languageCode);
}
if (mimeType != null) {
documentEntry.setMimeType(mimeType);
}
documentEntry.setType(DocumentEntryType.STABLE);
if (title != null) {
documentEntry.setTitle(new LocalizedString(title));
}
if (typeCode != null) {
documentEntry.setTypeCode(typeCode);
}
if (practiceSettingCode != null) {
documentEntry.setPracticeSettingCode(practiceSettingCode);
}
return documentEntry;
} |
At lave ProvideAndRegisterDocumentSetRequestType kan gøres på følgende måde:
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
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"), "1");
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;
} |
At oprette SubmissionSet kan gøres som:
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
public SubmissionSet createSubmissionSet(Identifiable patientIdentifiable, Code contentTypeCode, String submissionTime) {
SubmissionSet submissionSet = new SubmissionSet();
submissionSet.setUniqueId(generateId());
submissionSet.setSourceId(generateId());
submissionSet.setEntryUuid(generateUUID());
submissionSet.setPatientId(patientIdentifiable);
submissionSet.setContentTypeCode(contentTypeCode);
submissionSet.setAvailabilityStatus(AvailabilityStatus.APPROVED);
if (submissionTime != null) {
submissionSet.setSubmissionTime(submissionTime);
}
return submissionSet;
} |
Og at oprette en association kan gøres som:
| Code Block | ||||||
|---|---|---|---|---|---|---|
| ||||||
public Association createAssociation(SubmissionSet submissionSet, DocumentEntry documentEntry) {
// Opret association mellem SubmissionSet og DocumentEntry
Association association = new Association();
association.setAssociationType(AssociationType.HAS_MEMBER);
association.setEntryUuid(generateUUID());
association.setSourceUuid(submissionSet.getEntryUuid());
association.setTargetUuid(documentEntry.getEntryUuid());
association.setAvailabilityStatus(AvailabilityStatus.APPROVED);
association.setLabel(AssociationLabel.ORIGINAL);
return association;
} |
| Code Block | ||||
|---|---|---|---|---|
| ||||
| Code Block | ||||
|---|---|---|---|---|
| ||||
...