class Lifen::CommunicationRequest

Public Instance Methods

send() click to toggle source
# File lib/lifen/communication_request.rb, line 17
def send
  json = application_client.post("fhir/CommunicationRequest", fhir_payload)

  self.uuid = json["id"]
  self.number_communications = Array(json["issue"]).length

  self
end

Private Instance Methods

application_client() click to toggle source
# File lib/lifen/communication_request.rb, line 62
def application_client
  @application_client ||= AppAuthenticatedClient.new
end
document_content() click to toggle source
# File lib/lifen/communication_request.rb, line 54
def document_content
  if !attachment.nil?
    attachment.fhir_payload
  else
    binary.fhir_payload
  end
end
fhir_payload() click to toggle source
# File lib/lifen/communication_request.rb, line 28
def fhir_payload

  payload = {
    resourceType: "CommunicationRequest",
    sender: [ sender.fhir_payload ],
    recipient: recipients.map(&:fhir_payload),
    contained: [],
    medium: medium.map(&:fhir_payload) ,
    category: [ category.fhir_payload],
    payload: [ document_content ]
  }

  if patient
    payload[:contained] << patient.fhir_payload
    payload[:subject] = [
      {reference: "patient"}
    ]
  end

  if content_string
    payload[:payload] << content_string.fhir_payload
  end

  payload
end