Class: Renalware::UKRDC::TransplantOperationPresenter
- Inherits:
-
Object
- Object
- Renalware::UKRDC::TransplantOperationPresenter
- Defined in:
- app/presenters/renalware/ukrdc/transplant_operation_presenter.rb
Constant Summary collapse
- SNOMED_KIDNEY =
{ code: "70536003", name: "Kidney Transplant" }.freeze
- SNOMED_PANCREAS =
{ code: "62438007", name: "Pancreas Transplant" }.freeze
- SNOMED_KIDNEY_PANCREAS =
{ code: "6471000179103", name: "Kidney Transplant" }.freeze
- PROCEDURE_SNOMED_MAP =
{ kidney: SNOMED_KIDNEY, kidney_dual: SNOMED_KIDNEY, kidney_pancreas: SNOMED_KIDNEY_PANCREAS, pancreas: SNOMED_PANCREAS, kidney_liver: SNOMED_KIDNEY, liver: SNOMED_KIDNEY }.freeze
- TRA76_TYPE_LIVE_RELATED_MAP =
{ sibling: { code: 21, description: "Transplant; Live related - sibling" }, father: { code: 74, description: "Transplant; Live related - father" }, mother: { code: 75, description: "Transplant; Live related - mother" }, child: { code: 77, description: "Transplant; Live related - child " }, other: { code: 23, description: "Transplant; Live related - other" } }.freeze
- TRA76_TYPE_OTHER_MAP =
{ cadaver: { code: 20, description: "Transplant; Cadaver donor" }, live_unrelated: { code: 24, description: "Transplant; Live genetically unrelated" }, non_heart_beating: { code: 28, description: "Transplant; non-heart-beating donor" }, unknown: { code: 29, description: "Transplant; type unknown" } }.freeze
- NHSBT_TYPE_MAP =
{ cadaver: "DBD", live_unrelated: "Live", live_related: "Live", non_heart_beating: "DCD" }.freeze
Instance Method Summary collapse
- #nhsbt_type ⇒ Object
- #performed_at ⇒ Object
- #procedure_type_name ⇒ Object
- #procedure_type_snomed_code ⇒ Object
-
#rr_tra76_options ⇒ Object
TRA76 is the type of donor.
Instance Method Details
#nhsbt_type ⇒ Object
57 58 59 |
# File 'app/presenters/renalware/ukrdc/transplant_operation_presenter.rb', line 57 def nhsbt_type NHSBT_TYPE_MAP[document.donor.type&.to_sym] end |
#performed_at ⇒ Object
61 62 63 |
# File 'app/presenters/renalware/ukrdc/transplant_operation_presenter.rb', line 61 def performed_at performed_on && Time.zone.parse(performed_on.to_s) end |
#procedure_type_name ⇒ Object
53 54 55 |
# File 'app/presenters/renalware/ukrdc/transplant_operation_presenter.rb', line 53 def procedure_type_name PROCEDURE_SNOMED_MAP.fetch(operation_type.to_sym)[:name] end |
#procedure_type_snomed_code ⇒ Object
49 50 51 |
# File 'app/presenters/renalware/ukrdc/transplant_operation_presenter.rb', line 49 def procedure_type_snomed_code PROCEDURE_SNOMED_MAP.fetch(operation_type.to_sym)[:code] end |
#rr_tra76_options ⇒ Object
TRA76 is the type of donor. For us it is a combination of donor type and donor relationship (if live related). Unhandled options: 25 “Transplant; Cadaver donor + transp other organ” 26 “Transplant; Live donor + transplant other organ” 27 “Transplant; Live donor non-UK transplant”
71 72 73 74 75 76 77 78 79 80 81 82 |
# File 'app/presenters/renalware/ukrdc/transplant_operation_presenter.rb', line 71 def @rr_tra76_options ||= begin return if document.donor.type.blank? donor_type = document.donor.type.to_sym if donor_type == :live_related else rr_tra76_other(donor_type) end end end |