# Martín Pivote Week 27/02-03/02 ## Issues de la semana - [ ] 1. Turno 6 de marzo. no deja superponer pero esta libre la primera consulta, Nora rodriguez, turno medico (Esto siguieron intentando y pudieron, raro.) - [ ] 2. Arreglar tomo para el seguimiento de Robledo, Gabriela Noemi (en teoría la query está, falta correrla) - [x] 3. El pte CORONEL Norma Graciela (13-19058-0) de fisica me comentan que cuando van a planificacion y quieren vincular la plani con la simulacion le sale que dice que “no hay simulacion creada”, pero hay una simu ya cargada. - [x] la simu está asociada a una conduct vieja. Hay que apuntarla a la nueva. Averiguar qué otras cosas habría que apuntar a la nueva - [x] 4. Javi comentó algunas cosas a mejorar en historial de turnos. Armé [ticket](https://app.clickup.com/t/85zrpacgd), lo considero done acá xq no es prioridad de esta semana - [x] 5. San justo: no le pueden dar presente a Alvarez Martha Alejandra. - [x] 6. Agendas de médico -> no se muestran las actividades (creé [ticket](https://app.clickup.com/t/85zrpah7z)) (marco como done porque no se hace esta semana pero el ticket ta creado) - [x] 7. Destrabar Pacientes de Placa 27/02 - [x] 8. Guzman Catalina Irma: sacar alta administrativa al 3D - [x] 9. Torres Montes de Oca, Elias -> relacionar la orden de autorización que creó el presupuesto con la CD existente - [x] 10. Orrego mirian paciente de braqui no se puede atender - [x] 11. Sacar alta administrativa a Healy, Tadeo Antonio - [x] 12. Actualizar Excel de Interfase de OSDE al nuevo formato - [x] 13. Bug en el edit de los turnos de equipo - [x] 14. No pueden dar turno de primera consulta - reingreso a ambulatorios: armé [ticket](https://app.clickup.com/t/85zrpqh39) (al final ya existía así que achuré el ticket) - [x] 15. Informe de "Gestión > Estadística de Ingresos > Ingreso de pacientes" sale en blanco: armé [ticket](https://app.clickup.com/t/85zrpquhk) - [x] 16. Error de Facturación al intentar emitir [factura](https://backup.castelar.mevaterapia.lambdaclass.com/billing/invoices/a9c023f7-5c4e-4611-9ecc-f46f2d33d185) - [x] 17. Informe de pacientes en tratamiento > no debería traer pacientes sin nro de HC: existe [ticket](https://app.clickup.com/t/85zrkcfb9) - [x] 18. Agregar Opción de Eliminar Archivos en "Legajo para facturación" de Auditoría (ticket creado) - [x] 19. Destrabar pacientes de placa 02/03 (hay que averiguar qué hacer con Argañaraz y correr las queries) - [x] 20. Robledo Gabriela Noemi, no pueden atender y no les deja dar aplicación a la bqt porque no aparece en el select de tratamiento - [x] 21. Paciente Dualtes de Presupuesto, hay que corregir a dónde apunta la orden de autorización - [ ] 22. # Resumen fixes 27/02 ## 5. San justo: no le pueden dar presente a Alvarez Martha Alejandra > El presente se lo dan pero les tira error, en el index lo veo como atendido pero no aparece en la parte de asistencia, le están cargando las aplicaciones a manopla ### Problema el problema es al atender el turno. Por algún motivo hay 2 `ConductDefinitionsStages` para un mismo stage, pero uno no apunta a ninguna conduct (es `nil`) :::info tiré la query: ```elixir from cds in ConductDefinitionsStages, where: not is_nil(cds.stage_id) and is_nil(cds.conduct_definition_id) ``` Y me trajo 3 registros: ```elixir [ %Mevaterapia.Patients.ConductDefinitionsStages{ __meta__: #Ecto.Schema.Metadata<:loaded, "conduct_definitions_stages">, conduct_definition: #Ecto.Association.NotLoaded<association :conduct_definition is not loaded>, conduct_definition_id: nil, inserted_at: ~U[2022-12-23 08:13:14Z], stage: #Ecto.Association.NotLoaded<association :stage is not loaded>, stage_id: "d7a65d32-4c18-40af-b0d4-3f11feb47377", updated_at: ~U[2022-12-23 08:13:14Z] }, %Mevaterapia.Patients.ConductDefinitionsStages{ __meta__: #Ecto.Schema.Metadata<:loaded, "conduct_definitions_stages">, conduct_definition: #Ecto.Association.NotLoaded<association :conduct_definition is not loaded>, conduct_definition_id: nil, inserted_at: ~U[2023-01-31 14:24:02Z], stage: #Ecto.Association.NotLoaded<association :stage is not loaded>, stage_id: "d58a4255-ef71-4d91-8fdf-36a42414b540", updated_at: ~U[2023-01-31 14:24:02Z] }, %Mevaterapia.Patients.ConductDefinitionsStages{ __meta__: #Ecto.Schema.Metadata<:loaded, "conduct_definitions_stages">, conduct_definition: #Ecto.Association.NotLoaded<association :conduct_definition is not loaded>, conduct_definition_id: nil, inserted_at: ~U[2023-02-17 12:07:16Z], stage: #Ecto.Association.NotLoaded<association :stage is not loaded>, stage_id: "b0cbc811-4a67-44c9-ba27-d33e9f6d7e80", updated_at: ~U[2023-02-17 12:07:16Z] } ] ``` Se corresponden a los pacientes: - [Scocco, Raquel Dora](http://localhost:4000/medical_histories/bd7ba717-946f-43d0-9cba-b6595eba9b9f/overview) - [Miotti, Noemi](http://localhost:4000/medical_histories/62b00fe1-0228-492d-a945-d6d7e724d568/overview) - [Alvarez, Martha Alejandra](http://localhost:4000/medical_histories/7f5f76e4-5188-4dcc-b50f-fd7cc89dbbad/overview) ::: Armé [un ticket](https://app.clickup.com/t/85zrpeycn) para investigar por qué ocurre esto ### Posible solución Podemos borrar esos 3 registros, pero habría que ver por qué se generaron en primer lugar. (en gral tienen 5 minutos de diferencia el que se generó correctamente y el que no). Por si acaso sólo borramos el que le corresponde a Alvarez Martha Alejandra query: ```elixir import Ecto.Query alias Mevaterapia.Repo q = from scd in Mevaterapia.Patients.ConductDefinitionsStages, where: scd.stage_id == ^"b0cbc811-4a67-44c9-ba27-d33e9f6d7e80" and is_nil(scd.conduct_definition_id) Repo.delete_all(q) ``` :::success ya se corrieron las queries ::: ### Segundo problema Corro el fix local, y ahora no rompe cuando le doy la aplicación. Sin embargo, como el stage de su bqt no está marcado como current, se setea como que la conduct no está lista para darse aplicaciones La etapa anterior sigue marcada como current, hay que finalizarla: :::success ya se corrieron las queries ::: ``` stage_id = "247e024a-15a7-40ce-b3ed-f00ff0eef9d0" stage = Mevaterapia.Patients.get_stage!(stage_id) Mevaterapia.Patients.Stage.changeset(stage, %{current: false}) |> Mevaterapia.Repo.update!() ``` Pruebo marcarla como current: ```elixir stage_id = "b0cbc811-4a67-44c9-ba27-d33e9f6d7e80" stage = Mevaterapia.Patients.get_stage!(stage_id) Mevaterapia.Patients.Stage.changeset(stage, %{current: true}) |> Mevaterapia.Repo.update!() ``` :::warning no se corrió esta query ::: ### Tercer problema La paciente Tiene dos simulaciones para el tratamiento 3D. Una de ellas tiene todos sus fields archivados. Cuando se da una aplicación en ciertos casos se llama a la función `update_current_stage`. Cuando ocurre esto encuentra que la simulación de los fields archivados no tiene aplicaciones y setea su stage como el current. TLDR: es el clásico bug de la simulación no archivada con todos sus fields archivados, cuando doy una aplicación marca la etapa 1 como la current y la 2 como no current Entonces antes de correr el fix del segundo problema hay que archivarle dicha simulación: ```elixir simu = Mevaterapia.Patients.get_simulation!("b9027e68-9197-4843-b6fa-e205bb64d987") Mevaterapia.Patients.Simulation.archive_changeset(simu, %{archived: true}) |> Mevaterapia.Repo.update!() ``` :::success ya se corrieron las queries ::: ## 3. Conduct archivada CORONEL Norma Graciela Armé el snippet que cambia para que apunten a la nueva conduct: - el auth order detail de la orden de autorización - la simulación - los datos de ingreso y orden de autorización del seguimiento <details> <summary>snippet:</summary> ```elixir old_conduct_definition_id = "18ae5467-37d1-46b3-9523-18d475cba8ea" new_conduct_definition_id = "48b0f8cd-88d2-404a-919c-19f95243ff93" old_cd = Mevaterapia.Patients.get_conduct_definition!(old_conduct_definition_id) new_cd = Mevaterapia.Patients.get_conduct_definition!(new_conduct_definition_id) # old_cd_tomo_appointment_id = "1fa7eedd-9dfd-4933-a9c1-fd3cab5dadc1" # old_cd_twl_id = "3ae15e27-3c6c-4157-8c44-a1b748366e86" # # AUTH ORDER CHANGES # old_cd_auth_order_id = "16caef06-8d16-4890-9af3-2f520f456199" auth_order_detail_id = "7ccfa606-4c4e-4ba2-8203-215bc836b96e" auth_order = Mevaterapia.Patients.get_authorization_order!(old_cd_auth_order_id) auth_order_detail = Mevaterapia.Patients.get_authorization_order_detail!(auth_order_detail_id) Ecto.Changeset.change(auth_order_detail, %{ conduct_definition_id: new_cd.id }) |> Mevaterapia.Repo.update!() # # FOLLOW UP CHANGES # old_status = Mevaterapia.Repo.preload(old_cd, :status).status new_status = Mevaterapia.Repo.preload(new_cd, :status).status new_micro_status = :tomograph new_auth_order_status = :auth_order_ok new_auth_order_authorization_at = old_status.authorization_at new_auth_order_authorization_user_id = old_status.authorization_user_id new_ingress_at = old_status.hospital_ingress_at new_ingress_at_user_id = old_status.hospital_ingress_user_id changes = %{ micro_status: new_micro_status, auth_order_state: new_auth_order_status, authorization_at: new_auth_order_authorization_at, authorization_user_id: new_auth_order_authorization_user_id, hospital_ingress_at: new_ingress_at, hospital_ingress_user_id: new_ingress_at_user_id } Ecto.Changeset.change(new_status, changes) |> Mevaterapia.Repo.update!() # # SIMULATIONS # old_cd_macro_simulation_id = "1df5d946-0017-4069-bac2-49989398309a" macro_simulation = Mevaterapia.Patients.get_macro_simulation!(old_cd_macro_simulation_id) Ecto.Changeset.change(macro_simulation, %{ conduct_definition_id: new_cd.id }) |> Mevaterapia.Repo.update!() ``` </details> Una vez que le cargaron el turno de tomógrafo, tenemos que cambiarle la fecha: ```elixir # # Tomograph Appointment updates # original_unattended_tomo_id = "1fa7eedd-9dfd-4933-a9c1-fd3cab5dadc1" tomo_appointment_id = "6294f5ae-9e3e-4990-ba77-aa6fb5dfb523" original_tomo_appointment = Mevaterapia.Appointments.get_tomograph_appointment!(original_unattended_tomo_id) tomo_appointment = Mevaterapia.Appointments.get_tomograph_appointment!(tomo_appointment_id) original_twl = Mevaterapia.Repo.preload(original_tomo_appointment, :tomograph_waiting_list).tomograph_waiting_list twl = Mevaterapia.Repo.preload(tomo_appointment, :tomograph_waiting_list).tomograph_waiting_list Ecto.Changeset.change(tomo_appointment, %{start_at: original_tomo_appointment.start_at, end_at: original_tomo_appointment.end_at}) |> Mevaterapia.Repo.update!() Ecto.Changeset.change(twl, %{started_at: original_twl.started_at, arrived_at: original_twl.arrived_at, finished_at: NaiveDateTime.add(original_twl.arrived_at, original_tomo_appointment.duration_min * 60)}) |> Mevaterapia.Repo.update!() # # Follow up update # cd_id = "48b0f8cd-88d2-404a-919c-19f95243ff93" cd = Mevaterapia.Patients.get_conduct_definition!(cd_id) |> Mevaterapia.Repo.preload(:status) status = cd.status Ecto.Changeset.change(status, %{tomograph_at: NaiveDateTime.add(original_twl.arrived_at, original_tomo_appointment.duration_min * 60)}) |> Mevaterapia.Repo.update!() ``` :::success ya se corrió, para la próxima en lugar de crear un nuevo appointment y cambiar fechas, es más fácil marcar como atendido el turno de tomo que tenía. Sólo creamos un turno nuevo cuando nunca le crearon uno. ::: ## 7. Destrabar pacientes de placa 27/02 Los pacientes son: - Jañez Julio - Jaime Clara - Faure Estela - D’Alfonso Rita - Sanchez Beatriz - Metcalfe Brian :::success ya se corrieron las queries ::: queries: :::warning Después de correr la query de cada paciente, cerrar la sesión de iex y volver a abrir. Esto es más que nada por precausión, ya que si en algún punto de la query falla no queremos que use resultados de los fixes que corrimos anteriormente ::: ### Jañez, Julio <details> <summary>snippet</summary> ```elixir id_conduct = "a4b5e72b-cfa9-4821-8148-34b6944001c2" id_mw_verifier_plate = "02c90371-5977-44f2-836d-8afb9a96fc07" id_first_treatment_appointment = "338cbfde-101a-4285-a21f-0b2dae86ace3" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Jaime Clara <details> <summary>snippet</summary> ```elixir id_conduct = "725c61d1-ba93-4b3e-86e1-0424fc39e528" id_mw_verifier_plate = "92690e7e-5683-4d96-b068-31917f7a9651" id_first_treatment_appointment = "6993c3f8-2693-42a2-8820-d784e9cc20f0" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Faure Estela lo único raro que noté al correr este fix es: ![](https://i.imgur.com/ML3x55A.png) :::info está ok eso? la fecha del turno de equipo es anterior pero la fecha de corrección es del mismo día ::: <details> <summary>snippet</summary> ```elixir id_conduct = "2dfd77d9-cc64-495d-a0d7-b0e895dcc9dd" id_mw_verifier_plate = "11d571ea-fd48-4ec4-93a4-2e924e7b63aa" id_first_treatment_appointment = "e46ed0de-2128-49f7-b3c9-05de0ac13a87" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### D'Alfonso Rita Tiene 2 conducts pero solo una trabada en placa (la otra está en tomo todavía) También ocurrió lo mismo que para el paciente anterior: ![](https://i.imgur.com/Cjl5EIB.png) <details> <summary>snippet</summary> ```elixir id_conduct = "17028a56-c13c-47a9-a954-9f6c53f32927" id_mw_verifier_plate = "bd6ca2a6-c93f-4e27-8d6f-dda168a9faeb" id_first_treatment_appointment = "f7587d45-9a4e-4dcd-abb2-10396bdeb9af" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Sanchez Beatriz <details> <summary>snippet</summary> ```elixir id_conduct = "e9ddc317-1d92-44f0-a8d0-b89611b6b7f9" id_mw_verifier_plate = "f5d22a37-264b-4f33-88db-018a4ff71c3f" id_first_treatment_appointment = "05b5b97e-3169-46a0-b506-2987c5f6b1a8" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Metcalfe Brian <details> <summary>snippet</summary> ```elixir id_conduct = "aeda87e6-3f57-4e32-bed0-1426ec0c0be2" id_mw_verifier_plate = "076f5a46-d3b3-4baa-ab43-cd20effeb492" id_first_treatment_appointment = "72f9e3fe-1fe9-42ec-9b31-5b644a08d9ab" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ## 8. Guzman Catalina Irma: sacar alta administrativa al 3D ```elixir cd_id = "c06358cf-2eaf-4849-a647-c40310014ffc" cd = Mevaterapia.Patients.get_conduct_definition!(cd_id) Ecto.Changeset.change(cd, %{administrative_ok: false, administrative_ok_at: nil, administrative_ok_user_id: nil}) |> Mevaterapia.Repo.update!() ``` :::success ya se corrió ::: ## 9. Torres Montes de Oca, Elias -> relacionar la orden de autorización que creó el presupuesto con la CD existente - La institución del paciente "OSCAMGLYP" no tiene domicilio así que no va a aparecer para facturar. Se lo tienen que agregar si quieren facturar para esa institución (probé de agregarlo local y ahí si me apareció el item como pendiente) ```elixir # # Link AuthorizationOrderDetail to the existing treatment # aod = Mevaterapia.Patients.get_authorization_order_detail!("a5611cbc-d47e-47a6-b71f-eb54f5feac5d") existing_cd_id = "82520276-6c5a-455a-9c6f-ba88c4ffcf05" Mevaterapia.Patients.AuthorizationOrderDetail.changeset(aod, %{conduct_definition_id: existing_cd_id}) |> Mevaterapia.Repo.update!() # # Follow up # auth_order_id = "fcda58d8-97ba-4244-815c-1dda29fa6900" authorized_at_date = Mevaterapia.Patients.get_authorization_order!(auth_order_id).authorization_date {:ok, authorized_at} = NaiveDateTime.new(authorized_at_date, ~T[00:00:00]) authorization_user_id = Mevaterapia.Patients.get_authorization_order!(auth_order_id).finish_user_id cd = Mevaterapia.Patients.get_conduct_definition!(existing_cd_id) status = Mevaterapia.Repo.preload(cd, :status).status Mevaterapia.Patients.Status.update_changeset(status, %{authorization_at: authorized_at, authorization_user_id: authorization_user_id}) |> Mevaterapia.Repo.update!() ``` :::warning ya se corrió la query, SALVO la última parte del follow up que vamos a consultar qué fechas ponerle ::: :::info **update 01/03**: le pifiaron al nro de afiliado en el presupuesto, entonces crearon uno nuevo y lo volvieron a relacionar. Esto creó: - un nuevo tratamiento - una nueva orden de autorización La orden anterior la archivaron, entonces tenemos que volver a correr el mismo código pero ahora apuntando a la nueva orden de autorización ::: ```elixir # # Link AuthorizationOrderDetail to the existing treatment # aod = Mevaterapia.Patients.get_authorization_order_detail!("c5f931f8-1d69-48c6-a6c4-94b3692c9784") existing_cd_id = "82520276-6c5a-455a-9c6f-ba88c4ffcf05" Mevaterapia.Patients.AuthorizationOrderDetail.changeset(aod, %{conduct_definition_id: existing_cd_id}) |> Mevaterapia.Repo.update!() # # Follow up # auth_order_id = "0f975301-5ad0-4dd9-8a3c-6077eb3ddf97" authorized_at_date = Mevaterapia.Patients.get_authorization_order!(auth_order_id).authorization_date {:ok, authorized_at} = NaiveDateTime.new(authorized_at_date, ~T[00:00:00]) authorization_user_id = Mevaterapia.Patients.get_authorization_order!(auth_order_id).finish_user_id cd = Mevaterapia.Patients.get_conduct_definition!(existing_cd_id) status = Mevaterapia.Repo.preload(cd, :status).status Mevaterapia.Patients.Status.update_changeset(status, %{authorization_at: authorized_at, authorization_user_id: authorization_user_id}) |> Mevaterapia.Repo.update!() ``` :::warning no se corrió esta query todavía ::: ## 10. Orrego mirian paciente de braqui no se puede atender Tiré una query para ver sus stages: ```elixir q = from s in Mevaterapia.Patients.Stage, where: s.medical_history_id == ^orrego_mh_id iex(mevaterapia@backup-mevaterapia)5> Repo.all(q) [ %Mevaterapia.Patients.Stage{ __meta__: #Ecto.Schema.Metadata<:loaded, "conduct_definition_stages">, amount_days: nil, anatomical_region: "Pelvis", conduct_definitions: #Ecto.Association.NotLoaded<association :conduct_definitions is not loaded>, current: false, end_at: nil, end_user: #Ecto.Association.NotLoaded<association :end_user is not loaded>, end_user_id: nil, id: "bf2fb9d1-53a6-4ed3-8b68-f9e551c8e80f", inserted_at: ~U[2022-11-16 16:45:00Z], manual_end: false, medical_history: #Ecto.Association.NotLoaded<association :medical_history is not loaded>, medical_history_id: "58c3a87a-9985-43be-b5fe-a4632ccfa652", stage_number: 1, start_at: nil, updated_at: ~U[2023-02-28 08:42:10Z] } ] ``` Tiene una sola que no está marcada como current. La query que la marca como current otra vez es: ```elixir import Ecto.Query alias Mevaterapia.Repo stage_id = "bf2fb9d1-53a6-4ed3-8b68-f9e551c8e80f" stage = Mevaterapia.Patients.get_stage!(stage_id) Mevaterapia.Patients.Stage.changeset(stage, %{current: true}) |> Repo.update!() ``` :::success Ya se corrió la query ::: ## 11. Sacar alta administrativa a Healy, Tadeo Antonio query: ```elixir cd_id = "ead74b73-7bd7-4144-b296-466f26ffd49b" cd = Mevaterapia.Patients.get_conduct_definition!(cd_id) Ecto.Changeset.change(cd, %{administrative_ok: false, administrative_ok_at: nil, administrative_ok_user_id: nil}) |> Mevaterapia.Repo.update!() ``` :::success ya se corrió la query ::: # Resumen fixes 01/03 ## 13. Bug en el edit de los turnos de equipo > when the appointment can't be changed because it has attended at least once (that means it has an attended twl) the select for the machine is not shown. Because of that, the controller receives a nil machine_id in the params and the check wasn't working as expected. We need to check for a nil value and we're good to go 15. Informe de "Gestión > Estadística de Ingresos > Ingreso de pacientes" sale en blanco > Lo genera pero con ningún pagiente *Paciente Aclaración el filtro es el de primera consulta Y el filtro de inicio de tratamiento solo trae un par de paciente 16. Error de Facturación al intentar emitir [factura](https://backup.castelar.mevaterapia.lambdaclass.com/billing/invoices/a9c023f7-5c4e-4611-9ecc-f46f2d33d185) ![](https://i.imgur.com/zzb2R9R.png) Ya se pudo emitir, la factura en ese momento no tenía cargado el cbu de mipyme y no había CBU cargado en parámetros # Resumen fixes 02/03 ## 18. Agregar Opción de Eliminar Archivos en "Legajo para facturación" de Auditoría > la pte SORIA Gisele (13-18870-) que es de OSDD para poder eliminar en auditoria en la parte de "legajo para facturación" tener la opción de eliminar archivos. Necesito que la agreguen hoy porque impacta en la interface de OSDE que hace Alejandra. Gracias. Por ahora sólo vamos a borrar el paciente a mano, lo otro lleva más tiempo. Armé [ticket](https://app.clickup.com/t/85zrprj6w) de esto query: ```elixir alias Mevaterapia.Repo import Ecto.Query q = from af in Mevaterapia.Audits.PatientAuditFile, where: af.id == ^"b9aa0b3c-01f8-4b27-be9d-858610aed570" audit_file = Repo.one!(q) Repo.delete(audit_file) ``` :::success Esta query se corrió ::: ## 19. Destrabar pacientes de placa 02/03 Listado de pacientes: - Sotelo alberto - Argañaraz tiburcio - Ríos roxana - kucheruk Gabriel :::success Se corrieron las queries, hay una cosa puntual que hay que correr de Argañaraz ::: ### Sotelo Alberto <details> <summary>query:</summary> ```elixir id_conduct = "2c8b3052-7286-4b93-999b-1eaed935967c" id_mw_verifier_plate = "b291dd76-0ed1-4495-826f-d9bce3b1ad79" id_first_treatment_appointment = "bd041c24-9a54-4204-bf2c-79e8df774663" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Argañaraz Tiburcio <details> <summary>query:</summary> ```elixir id_conduct = "31ae3182-87aa-4424-8c1b-6f9fa32b6609" id_mw_verifier_plate = "7949a8f4-aa21-4762-b137-91d8a11f60d6" id_first_treatment_appointment = "bdd1fb43-c8c5-4e85-a451-840ae792b935" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) # We use left_at because the appointment wasn't attended (but actually was attended. The most accurate time is the time they marked the appointment as left) # doctor_ok_user_id params = %{ doctor_ok_at: mwl.left_at, doctor_ok_user_id: "1f7939f9-b6b1-4109-860b-d4300eae1a7e", verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> :::warning Argañaraz, falta marcar el turno usado en follow up como atendido ::: query: ```elixir verifier_plate_appointment_id = "7949a8f4-aa21-4762-b137-91d8a11f60d6" verifier_wl = hd(Mevaterapia.Repo.preload(Mevaterapia.Appointments.get_machine_appointment!(verifier_plate_appointment_id), :machine_waiting_list).machine_waiting_list) finished_at = verifier_wl.left_at Ecto.Changeset.change(verifier_wl, %{finished_at: finished_at, left_reason: nil, left_at: nil, attended_at: finished_at, user_attended_id: "0ce10d20-9f23-4548-9141-eab7bb21ff02"}) |> Mevaterapia.Repo.update() ``` :::warning No se corrió esta query todavía ::: ### Ríos Roxana <details> <summary>query:</summary> ```elixir id_conduct = "c6474816-aedc-4219-9f47-7bfdc2fca973" id_mw_verifier_plate = "2de10c3b-321a-4d4e-9863-eb56df6adfda" id_first_treatment_appointment = "e9f7e93d-a273-46ea-bf11-bf9f70f3cacf" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> ### Kucheruk Gabriel <details> <summary>query:</summary> ```elixir id_conduct = "7fe53166-250a-4a2c-b0d5-90ef6b570483" id_mw_verifier_plate = "2553f845-6df6-4c82-825c-14f26ace871f" id_first_treatment_appointment = "719e0e1c-e067-436a-905a-28d581dbceb8" status = Mevaterapia.Repo.get_by(Mevaterapia.Patients.Status, conduct_definition_id: id_conduct, current: true) mwl = Mevaterapia.Repo.get_by(Mevaterapia.Reception.MachineWaitingList, appointment_id: id_mw_verifier_plate) ma = Mevaterapia.Repo.get(Mevaterapia.Appointments.MachineAppointment, id_first_treatment_appointment) params = %{ doctor_ok_at: mwl.attended_at, doctor_ok_user_id: mwl.user_attended_id, verification_plate_state: :ok_medic, machine_appointment_at: ma.inserted_at, machine_appointment_user_id: ma.user_id, micro_status: :application } Mevaterapia.Patients.Status.migration_fix_changeset(status,params) |> Mevaterapia.Repo.update!() ``` </details> # Resumen fixes 03/03 ## 20. Robledo Gabriela Noemi, no pueden atender y no les deja dar aplicación a la bqt porque no aparece en el select de tratamiento > Buenos dias, me avisan de BQT que le quieren cargar la aplicación de braqui de la pte ROBLEDO Gabriela Noemi (13-18828-0). El turno lo esta cargando fuera de la agenda ya que ayer no le pudo dar el atendido, pero cuando va a cargar la apl no sale la opcion del tto de bqt. Cuando puedan lo podran ver. Gracias Tiene el mismo problema que tenía Alvarez, Martha Alejandra en donde tiene una simulación para la etapa 1 con sus fields archivados pero la simulación está sin archivar. Tenemos que hacer 2 cosas: - archivar la simu - actualizar el stage para que el actual sea el segundo en lugar del primero ```elixir # # Archive Simulation # simu = Mevaterapia.Patients.get_simulation!("bf307196-623e-47ce-99b0-acbb87800042") Mevaterapia.Patients.Simulation.archive_changeset(simu, %{archived: true}) |> Mevaterapia.Repo.update!() # # UPDATE CURRENT STAGE # first_stage_id = "d51cb546-c9e6-4ace-b8c6-d5fd62ccde4a" stage = Mevaterapia.Patients.get_stage!(first_stage_id) Mevaterapia.Patients.Stage.changeset(stage, %{current: false}) |> Mevaterapia.Repo.update!() second_stage_id = "42a42fa5-6258-4ec8-8b1d-997d7a969d7c" stage = Mevaterapia.Patients.get_stage!(second_stage_id) Mevaterapia.Patients.Stage.changeset(stage, %{current: true}) |> Mevaterapia.Repo.update!() ``` :::warning Ya se corrió la query ::: ## 21. Paciente Dualtes de Presupuesto, hay que corregir a dónde apunta la orden de autorización > Chicos relacione un presupuesto de la pte DUALTES Patricia Liliana (13-18934-0). Necesito para mañana a la mañana, que se relacione el presupuesto con el tto cargado porfa, porque hay que facturarlo. ```elixir # # Link AuthorizationOrderDetail to the existing treatment # aod = Mevaterapia.Patients.get_authorization_order_detail!("b295e822-8e6d-4a38-9b96-dbf30e138454") existing_cd_id = "d0e91480-8c93-4048-95af-706183466415" Mevaterapia.Patients.AuthorizationOrderDetail.changeset(aod, %{conduct_definition_id: existing_cd_id}) |> Mevaterapia.Repo.update!() # # Follow up # auth_order_id = "32c7019c-7d57-4d56-ab15-2e04eb6452c3" authorized_at_date = Mevaterapia.Patients.get_authorization_order!(auth_order_id).authorization_date {:ok, authorized_at} = NaiveDateTime.new(authorized_at_date, ~T[00:00:00]) authorization_user_id = Mevaterapia.Patients.get_authorization_order!(auth_order_id).finish_user_id cd = Mevaterapia.Patients.get_conduct_definition!(existing_cd_id) status = Mevaterapia.Repo.preload(cd, :status).status Mevaterapia.Patients.Status.update_changeset(status, %{authorization_at: authorized_at, authorization_user_id: authorization_user_id, auth_order_state: :auth_order_ok}) |> Mevaterapia.Repo.update!() ``` :::success Ya se corrió la query :::