@@ -23,7 +23,7 @@ export class RelacionesPacientesComponent implements OnInit {
2323 if ( valor . relaciones ) {
2424 this . relacionesIniciales = valor . relaciones . slice ( 0 , valor . relaciones . length ) ;
2525 this . idPacientesRelacionados = this . relacionesIniciales . map ( rel => {
26- return { id : rel . referencia } ;
26+ return { id : rel . referencia ?. id || rel . referencia ?. _id || rel . referencia } ;
2727 } ) ;
2828 }
2929 }
@@ -90,7 +90,7 @@ export class RelacionesPacientesComponent implements OnInit {
9090 // Se eliminan de los resultados de la búsqueda los pacientes ya relacionados
9191 if ( this . paciente . relaciones && this . paciente . relaciones . length ) {
9292 for ( let i = 0 ; i < this . paciente . relaciones . length ; i ++ ) {
93- listaPacientes = listaPacientes . filter ( p => p . id !== this . paciente . relaciones [ i ] . referencia ) ;
93+ listaPacientes = listaPacientes . filter ( p => p . id !== ( this . paciente . relaciones [ i ] . referencia ?. id || this . paciente . relaciones [ i ] . referencia ?. _id || this . paciente . relaciones [ i ] . referencia ) ) ;
9494 }
9595 }
9696 this . posiblesRelaciones = listaPacientes ;
@@ -109,53 +109,24 @@ export class RelacionesPacientesComponent implements OnInit {
109109
110110 addRelacion ( unaRelacion ) {
111111 // Es una relacion existente?
112+ const idReferencia = unaRelacion . referencia ?. id || unaRelacion . referencia ?. _id || unaRelacion . referencia ;
112113 if ( unaRelacion . referencia ) {
113114 unaRelacion . relacion . esConviviente !== undefined ? unaRelacion . relacion . esConviviente = this . esConviviente : unaRelacion . relacion [ 'esConviviente' ] = this . esConviviente ;
114115 // Se la agrega al array de relaciones nuevas/editadas
115- let index = this . relacionesEdit . findIndex ( rel => rel . referencia === unaRelacion . referencia ) ;
116+ let index = this . relacionesEdit . findIndex ( rel => ( rel . referencia ?. id || rel . referencia ?. _id || rel . referencia ) === idReferencia ) ;
116117 index >= 0 ? this . relacionesEdit [ index ] = unaRelacion : this . relacionesEdit . push ( unaRelacion ) ;
117118 // Se actualiza el array de relaciones del paciente para que impacte en las vistas
118- index = this . paciente . relaciones . findIndex ( rel => rel . referencia === unaRelacion . referencia ) ;
119+ index = this . paciente . relaciones . findIndex ( rel => ( rel . referencia ?. id || rel . referencia ?. _id || rel . referencia ) === idReferencia ) ;
119120 this . paciente . relaciones [ index ] = unaRelacion ;
120121 } else {
121122 // relacion inexistente, construimos una nueva
122123 this . buscarPacRel = '' ;
123- const nuevaRelacion : IPacienteRelacion = Object . assign ( { } , {
124- id : null ,
125- relacion : null ,
126- referencia : null ,
127- nombre : '' ,
128- apellido : '' ,
129- documento : '' ,
130- fechaNacimiento : null ,
131- fechaFallecimiento : null ,
132- numeroIdentificacion : '' ,
133- foto : null ,
134- fotoId : null ,
135- activo : true ,
136- } ) ;
137-
138- // Se completan los campos de la nueva relación
139- nuevaRelacion . referencia = unaRelacion . id ;
140- nuevaRelacion . apellido = unaRelacion . apellido ;
141- nuevaRelacion . nombre = unaRelacion . nombre ;
142- nuevaRelacion . relacion = unaRelacion . relacion ;
124+ const nuevaRelacion : IPacienteRelacion = {
125+ referencia : unaRelacion ,
126+ relacion : unaRelacion . relacion ,
127+ activo : true
128+ } ;
143129 nuevaRelacion . relacion [ 'esConviviente' ] = this . esConviviente ;
144- if ( unaRelacion . documento ) {
145- nuevaRelacion . documento = unaRelacion . documento ;
146- }
147- if ( unaRelacion . numeroIdentificacion ) {
148- nuevaRelacion . numeroIdentificacion = unaRelacion . numeroIdentificacion ;
149- }
150- if ( unaRelacion . fotoId ) {
151- nuevaRelacion . fotoId = unaRelacion . fotoId ;
152- }
153- if ( unaRelacion . fechaNacimiento ) {
154- nuevaRelacion . fechaNacimiento = unaRelacion . fechaNacimiento ;
155- }
156- if ( unaRelacion . fechaFallecimiento ) {
157- nuevaRelacion . fechaFallecimiento = unaRelacion . fechaFallecimiento ;
158- }
159130
160131 // Se inserta nueva relación en array de relaciones del paciente
161132 if ( this . paciente . relaciones && this . paciente . relaciones . length ) {
@@ -164,12 +135,12 @@ export class RelacionesPacientesComponent implements OnInit {
164135 this . paciente . relaciones = [ nuevaRelacion ] ;
165136 }
166137 // Se inserta en el array de relaciones nuevas/editadas
167- let index = this . relacionesEdit . findIndex ( rel => rel . referencia === nuevaRelacion . referencia ) ;
168- index >= 0 ? this . relacionesEdit [ index ] = unaRelacion : this . relacionesEdit . push ( nuevaRelacion ) ;
169- this . idPacientesRelacionados . push ( { id : nuevaRelacion . referencia } ) ;
138+ let index = this . relacionesEdit . findIndex ( rel => ( rel . referencia ?. id || rel . referencia ?. _id || rel . referencia ) === ( nuevaRelacion . referencia ?. id || nuevaRelacion . referencia ?. _id || nuevaRelacion . referencia ) ) ;
139+ index >= 0 ? this . relacionesEdit [ index ] = nuevaRelacion : this . relacionesEdit . push ( nuevaRelacion ) ;
140+ this . idPacientesRelacionados . push ( { id : nuevaRelacion . referencia . id || nuevaRelacion . referencia } ) ;
170141
171142 // Si esta relación fue borrada anteriormente en esta edición, se quita del arreglo 'relacionesBorradas'
172- index = this . relacionesBorradas . findIndex ( rel => rel . referencia === nuevaRelacion . referencia ) ;
143+ index = this . relacionesBorradas . findIndex ( rel => ( rel . referencia ?. id || rel . referencia ?. _id || rel . referencia ) === ( nuevaRelacion . referencia ?. id || nuevaRelacion . referencia ?. _id || nuevaRelacion . referencia ) ) ;
173144 if ( index >= 0 ) {
174145 this . relacionesBorradas . splice ( index , 1 ) ;
175146 }
@@ -189,13 +160,14 @@ export class RelacionesPacientesComponent implements OnInit {
189160 removeRelacion ( i ) {
190161 if ( i >= 0 ) {
191162 // si la relacion borrada ya se encotraba almacenada en la DB
192- const index = this . relacionesIniciales . findIndex ( unaRel => unaRel . referencia === this . paciente . relaciones [ i ] . referencia ) ;
163+ const idReferenciaBorrar = this . paciente . relaciones [ i ] . referencia ?. id || this . paciente . relaciones [ i ] . referencia ?. _id || this . paciente . relaciones [ i ] . referencia ;
164+ const index = this . relacionesIniciales . findIndex ( unaRel => ( unaRel . referencia ?. id || unaRel . referencia ?. _id || unaRel . referencia ) === idReferenciaBorrar ) ;
193165 if ( index >= 0 ) {
194166 this . relacionesBorradas . push ( this . paciente . relaciones [ i ] ) ;
195167 }
196168 this . paciente . relaciones . splice ( i , 1 ) ;
197169 this . idPacientesRelacionados = this . paciente . relaciones . map ( rel => {
198- return { id : rel . referencia } ;
170+ return { id : rel . referencia ?. id || rel . referencia ?. _id || rel . referencia } ;
199171 } ) ;
200172 // notificamos cambios
201173 this . actualizar . emit ( {
@@ -207,7 +179,7 @@ export class RelacionesPacientesComponent implements OnInit {
207179
208180
209181 public onChange ( data ) {
210- const index = this . paciente . relaciones . findIndex ( ( rel : any ) => rel . referencia === data . idRelacionado ) ;
182+ const index = this . paciente . relaciones . findIndex ( ( rel : any ) => ( rel . referencia ?. id || rel . referencia ?. _id || rel . referencia ) === data . idRelacionado ) ;
211183 if ( index >= 0 ) {
212184 if ( data . operacion === 'edit' ) {
213185 // se muestra en panel principal para su edicion
0 commit comments