pablodanielrey / ttps

práctica de ttps
GNU General Public License v3.0
0 stars 0 forks source link

tengo que hacer refactor de gran parte del código del manejo de esstados del estudio #45

Closed pablodanielrey closed 2 years ago

pablodanielrey commented 2 years ago

es necesario hacer refactor de todo el manejo de estados para exportar la funcionalidad de manejo del workflow a los serializadores de los estados. ahora solamente se está realizando dentro de la vista de estados del estudio. la idea es transmitirlo a los serializadores de los estados.

pablodanielrey commented 2 years ago

impelemente los refactors de los serializadores y de la vista sin problemas. un estudio completo { "id": "ec80c8ef-8772-435c-9844-b9a69c042adb", "fecha_alta": "2021-12-17", "diagnostico": { "id": "00b2179c-966e-4e17-9c91-345938de732c", "nombre": "Fascitis plantar" }, "paciente": { "id": "13ae12b5-6f50-49bd-a303-769f8bf82232", "nombre": "Paciente 4", "apellido": "Cero 4", "dni": "4", "email": "email4@gmail.com", "fecha_nacimiento": "1955-10-02", "telefono": "221 22224", "direccion": "calle 4 la plata", "historia_clinica": "algo de historia", "obra_social": { "obra_social": { "id": "12b01ff0-800c-4b6f-b200-2f357037a806", "nombre": "IOMA" }, "numero_afiliado": "numero-13ae12b5-6f50-49bd-a303-769f8bf82232" }, "tutor": null }, "medico_derivante": { "id": "13ae12b5-6f50-49bd-a303-769f8bf82232", "nombre": "Paciente 4", "apellido": "Cero 4", "email": "email4@gmail.com", "matricula": null }, "tipo": { "id": "4e6f10ac-c8a1-4d3a-9485-8d0b9fb8409a", "nombre": "Carrier de enfermedades monogénicas recesivas" }, "estados": [ { "id": "f0d58723-ab65-4d0c-b791-76bdc04048e8", "fecha": "2021-11-02T23:32:59.514971-03:00", "comprobante": { "id": "6d2b6756-6723-47c4-8bc6-825201d6f0e0", "content_type": "image/png", "encoding": "base64", "contenido": "" }, "resourcetype": "EsperandoComprobanteDePago" }, { "id": "97e5c4d7-3a08-4c75-8a4f-6ef85e1699b7", "fecha": "2021-12-18T14:27:32.812582-03:00", "fecha_enviado": "2021-12-18T14:27:32.812582-03:00", "resourcetype": "EnviarConsentimientoInformado" }, { "id": "3a185d28-998f-4957-8138-1604abe8cab1", "fecha": "2021-12-18T15:51:36.585663-03:00", "consentimiento": { "id": "8a2ff736-f01b-433d-88ca-087d5f85b73a", "content_type": "image/png", "encoding": "base64", "contenido": "" }, "resourcetype": "EsperandoConsentimientoInformado" }, { "id": "f86d75d6-e8aa-4b74-99d6-09aec9632ebb", "fecha": "2021-12-18T15:58:29.633798-03:00", "turno": { "id": "90c950cb-bd43-4519-8400-f0a912e5df25", "persona": { "id": "13ae12b5-6f50-49bd-a303-769f8bf82232", "nombre": "Paciente 4", "apellido": "Cero 4", "dni": "4", "email": "email4@gmail.com", "fecha_nacimiento": "1955-10-02", "telefono": "221 22224", "direccion": "calle 4 la plata", "historia_clinica": "algo de historia", "obra_social": { "obra_social": { "id": "12b01ff0-800c-4b6f-b200-2f357037a806", "nombre": "IOMA" }, "numero_afiliado": "numero-13ae12b5-6f50-49bd-a303-769f8bf82232" }, "tutor": null }, "inicio": "2021-12-18T15:58:29.633798-03:00", "fin": "2021-12-18T16:45:29.633798-03:00" }, "resourcetype": "EsperandoSeleccionDeTurnoParaExtraccion" }, { "id": "1583af88-aa91-47fe-bb05-e33fec8f2848", "fecha": "2021-12-18T16:16:27.407383-03:00", "fecha_muestra": "2021-12-18T16:16:27.407383-03:00", "mililitros": 10.2, "freezer": "superfrio", "expirado": false, "turno": null, "resourcetype": "EsperandoTomaDeMuestra" }, { "id": "e544c949-2c57-4940-acd1-92513bbebe20", "fecha": "2021-12-18T16:18:48.536528-03:00", "extracionista": "pepe se la lleva", "fecha_retiro": "2021-12-18T16:18:48.536528-03:00", "resourcetype": "EsperandoRetiroDeExtaccion" }, { "id": "80a7062f-7e0b-4325-a03d-c85d8aaf4a70", "fecha": "2021-12-18T16:20:05.785609-03:00", "numero_lote": "lote2", "resourcetype": "EsperandoLoteDeMuestraParaProcesamientoBiotecnologico" }, { "id": "fd86ba69-6776-4db9-8537-a45dfac8664b", "fecha": "2021-12-18T16:21:08.108027-03:00", "resultado_url": "http://google.com/s", "fecha_resultado": "2021-12-18", "resourcetype": "EsperandoProcesamientoDeLoteBiotecnologico" }, { "id": "d4f7df39-daa4-4228-8ab9-d5d2c96b1943", "fecha": "2021-12-18T16:54:48.004127-03:00", "fecha_entrega": null, "resourcetype": "EsperandoEntregaAMedicoDerivante" }, { "id": "69de140e-8e31-4393-b883-474b984bb99d", "fecha": "2021-12-18T17:09:18.017940-03:00", "fecha_entrega": null, "resourcetype": "EsperandoEntregaAMedicoDerivante" }, { "id": "907a86f6-b119-462d-8581-9610e27e0b2f", "fecha": "2021-12-18T16:23:33.703748-03:00", "fecha_informe": "2021-12-03", "medico_informante": { "id": "2c4fa79c-5aca-4a47-ac29-b9638da5e3a7", "nombre": "Medico", "apellido": "Informante", "email": "medico@simed.com", "matricula": "matricula_de_informante1", "usuario": { "username": "medicoinf", "password": "" } }, "informe": null, "resultado": null, "resourcetype": "EsperandoInterpretacionDeResultados" }, { "id": "5d6f3653-d044-4b3d-98f7-6bbbd1607315", "fecha": "2021-12-18T17:09:33.600510-03:00", "fecha_entrega": "2021-12-18T17:09:33.600510-03:00", "resourcetype": "EsperandoEntregaAMedicoDerivante" }, { "id": "b014dc36-0e9b-4afb-a62a-98d7f1100759", "fecha": "2021-12-18T17:15:02.989155-03:00", "resourcetype": "ResultadoDeEstudioEntregado" } ], "ultimo_estado": { "id": "b014dc36-0e9b-4afb-a62a-98d7f1100759", "fecha": "2021-12-18T17:15:02.989155-03:00", "resourcetype": "ResultadoDeEstudioEntregado" }, "presupuesto": "d15c6842-73de-4a79-a311-f8560ba58f70" }

e implemente los cambios de estado como modificaciones al ultimo estado del estudio. dado por el id del estado que se eneucnetra en

"ultimo_estado":{ "id":------ }

pablodanielrey commented 2 years ago

por ejemplo para disparar el cambio de estado y la actualización del estado actual EvniarConsentimientoInformado se puede realizar un put a : http://localhost:8000/estudio_api/estados/97e5c4d7-3a08-4c75-8a4f-6ef85e1699b7/

con el contenido: { "id": "97e5c4d7-3a08-4c75-8a4f-6ef85e1699b7", "fecha": "2021-12-18T14:27:32.812582-03:00", "fecha_enviado": "2021-12-18T14:27:32.812582-03:00", "resourcetype": "EnviarConsentimientoInformado" }

eso dispara la actualización y la ejecución del workflow. y responde el siguiente etado generado.

{ "id": "3a185d28-998f-4957-8138-1604abe8cab1", "fecha": "2021-12-18T15:51:36.585663-03:00", "consentimiento": null, "resourcetype": "EsperandoConsentimientoInformado" }

pablodanielrey commented 2 years ago

idem para:

http://localhost:8000/estudio_api/estados/3a185d28-998f-4957-8138-1604abe8cab1/

{ "id": "3a185d28-998f-4957-8138-1604abe8cab1", "fecha": "2021-12-18T15:51:36.585663-03:00", "consentimiento": { "contenido":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==" }, "resourcetype": "EsperandoConsentimientoInformado" }

y resulta en:

{ "id": "f86d75d6-e8aa-4b74-99d6-09aec9632ebb", "fecha": "2021-12-18T15:58:29.633798-03:00", "turno": null, "resourcetype": "EsperandoSeleccionDeTurnoParaExtraccion" }

pablodanielrey commented 2 years ago

otro cambio tambien:

http://localhost:8000/estudio_api/estados/f86d75d6-e8aa-4b74-99d6-09aec9632ebb/

{ "id": "f86d75d6-e8aa-4b74-99d6-09aec9632ebb", "fecha": "2021-12-18T15:58:29.633798-03:00", "turno": { "inicio": "2021-12-18T15:58:29.633798-03:00", "fin": "2021-12-18T16:45:29.633798-03:00" }, "resourcetype": "EsperandoSeleccionDeTurnoParaExtraccion" }

con resultado:

{ "id": "1583af88-aa91-47fe-bb05-e33fec8f2848", "fecha": "2021-12-18T16:16:27.407383-03:00", "fecha_muestra": null, "mililitros": null, "freezer": null, "expirado": false, "turno": { "id": "90c950cb-bd43-4519-8400-f0a912e5df25", "persona": { "id": "13ae12b5-6f50-49bd-a303-769f8bf82232", "nombre": "Paciente 4", "apellido": "Cero 4", "dni": "4", "email": "email4@gmail.com", "fecha_nacimiento": "1955-10-02", "telefono": "221 22224", "direccion": "calle 4 la plata", "historia_clinica": "algo de historia", "obra_social": { "obra_social": { "id": "12b01ff0-800c-4b6f-b200-2f357037a806", "nombre": "IOMA" }, "numero_afiliado": "numero-13ae12b5-6f50-49bd-a303-769f8bf82232" }, "tutor": null }, "inicio": "2021-12-18T15:58:29.633798-03:00", "fin": "2021-12-18T16:45:29.633798-03:00" }, "resourcetype": "EsperandoTomaDeMuestra" }

pablodanielrey commented 2 years ago

ya estaría el refactor completo. solo faltaría agregarles permisos de seguridad a todo el workflow controlando dentro de los serializers el tema.