Search in sources :

Example 1 with HL7Serializer

use of ca.bc.gov.hlth.hnweb.serialization.HL7Serializer in project moh-hnweb by bcgov.

the class EnrollmentService method getDemographics.

/**
 * Gets the demographic details by sending a V3 message to external endpoint.
 * Calls HL7Serializer api to serialize and deserialize request/response
 * @param demographicsRequest
 * @param transaction
 * @return
 * @throws HNWebException
 */
public GetDemographicsResponse getDemographics(GetDemographicsRequest demographicsRequest, Transaction transaction) throws HNWebException {
    HL7Serializer hl7Serializer = new HL7Serializer(new HL7Config());
    UserInfo userInfo = SecurityUtil.loadUserInfo();
    MessageMetaData mmd = new MessageMetaData(userInfo.getUsername(), SOURCE_SYSTEM_OVERRIDE, ORGANIZATION, transaction.getTransactionId().toString());
    // Serialize request object
    Object formattedRequest = hl7Serializer.toXml(demographicsRequest, mmd);
    // Create soap wrapper
    String xmlString = V3MessageUtil.wrap(formattedRequest.toString());
    logger.debug("Get Demographics wrapped xml request[{}]", xmlString);
    messageSent(transaction, mmd.getMessageIdExt());
    ResponseEntity<String> response = postHcimRequest(xmlString, transaction.getTransactionId().toString());
    logger.debug("Response Status: {} ; Message:\n{}", response.getStatusCode(), response.getBody());
    if (response.getStatusCode() != HttpStatus.OK) {
        logger.error("Could not connect to downstream service. Service returned {}", response.getStatusCode());
        throw new HNWebException(ExceptionType.DOWNSTREAM_FAILURE);
    }
    // De-Serialize demographics response
    GetDemographicsResponse getDemographicsResponse = hl7Serializer.fromXml(response.getBody(), GetDemographicsResponse.class);
    messageReceived(transaction, getDemographicsResponse.getMessageIdExtension());
    return getDemographicsResponse;
}
Also used : MessageMetaData(ca.bc.gov.hlth.hnweb.model.v3.MessageMetaData) HL7Serializer(ca.bc.gov.hlth.hnweb.serialization.HL7Serializer) HNWebException(ca.bc.gov.hlth.hnweb.exception.HNWebException) HL7Config(ca.bc.gov.hlth.hnweb.serialization.HL7Config) GetDemographicsResponse(ca.bc.gov.hlth.hnweb.model.v3.GetDemographicsResponse) UserInfo(ca.bc.gov.hlth.hnweb.security.UserInfo)

Example 2 with HL7Serializer

use of ca.bc.gov.hlth.hnweb.serialization.HL7Serializer in project moh-hnweb by bcgov.

the class EnrollmentService method findCandidates.

/**
 * Finds the candidates details by sending a V3 message to external endpoint.
 * Calls HL7Serializer api to serialize and deserialize request/response
 * @param findCandidatesRequest
 * @param transaction
 * @return
 * @throws HNWebException
 */
public FindCandidatesResponse findCandidates(FindCandidatesRequest findCandidatesRequest, Transaction transaction) throws HNWebException {
    HL7Serializer hl7Serializer = new HL7Serializer(new HL7Config());
    UserInfo userInfo = SecurityUtil.loadUserInfo();
    MessageMetaData mmd = new MessageMetaData(userInfo.getUsername(), SOURCE_SYSTEM_OVERRIDE, ORGANIZATION, transaction.getTransactionId().toString());
    // Serialize request object
    Object formattedRequest = hl7Serializer.toXml(findCandidatesRequest, mmd);
    // Create soap wrapper
    String xmlString = V3MessageUtil.wrap(formattedRequest.toString());
    logger.debug("Get Name Search wrapped xml request[{}]", xmlString);
    messageSent(transaction, mmd.getMessageIdExt());
    ResponseEntity<String> response = postHcimRequest(xmlString, transaction.getTransactionId().toString());
    logger.debug("Response Status: {} ; Message:\n{}", response.getStatusCode(), response.getBody());
    if (response.getStatusCode() != HttpStatus.OK) {
        logger.error("Could not connect to downstream service. Service returned {}", response.getStatusCode());
        throw new HNWebException(ExceptionType.DOWNSTREAM_FAILURE);
    }
    // De-Serialize findCandidate response
    FindCandidatesResponse findCandidatesResponse = hl7Serializer.fromXml(response.getBody(), FindCandidatesResponse.class);
    messageReceived(transaction, findCandidatesResponse.getMessageIdExtension());
    return findCandidatesResponse;
}
Also used : MessageMetaData(ca.bc.gov.hlth.hnweb.model.v3.MessageMetaData) HL7Serializer(ca.bc.gov.hlth.hnweb.serialization.HL7Serializer) HNWebException(ca.bc.gov.hlth.hnweb.exception.HNWebException) HL7Config(ca.bc.gov.hlth.hnweb.serialization.HL7Config) UserInfo(ca.bc.gov.hlth.hnweb.security.UserInfo) FindCandidatesResponse(ca.bc.gov.hlth.hnweb.model.v3.FindCandidatesResponse)

Aggregations

HNWebException (ca.bc.gov.hlth.hnweb.exception.HNWebException)2 MessageMetaData (ca.bc.gov.hlth.hnweb.model.v3.MessageMetaData)2 UserInfo (ca.bc.gov.hlth.hnweb.security.UserInfo)2 HL7Config (ca.bc.gov.hlth.hnweb.serialization.HL7Config)2 HL7Serializer (ca.bc.gov.hlth.hnweb.serialization.HL7Serializer)2 FindCandidatesResponse (ca.bc.gov.hlth.hnweb.model.v3.FindCandidatesResponse)1 GetDemographicsResponse (ca.bc.gov.hlth.hnweb.model.v3.GetDemographicsResponse)1