@andes/fhir 1.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.circleci/config.yml +69 -0
  2. package/.editorconfig +14 -0
  3. package/.gitattributes +1 -0
  4. package/.github/CODEOWNERS +1 -0
  5. package/.github/labeler.yml +11 -0
  6. package/.github/pull_request_template.md +28 -0
  7. package/.github/workflows/build_test.yml +14 -0
  8. package/.github/workflows/has_conflicts.yml +13 -0
  9. package/CHANGELOG.md +306 -0
  10. package/LICENSE +674 -0
  11. package/README.md +2 -0
  12. package/dist/index.js +33 -0
  13. package/dist/index.js.map +1 -0
  14. package/dist/src/data/patient.json +185 -0
  15. package/dist/src/lib/allergyIntolerance.js +40 -0
  16. package/dist/src/lib/allergyIntolerance.js.map +1 -0
  17. package/dist/src/lib/bundle.js +23 -0
  18. package/dist/src/lib/bundle.js.map +1 -0
  19. package/dist/src/lib/composition.js +151 -0
  20. package/dist/src/lib/composition.js.map +1 -0
  21. package/dist/src/lib/condition.js +80 -0
  22. package/dist/src/lib/condition.js.map +1 -0
  23. package/dist/src/lib/config.js +23 -0
  24. package/dist/src/lib/config.js.map +1 -0
  25. package/dist/src/lib/config.test.js +13 -0
  26. package/dist/src/lib/config.test.js.map +1 -0
  27. package/dist/src/lib/device.js +39 -0
  28. package/dist/src/lib/device.js.map +1 -0
  29. package/dist/src/lib/device.test.js +10 -0
  30. package/dist/src/lib/device.test.js.map +1 -0
  31. package/dist/src/lib/document-reference.js +104 -0
  32. package/dist/src/lib/document-reference.js.map +1 -0
  33. package/dist/src/lib/immunization.js +68 -0
  34. package/dist/src/lib/immunization.js.map +1 -0
  35. package/dist/src/lib/medication.js +65 -0
  36. package/dist/src/lib/medication.js.map +1 -0
  37. package/dist/src/lib/medicationRequest.js +100 -0
  38. package/dist/src/lib/medicationRequest.js.map +1 -0
  39. package/dist/src/lib/medicationStatement.js +56 -0
  40. package/dist/src/lib/medicationStatement.js.map +1 -0
  41. package/dist/src/lib/organization.js +91 -0
  42. package/dist/src/lib/organization.js.map +1 -0
  43. package/dist/src/lib/patient.js +361 -0
  44. package/dist/src/lib/patient.js.map +1 -0
  45. package/dist/src/lib/patient.test.js +40 -0
  46. package/dist/src/lib/patient.test.js.map +1 -0
  47. package/dist/src/lib/practitioner.js +161 -0
  48. package/dist/src/lib/practitioner.js.map +1 -0
  49. package/index.ts +31 -0
  50. package/jest.config.js +12 -0
  51. package/package.json +54 -0
  52. package/src/data/patient.json +185 -0
  53. package/src/lib/allergyIntolerance.ts +36 -0
  54. package/src/lib/bundle.ts +19 -0
  55. package/src/lib/composition.ts +153 -0
  56. package/src/lib/condition.ts +80 -0
  57. package/src/lib/config.test.ts +13 -0
  58. package/src/lib/config.ts +17 -0
  59. package/src/lib/device.test.ts +9 -0
  60. package/src/lib/device.ts +36 -0
  61. package/src/lib/document-reference.ts +102 -0
  62. package/src/lib/immunization.ts +64 -0
  63. package/src/lib/medication.ts +61 -0
  64. package/src/lib/medicationRequest.ts +100 -0
  65. package/src/lib/medicationStatement.ts +52 -0
  66. package/src/lib/organization.ts +89 -0
  67. package/src/lib/patient.test.ts +38 -0
  68. package/src/lib/patient.ts +374 -0
  69. package/src/lib/practitioner.ts +157 -0
  70. package/tsconfig.test.json +18 -0
  71. package/tslint.json +139 -0
@@ -0,0 +1,361 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verify = exports.decode = exports.encode = void 0;
4
+ var config_1 = require("./config");
5
+ /**
6
+ * Encode a patient from ANDES to FHIR
7
+ * @param {} patient
8
+ */
9
+ function encode(patient) {
10
+ if (patient) {
11
+ var identificadores = [];
12
+ if (patient.documento) {
13
+ identificadores.push({
14
+ system: 'http://www.renaper.gob.ar/dni',
15
+ value: patient.documento
16
+ });
17
+ }
18
+ if (patient.cuil) {
19
+ identificadores.push({
20
+ system: 'http://www.renaper.gob.ar/cuil',
21
+ value: patient.cuil
22
+ });
23
+ }
24
+ identificadores.push({
25
+ system: config_1.getDominio(),
26
+ value: patient._id
27
+ });
28
+ // Parsea contactos
29
+ var contactos = patient.contacto ? patient.contacto.filter(function (c) { return c.valor; }).map(function (unContacto) {
30
+ var cont = {
31
+ resourceType: 'ContactPoint',
32
+ value: unContacto.valor,
33
+ rank: unContacto.ranking,
34
+ };
35
+ switch (unContacto.tipo) {
36
+ case 'fijo':
37
+ cont['system'] = 'phone';
38
+ break;
39
+ case 'celular':
40
+ cont['system'] = 'phone';
41
+ break;
42
+ case 'email':
43
+ cont['system'] = 'email';
44
+ break;
45
+ }
46
+ return cont;
47
+ }) : [];
48
+ // Parsea direcciones
49
+ var direcciones = patient.direccion ? patient.direccion.filter(function (dir) { return dir.ubicacion.localidad; }).map(function (unaDireccion) {
50
+ var direc = {
51
+ resourceType: 'Address',
52
+ postalCode: unaDireccion.codigoPostal ? unaDireccion.codigoPostal : '',
53
+ line: [unaDireccion.valor],
54
+ city: unaDireccion.ubicacion.localidad ? unaDireccion.ubicacion.localidad.nombre : '',
55
+ state: unaDireccion.ubicacion.provincia ? unaDireccion.ubicacion.provincia.nombre : '',
56
+ country: unaDireccion.ubicacion.pais ? unaDireccion.ubicacion.pais.nombre : '',
57
+ };
58
+ return direc;
59
+ }) : [];
60
+ // Parsea relaciones
61
+ var relaciones = patient.relaciones ? patient.relaciones.filter(function (r) { return !!r.relacion; }).map(function (unaRelacion) {
62
+ var relacion = {
63
+ relationship: [{
64
+ text: unaRelacion.relacion.nombre
65
+ }],
66
+ name: {
67
+ resourceType: 'HumanName',
68
+ family: unaRelacion.apellido.split(' '),
69
+ given: unaRelacion.nombre.split(' '),
70
+ }
71
+ };
72
+ return relacion;
73
+ }) : [];
74
+ var genero = void 0;
75
+ switch (patient.genero) {
76
+ case 'femenino':
77
+ genero = 'female';
78
+ break;
79
+ case 'masculino':
80
+ genero = 'male';
81
+ break;
82
+ case 'otro':
83
+ genero = 'other';
84
+ break;
85
+ }
86
+ var pacienteFHIR = {
87
+ id: patient.id,
88
+ resourceType: 'Patient',
89
+ identifier: identificadores,
90
+ active: patient.activo ? patient.activo : null,
91
+ name: [{
92
+ use: 'official',
93
+ resourceType: 'HumanName',
94
+ family: patient.apellido.split(' '),
95
+ given: patient.nombre.split(' '),
96
+ text: patient.nombre + " " + patient.apellido,
97
+ _family: [{
98
+ extension: [
99
+ {
100
+ url: 'http://hl7.org/fhir/StructureDefinition/humanname-fathers-family',
101
+ valueString: patient.apellido
102
+ },
103
+ ]
104
+ }],
105
+ }],
106
+ gender: genero,
107
+ birthDate: patient.fechaNacimiento ? typeof patient.fechaNacimiento === 'string' ? new Date(patient.fechaNacimiento).toISOString().slice(0, 10) : patient.fechaNacimiento.toISOString().slice(0, 10) : null
108
+ };
109
+ if (patient.fechaFallecimiento) {
110
+ pacienteFHIR.deceasedDateTime = typeof patient.fechaFallecimiento === 'string' ? new Date(patient.fechaFallecimiento.toISOString().slice(0, 10)) : patient.fechaFallecimiento.toISOString().slice(0, 10);
111
+ }
112
+ if (patient.estadoCivil) {
113
+ var estadoCivil = void 0;
114
+ switch (patient.estadoCivil) {
115
+ case 'casado':
116
+ estadoCivil = 'Married';
117
+ break;
118
+ case 'divorciado':
119
+ estadoCivil = 'Divorced';
120
+ break;
121
+ case 'viudo':
122
+ estadoCivil = 'Widowed';
123
+ break;
124
+ case 'soltero':
125
+ estadoCivil = 'unmarried';
126
+ break;
127
+ default:
128
+ estadoCivil = 'unknown';
129
+ break;
130
+ }
131
+ pacienteFHIR['maritalStatus'] = {
132
+ text: estadoCivil
133
+ };
134
+ }
135
+ if (patient.foto) {
136
+ pacienteFHIR['photo'] = [{
137
+ patient: patient.foto
138
+ }];
139
+ }
140
+ if (contactos.length > 0) { // A contact detail for the individual
141
+ pacienteFHIR['telecom'] = contactos;
142
+ }
143
+ if (direcciones.length > 0) { // Addresses for the individual
144
+ pacienteFHIR['address'] = direcciones;
145
+ }
146
+ if (relaciones.length > 0) { // A contact party (e.g. guardian, partner, friend) for the patient
147
+ pacienteFHIR['contact'] = relaciones;
148
+ }
149
+ return pacienteFHIR;
150
+ }
151
+ else {
152
+ return null;
153
+ }
154
+ }
155
+ exports.encode = encode;
156
+ /**
157
+ * Decode a patient from FHIR to ANDES
158
+ * @param {} patient
159
+ */
160
+ function decode(patient) {
161
+ var genero;
162
+ var sexo;
163
+ // Cuando el paciente viene por FHIR suponemos el valor del genero tanto para nuestro field genero como sexo
164
+ switch (patient.gender) {
165
+ case 'female':
166
+ genero = 'femenino';
167
+ sexo = 'femenino';
168
+ break;
169
+ case 'male':
170
+ genero = 'masculino';
171
+ sexo = 'masculino';
172
+ break;
173
+ case 'other':
174
+ genero = 'otro';
175
+ sexo = 'otro';
176
+ break;
177
+ }
178
+ function getValue(items, key) {
179
+ var element = items.find(function (el) { return el.system === key; });
180
+ if (element) {
181
+ return element.value;
182
+ }
183
+ }
184
+ var pacienteAndes = {
185
+ id: getValue(patient.identifier, config_1.makeUrl('Patient')),
186
+ documento: getValue(patient.identifier, 'http://www.renaper.gob.ar/dni'),
187
+ nombre: patient.name[0].given.join().replace(',', ' '),
188
+ apellido: Array.isArray(patient.name[0].family) ? patient.name[0].family.join().replace(',', ' ') : patient.name[0].family,
189
+ fechaNacimiento: patient.birthDate,
190
+ genero: genero,
191
+ sexo: sexo,
192
+ estado: 'temporal' // Todos los pacientes que recibimos por Fhir son considerados temporales en su conversión.
193
+ };
194
+ var contactos = patient.telecom ? patient.telecom.map(function (unContacto) {
195
+ var cont = {
196
+ valor: unContacto.value,
197
+ ranking: unContacto.rank
198
+ };
199
+ switch (unContacto.system) {
200
+ case 'phone':
201
+ cont['tipo'] = 'celular';
202
+ break;
203
+ case 'email':
204
+ cont['tipo'] = 'email';
205
+ break;
206
+ }
207
+ return cont;
208
+ }) : [];
209
+ var relaciones = patient.contact ? patient.contact.map(function (aContact) {
210
+ var relacion = {
211
+ relacion: {
212
+ nombre: aContact.relationship[0].text
213
+ },
214
+ nombre: aContact.name.given.join().replace(',', ' '),
215
+ apellido: aContact.name.family
216
+ };
217
+ return relacion;
218
+ }) : [];
219
+ if (patient.maritalStatus) {
220
+ var estadoCivil = void 0;
221
+ switch (patient.maritalStatus['text']) {
222
+ case 'Married':
223
+ estadoCivil = 'casado';
224
+ break;
225
+ case 'Divorced':
226
+ estadoCivil = 'divorciado';
227
+ break;
228
+ case 'Widowed':
229
+ estadoCivil = 'viudo';
230
+ break;
231
+ case 'unmarried':
232
+ estadoCivil = 'soltero';
233
+ break;
234
+ default:
235
+ estadoCivil = 'otro';
236
+ break;
237
+ }
238
+ pacienteAndes['estadoCivil'] = estadoCivil;
239
+ }
240
+ var direcciones = patient.address ? patient.address.map(function (unaDireccion) {
241
+ var dir = {
242
+ activo: true,
243
+ valor: unaDireccion.line,
244
+ codigoPostal: unaDireccion.postalCode,
245
+ // TODO: En un MATETIME ver si la información de pais, provincia, localidad
246
+ // se delega en el insert o update. Y este decoder sólo guarda la info tal cual viene.
247
+ ubicacion: {
248
+ pais: unaDireccion.country,
249
+ provincia: unaDireccion.state,
250
+ localidad: unaDireccion.city
251
+ }
252
+ };
253
+ return dir;
254
+ }) : [];
255
+ pacienteAndes['direccion'] = direcciones;
256
+ if (patient.active) {
257
+ pacienteAndes['activo'] = patient.active;
258
+ }
259
+ if (contactos.length > 0) {
260
+ pacienteAndes['contacto'] = contactos;
261
+ }
262
+ if (patient.photo) { // Image of the patient
263
+ pacienteAndes['foto'] = patient.photo[0].data;
264
+ }
265
+ if (patient.contact) {
266
+ pacienteAndes['relaciones'] = relaciones;
267
+ }
268
+ return pacienteAndes;
269
+ }
270
+ exports.decode = decode;
271
+ /**
272
+ * Verify if a patient has a FHIR format
273
+ * @param {*} patient
274
+ */
275
+ function verify(patient) {
276
+ var respuesta = true;
277
+ var fieldVerified = Object.keys(patient).every(pacienteFHIRFields);
278
+ // Verificamos que las key esten contenidas en los conjuntos mínimos pacienteFHIRField
279
+ if (fieldVerified) {
280
+ respuesta = ('resourceType' in patient) && patient.resourceType === 'Patient';
281
+ respuesta = respuesta && ('identifier' in patient);
282
+ if (patient.identifier.length > 0) {
283
+ patient.identifier.forEach(function (anIdentifier) { return respuesta = respuesta && Object.keys(anIdentifier).every(identifierFields); });
284
+ }
285
+ patient.name.forEach(function (aName) { return respuesta = respuesta && validName(aName); });
286
+ if (patient.active) {
287
+ respuesta = respuesta && (typeof patient.active === 'boolean');
288
+ }
289
+ if (patient.telecom) {
290
+ patient.telecom.forEach(function (aTelecom) { return respuesta = respuesta && Object.keys(aTelecom).every(telecomFields); });
291
+ }
292
+ if (patient.gender) {
293
+ respuesta = respuesta && patient.gender.match('male|female|other|unknown') != null;
294
+ }
295
+ if (patient.birthDate) {
296
+ respuesta = respuesta && typeof patient.birthDate === 'string'; // TODO: Algun control de que tenga formato Date
297
+ }
298
+ if (patient.deceasedDateTime) {
299
+ respuesta = respuesta && typeof patient.deceasedDateTime === 'string'; // TODO: Algun control de que tenga formato DateTime
300
+ }
301
+ if (patient.address) {
302
+ patient.address.forEach(function (anAddress) { return respuesta = respuesta && Object.keys(anAddress).every(addressFields); });
303
+ }
304
+ if (patient.maritalStatus && patient.maritalStatus.text) {
305
+ respuesta = respuesta && Object.keys(patient.maritalStatus).every(codingFields)
306
+ && typeof patient.maritalStatus.text === 'string'
307
+ && patient.maritalStatus.text.match('Married|Divorced|Widowed|unmarried|unknown') != null;
308
+ }
309
+ if (patient.photo) {
310
+ patient.photo.forEach(function (aPhoto) { return respuesta = respuesta && Object.keys(aPhoto).every(photoFields); });
311
+ }
312
+ if (patient.contact) {
313
+ patient.contact.forEach(function (aContact) {
314
+ if (aContact.relationship) {
315
+ aContact.relationship.forEach(function (aRelation) { return respuesta = respuesta && Object.keys(aRelation).every(codingFields); });
316
+ }
317
+ if (aContact.name) {
318
+ respuesta = respuesta && validName(aContact.name);
319
+ }
320
+ });
321
+ }
322
+ }
323
+ else {
324
+ respuesta = fieldVerified; // No cumple con los campos estandar de FHIR
325
+ }
326
+ return respuesta;
327
+ }
328
+ exports.verify = verify;
329
+ function pacienteFHIRFields(elem) {
330
+ return elem.match('resourceType|identifier|active|name|telecom|gender|birthDate|deceasedBoolean|deceasedDateTime|address|maritalStatus|photo|contact') != null;
331
+ }
332
+ function identifierFields(elem) {
333
+ return elem.match('use|type|system|value|period|assigner') != null;
334
+ }
335
+ function nameFields(elem) {
336
+ return elem.match('resourceType|family|given') != null;
337
+ }
338
+ function telecomFields(elem) {
339
+ return elem.match('resourceType|system|value|use|rank|period') != null;
340
+ }
341
+ function addressFields(elem) {
342
+ return elem.match('resourceType|use|type|text|line|city|district|state|postalCode|country|period') != null;
343
+ }
344
+ function codingFields(elem) {
345
+ return elem.match('coding|text') != null;
346
+ }
347
+ function photoFields(elem) {
348
+ return elem.match('contentType|language|data|url|size|hash|title|creation') != null;
349
+ }
350
+ function contactFields(elem) {
351
+ return elem.match('relationship|name|telecom|address|gender|organization|period') != null;
352
+ }
353
+ function validName(aName) {
354
+ return Object.keys(aName).every(nameFields) && ('resourceType' in aName) && aName.resourceType === 'HumanName' &&
355
+ ('family' in aName) && Array.isArray(aName.family) && aName.family.every(areStrings) &&
356
+ ('given' in aName) && Array.isArray(aName.given) && aName.given.every(areStrings);
357
+ }
358
+ function areStrings(elem) {
359
+ return typeof elem === 'string';
360
+ }
361
+ //# sourceMappingURL=patient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient.js","sourceRoot":"","sources":["../../../src/lib/patient.ts"],"names":[],"mappings":";;;AACA,mCAA+C;AAE/C;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAO;IAC1B,IAAI,OAAO,EAAE;QACT,IAAM,eAAe,GAAQ,EAAE,CAAC;QAChC,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,eAAe,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,+BAA+B;gBACvC,KAAK,EAAE,OAAO,CAAC,SAAS;aAC3B,CAAC,CAAC;SACN;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,eAAe,CAAC,IAAI,CAAC;gBACjB,MAAM,EAAE,gCAAgC;gBACxC,KAAK,EAAE,OAAO,CAAC,IAAI;aACtB,CAAC,CAAC;SACN;QACD,eAAe,CAAC,IAAI,CAAC;YACjB,MAAM,EAAE,mBAAU,EAAE;YACpB,KAAK,EAAE,OAAO,CAAC,GAAG;SACrB,CAAC,CAAC;QACH,mBAAmB;QACnB,IAAI,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC,GAAG,CAAC,UAAA,UAAU;YACnF,IAAI,IAAI,GAAG;gBACP,YAAY,EAAE,cAAc;gBAC5B,KAAK,EAAE,UAAU,CAAC,KAAK;gBACvB,IAAI,EAAE,UAAU,CAAC,OAAO;aAC3B,CAAC;YACF,QAAQ,UAAU,CAAC,IAAI,EAAE;gBACrB,KAAK,MAAM;oBACP,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBACzB,MAAM;gBACV,KAAK,SAAS;oBACV,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBACzB,MAAM;gBACV,KAAK,OAAO;oBACR,IAAI,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;oBACzB,MAAM;aACb;YACD,OAAO,IAAI,CAAC;QAChB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,qBAAqB;QACrB,IAAI,WAAW,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,GAAG,CAAC,SAAS,CAAC,SAAS,EAAvB,CAAuB,CAAC,CAAC,GAAG,CAAC,UAAA,YAAY;YAC3G,IAAI,KAAK,GAAG;gBACR,YAAY,EAAE,SAAS;gBACvB,UAAU,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE;gBACtE,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC;gBAC1B,IAAI,EAAE,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACrF,KAAK,EAAE,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;gBACtF,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;aACjF,CAAC;YACF,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,oBAAoB;QACpB,IAAI,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAZ,CAAY,CAAC,CAAC,GAAG,CAAC,UAAA,WAAW;YAC9F,IAAI,QAAQ,GAAG;gBACX,YAAY,EAAE,CAAC;wBACX,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,MAAM;qBACpC,CAAC;gBACF,IAAI,EAAE;oBACF,YAAY,EAAE,WAAW;oBACzB,MAAM,EAAE,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;oBACvC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;iBACvC;aACJ,CAAC;YACF,OAAO,QAAQ,CAAC;QACpB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACR,IAAI,MAAM,SAAA,CAAC;QACX,QAAQ,OAAO,CAAC,MAAM,EAAE;YACpB,KAAK,UAAU;gBACX,MAAM,GAAG,QAAQ,CAAC;gBAClB,MAAM;YACV,KAAK,WAAW;gBACZ,MAAM,GAAG,MAAM,CAAC;gBAChB,MAAM;YACV,KAAK,MAAM;gBACP,MAAM,GAAG,OAAO,CAAC;gBACjB,MAAM;SACb;QACD,IAAI,YAAY,GAAQ;YACpB,EAAE,EAAE,OAAO,CAAC,EAAE;YACd,YAAY,EAAE,SAAS;YACvB,UAAU,EAAE,eAAe;YAC3B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI;YAC9C,IAAI,EAAE,CAAC;oBACH,GAAG,EAAE,UAAU;oBACf,YAAY,EAAE,WAAW;oBACzB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;oBACnC,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;oBAChC,IAAI,EAAK,OAAO,CAAC,MAAM,SAAI,OAAO,CAAC,QAAU;oBAC7C,OAAO,EAAE,CAAC;4BACN,SAAS,EAAE;gCACP;oCACI,GAAG,EAAE,kEAAkE;oCACvE,WAAW,EAAE,OAAO,CAAC,QAAQ;iCAChC;6BACJ;yBACJ,CAAC;iBACL,CAAC;YACF,MAAM,EAAE,MAAM;YACd,SAAS,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI;SAC9M,CAAC;QACF,IAAI,OAAO,CAAC,kBAAkB,EAAE;YAC5B,YAAY,CAAC,gBAAgB,GAAG,OAAO,OAAO,CAAC,kBAAkB,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SAC5M;QACD,IAAI,OAAO,CAAC,WAAW,EAAE;YACrB,IAAI,WAAW,SAAA,CAAC;YAChB,QAAQ,OAAO,CAAC,WAAW,EAAE;gBACzB,KAAK,QAAQ;oBACT,WAAW,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACV,KAAK,YAAY;oBACb,WAAW,GAAG,UAAU,CAAC;oBACzB,MAAM;gBACV,KAAK,OAAO;oBACR,WAAW,GAAG,SAAS,CAAC;oBACxB,MAAM;gBACV,KAAK,SAAS;oBACV,WAAW,GAAG,WAAW,CAAC;oBAC1B,MAAM;gBACV;oBACI,WAAW,GAAG,SAAS,CAAC;oBACxB,MAAM;aACb;YACD,YAAY,CAAC,eAAe,CAAC,GAAG;gBAC5B,IAAI,EAAE,WAAW;aACpB,CAAC;SACL;QACD,IAAI,OAAO,CAAC,IAAI,EAAE;YACd,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;oBACrB,OAAO,EAAE,OAAO,CAAC,IAAI;iBACxB,CAAC,CAAC;SACN;QACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,sCAAsC;YAC9D,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC;SACvC;QACD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,+BAA+B;YACzD,YAAY,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;SACzC;QACD,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,mEAAmE;YAC5F,YAAY,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC;SACxC;QACD,OAAO,YAAY,CAAC;KACvB;SAAM;QACH,OAAO,IAAI,CAAC;KACf;AACL,CAAC;AAhJD,wBAgJC;AAED;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAO;IAC1B,IAAI,MAAM,CAAC;IACX,IAAI,IAAI,CAAC;IACT,4GAA4G;IAC5G,QAAQ,OAAO,CAAC,MAAM,EAAE;QACpB,KAAK,QAAQ;YACT,MAAM,GAAG,UAAU,CAAC;YACpB,IAAI,GAAG,UAAU,CAAC;YAClB,MAAM;QACV,KAAK,MAAM;YACP,MAAM,GAAG,WAAW,CAAC;YACrB,IAAI,GAAG,WAAW,CAAC;YACnB,MAAM;QACV,KAAK,OAAO;YACR,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,GAAG,MAAM,CAAC;YACd,MAAM;KACb;IACD,SAAS,QAAQ,CAAC,KAAK,EAAE,GAAG;QACxB,IAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,MAAM,KAAK,GAAG,EAAjB,CAAiB,CAAC,CAAC;QACpD,IAAI,OAAO,EAAE;YACT,OAAO,OAAO,CAAC,KAAK,CAAC;SACxB;IACL,CAAC;IACD,IAAI,aAAa,GAAG;QAChB,EAAE,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,gBAAO,CAAC,SAAS,CAAC,CAAC;QACpD,SAAS,EAAE,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,+BAA+B,CAAC;QACxE,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;QACtD,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM;QAC1H,eAAe,EAAE,OAAO,CAAC,SAAS;QAClC,MAAM,QAAA;QACN,IAAI,MAAA;QACJ,MAAM,EAAE,UAAU,CAAC,2FAA2F;KACjH,CAAC;IACF,IAAI,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,UAAU;QAC5D,IAAI,IAAI,GAAG;YACP,KAAK,EAAE,UAAU,CAAC,KAAK;YACvB,OAAO,EAAE,UAAU,CAAC,IAAI;SAC3B,CAAC;QACF,QAAQ,UAAU,CAAC,MAAM,EAAE;YACvB,KAAK,OAAO;gBACR,IAAI,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC;gBACzB,MAAM;YACV,KAAK,OAAO;gBACR,IAAI,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;gBACvB,MAAM;SACb;QACD,OAAO,IAAI,CAAC;IAChB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAER,IAAI,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,QAAQ;QAC3D,IAAI,QAAQ,GAAG;YACX,QAAQ,EAAE;gBACN,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI;aACxC;YACD,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC;YACpD,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,MAAM;SACjC,CAAC;QACF,OAAO,QAAQ,CAAC;IACpB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAER,IAAI,OAAO,CAAC,aAAa,EAAE;QACvB,IAAI,WAAW,SAAA,CAAC;QAChB,QAAQ,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;YACnC,KAAK,SAAS;gBACV,WAAW,GAAG,QAAQ,CAAC;gBACvB,MAAM;YACV,KAAK,UAAU;gBACX,WAAW,GAAG,YAAY,CAAC;gBAC3B,MAAM;YACV,KAAK,SAAS;gBACV,WAAW,GAAG,OAAO,CAAC;gBACtB,MAAM;YACV,KAAK,WAAW;gBACZ,WAAW,GAAG,SAAS,CAAC;gBACxB,MAAM;YACV;gBACI,WAAW,GAAG,MAAM,CAAC;gBACrB,MAAM;SACb;QACD,aAAa,CAAC,aAAa,CAAC,GAAG,WAAW,CAAC;KAC9C;IAED,IAAI,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,UAAA,YAAY;QAChE,IAAI,GAAG,GAAG;YACN,MAAM,EAAE,IAAI;YACZ,KAAK,EAAE,YAAY,CAAC,IAAI;YACxB,YAAY,EAAE,YAAY,CAAC,UAAU;YACrC,2EAA2E;YAC3E,sFAAsF;YACtF,SAAS,EAAE;gBACP,IAAI,EAAE,YAAY,CAAC,OAAO;gBAC1B,SAAS,EAAE,YAAY,CAAC,KAAK;gBAC7B,SAAS,EAAE,YAAY,CAAC,IAAI;aAC/B;SACJ,CAAC;QACF,OAAO,GAAG,CAAC;IACf,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAER,aAAa,CAAC,WAAW,CAAC,GAAG,WAAW,CAAC;IAEzC,IAAI,OAAO,CAAC,MAAM,EAAE;QAChB,aAAa,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;KAC5C;IACD,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;QACtB,aAAa,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;KACzC;IACD,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,uBAAuB;QACxC,aAAa,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;KACjD;IAED,IAAI,OAAO,CAAC,OAAO,EAAE;QACjB,aAAa,CAAC,YAAY,CAAC,GAAG,UAAU,CAAC;KAC5C;IAED,OAAO,aAAa,CAAC;AACzB,CAAC;AApHD,wBAoHC;AACD;;;GAGG;AACH,SAAgB,MAAM,CAAC,OAAO;IAC1B,IAAI,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACnE,sFAAsF;IACtF,IAAI,aAAa,EAAE;QACf,SAAS,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,OAAO,CAAC,YAAY,KAAK,SAAS,CAAC;QAC9E,SAAS,GAAG,SAAS,IAAI,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC;QACnD,IAAI,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC/B,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAA,YAAY,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,EAA1E,CAA0E,CAAC,CAAC;SAE1H;QACD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,KAAK,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,KAAK,CAAC,EAAzC,CAAyC,CAAC,CAAC;QACzE,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,SAAS,GAAG,SAAS,IAAI,CAAC,OAAO,OAAO,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;SAClE;QACD,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,QAAQ,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAAnE,CAAmE,CAAC,CAAC;SAC5G;QACD,IAAI,OAAO,CAAC,MAAM,EAAE;YAChB,SAAS,GAAG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC;SACtF;QACD,IAAI,OAAO,CAAC,SAAS,EAAE;YACnB,SAAS,GAAG,SAAS,IAAI,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ,CAAC,CAAC,gDAAgD;SACnH;QACD,IAAI,OAAO,CAAC,gBAAgB,EAAE;YAC1B,SAAS,GAAG,SAAS,IAAI,OAAO,OAAO,CAAC,gBAAgB,KAAK,QAAQ,CAAC,CAAC,oDAAoD;SAC9H;QACD,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,SAAS,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,EAApE,CAAoE,CAAC,CAAC;SAC9G;QACD,IAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE;YACrD,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC;mBACxE,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,KAAK,QAAQ;mBAC9C,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,4CAA4C,CAAC,IAAI,IAAI,CAAC;SACjG;QACD,IAAI,OAAO,CAAC,KAAK,EAAE;YACf,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,EAA/D,CAA+D,CAAC,CAAC;SACpG;QACD,IAAI,OAAO,CAAC,OAAO,EAAE;YACjB,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,UAAA,QAAQ;gBAC5B,IAAI,QAAQ,CAAC,YAAY,EAAE;oBACvB,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,UAAA,SAAS,IAAI,OAAA,SAAS,GAAG,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,EAAnE,CAAmE,CAAC,CAAC;iBACnH;gBACD,IAAI,QAAQ,CAAC,IAAI,EAAE;oBACf,SAAS,GAAG,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;iBACrD;YACL,CAAC,CAAC,CAAC;SACN;KACJ;SAAM;QACH,SAAS,GAAG,aAAa,CAAC,CAAC,4CAA4C;KAC1E;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AApDD,wBAoDC;AAED,SAAS,kBAAkB,CAAC,IAAI;IAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,mIAAmI,CAAC,IAAI,IAAI,CAAC;AACnK,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAI;IAC1B,OAAO,IAAI,CAAC,KAAK,CAAC,uCAAuC,CAAC,IAAI,IAAI,CAAC;AACvE,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACpB,OAAO,IAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,2CAA2C,CAAC,IAAI,IAAI,CAAC;AAC3E,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,+EAA+E,CAAC,IAAI,IAAI,CAAC;AAC/G,CAAC;AAED,SAAS,YAAY,CAAC,IAAI;IACtB,OAAO,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;AAC7C,CAAC;AAED,SAAS,WAAW,CAAC,IAAI;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,wDAAwD,CAAC,IAAI,IAAI,CAAC;AACxF,CAAC;AAED,SAAS,aAAa,CAAC,IAAI;IACvB,OAAO,IAAI,CAAC,KAAK,CAAC,8DAA8D,CAAC,IAAI,IAAI,CAAC;AAC9F,CAAC;AAED,SAAS,SAAS,CAAC,KAAK;IACpB,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,YAAY,KAAK,WAAW;QAC1G,CAAC,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QACpF,CAAC,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,UAAU,CAAC,IAAI;IACpB,OAAO,OAAO,IAAI,KAAK,QAAQ,CAAC;AACpC,CAAC"}
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var patient = require("../data/patient.json");
4
+ var patient_1 = require("./patient");
5
+ describe('encode patient from ANDES to FHIR R4', function () {
6
+ test('Verify basic data', function () {
7
+ expect(patient_1.encode(patient).resourceType).toBe('Patient');
8
+ expect(patient_1.encode(patient).identifier[0].value).toBe('42910660');
9
+ expect(patient_1.encode(patient).identifier[0].system).toBe('http://www.renaper.gob.ar/dni');
10
+ expect(patient_1.encode(patient).active).toBe(true);
11
+ expect(patient_1.encode(patient).name[0].use).toBe('official');
12
+ expect(patient_1.encode(patient).name[0].resourceType).toBe('HumanName');
13
+ expect(patient_1.encode(patient).name[0].family).toContain('PERINGA');
14
+ expect(patient_1.encode(patient).name[0].family).toContain('PONCE');
15
+ expect(patient_1.encode(patient).name[0].given).toContain('AGUSTIN');
16
+ expect(patient_1.encode(patient).name[0].text).toBe('HUGO AGUSTIN PERINGA PONCE');
17
+ expect(patient_1.encode(patient).gender).toBe('male');
18
+ expect(patient_1.encode(patient).birthDate).toBe('1979-11-14');
19
+ });
20
+ test('Verify patient with contact information', function () {
21
+ // Phone;
22
+ expect(patient_1.encode(patient).telecom[0].resourceType).toBe('ContactPoint');
23
+ expect(patient_1.encode(patient).telecom[0].value).toBe('4462221');
24
+ expect(patient_1.encode(patient).telecom[0].system).toBe('phone');
25
+ // Address;
26
+ expect(patient_1.encode(patient).address[0].resourceType).toBe('Address');
27
+ expect(patient_1.encode(patient).address[0].postalCode).toBe('8300');
28
+ expect(patient_1.encode(patient).address[0].line).toContain('Enrique Santos Discepolo 1856');
29
+ expect(patient_1.encode(patient).address[0].city).toBe('NEUQUEN');
30
+ expect(patient_1.encode(patient).address[0].state).toBe('Neuquén');
31
+ expect(patient_1.encode(patient).address[0].country).toBe('Argentina');
32
+ });
33
+ test('Verify patient with relationships', function () {
34
+ expect(patient_1.encode(patient).contact[0].relationship[0].text).toBe('hijo/a');
35
+ expect(patient_1.encode(patient).contact[0].name.resourceType).toBe('HumanName');
36
+ expect(patient_1.encode(patient).contact[0].name.family).toContain('PERINGA');
37
+ expect(patient_1.encode(patient).contact[0].name.given).toContain('JOSEFINA');
38
+ });
39
+ });
40
+ //# sourceMappingURL=patient.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patient.test.js","sourceRoot":"","sources":["../../../src/lib/patient.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.encode = void 0;
4
+ var config_1 = require("./config");
5
+ /**
6
+ * Encode a practitioner from ANDES to FHIR
7
+ * @param {} practitioner
8
+ */
9
+ function encode(practitioner) {
10
+ var data = practitioner;
11
+ if (data) {
12
+ var identificadores = data.documento ? [{
13
+ system: 'http://www.renaper.gob.ar/dni',
14
+ value: data.documento
15
+ }] : [];
16
+ if (data.cuit) {
17
+ identificadores.push({
18
+ system: 'https://seti.afip.gob.ar/padron-puc-constancia-internet/ConsultaConstanciaAction.do',
19
+ value: data.cuit
20
+ });
21
+ }
22
+ identificadores.push({
23
+ system: config_1.getDominio(),
24
+ value: data._id
25
+ });
26
+ // Parsea contactos
27
+ var contactos = data.contacto ? data.contacto.map(function (unContacto) {
28
+ var cont = {
29
+ resourceType: 'ContactPoint',
30
+ value: unContacto.valor,
31
+ rank: unContacto.ranking,
32
+ };
33
+ switch (unContacto.tipo) {
34
+ case 'fijo':
35
+ cont['system'] = 'phone';
36
+ break;
37
+ case 'celular':
38
+ cont['system'] = 'phone';
39
+ break;
40
+ case 'email':
41
+ cont['system'] = 'email';
42
+ break;
43
+ }
44
+ return cont;
45
+ }) : [];
46
+ // Parsea direcciones
47
+ var direcciones = data.domicilios ? data.domicilios.map(function (unDomicilio) {
48
+ var direc = {
49
+ resourceType: 'Address',
50
+ postalCode: unDomicilio.codigoPostal ? unDomicilio.codigoPostal : '',
51
+ line: [unDomicilio.valor],
52
+ city: unDomicilio.ubicacion.localidad ? unDomicilio.ubicacion.localidad.nombre : '',
53
+ state: unDomicilio.ubicacion.provincia ? unDomicilio.ubicacion.provincia.nombre : '',
54
+ country: unDomicilio.ubicacion.pais ? unDomicilio.ubicacion.pais.nombre : ''
55
+ };
56
+ return direc;
57
+ }) : [];
58
+ // Parsea relaciones
59
+ var relaciones = data.relaciones ? data.relaciones.map(function (unaRelacion) {
60
+ var relacion = {
61
+ relationship: [{
62
+ text: unaRelacion.relacion.nombre
63
+ }],
64
+ name: {
65
+ resourceType: 'HumanName',
66
+ family: unaRelacion.apellido.split(' '),
67
+ given: unaRelacion.nombre.split(' '),
68
+ }
69
+ };
70
+ return relacion;
71
+ }) : [];
72
+ var matriculas = data.formacionGrado ? data.formacionGrado.map(function (datosGrado) {
73
+ var cantMatriculaciones = datosGrado.matriculacion ? datosGrado.matriculacion.length : 0;
74
+ var unaMatricula = {
75
+ identifier: datosGrado.profesion.nombre ? [{
76
+ system: 'https://www.saludneuquen.gob.ar/matriculacionGrado',
77
+ value: datosGrado.profesion.nombre
78
+ }] : [],
79
+ code: cantMatriculaciones > 0 ? {
80
+ coding: [{
81
+ system: 'http://www.saludneuquen.gob.ar/fiscalizacion.html',
82
+ code: datosGrado.profesion.codigo,
83
+ display: datosGrado.profesion.tipoDeFormacion
84
+ }],
85
+ text: datosGrado.matriculacion[cantMatriculaciones - 1].matriculaNumero
86
+ } : null,
87
+ period: cantMatriculaciones > 0 ? {
88
+ start: datosGrado.matriculacion[cantMatriculaciones - 1].inicio ? datosGrado.matriculacion[cantMatriculaciones - 1].inicio : null,
89
+ end: datosGrado.matriculacion[cantMatriculaciones - 1].fin ? datosGrado.matriculacion[cantMatriculaciones - 1].fin : null
90
+ } : null
91
+ };
92
+ return unaMatricula;
93
+ }) : null;
94
+ var matriculasEspecialidad = (data.formacionPosgrado ? data.formacionPosgrado.map(function (datosPosgrado) {
95
+ var cantMatriculacionesEsp = datosPosgrado.matriculacion ? datosPosgrado.matriculacion.length : 0;
96
+ var unaMatricula = {
97
+ identifier: datosPosgrado.especialidad.nombre ? [{
98
+ system: 'https://www.saludneuquen.gob.ar/matriculacionEspecialidad/',
99
+ value: datosPosgrado.especialidad.nombre
100
+ }] : [],
101
+ code: cantMatriculacionesEsp > 0 ? {
102
+ coding: [{
103
+ system: 'http://www.saludneuquen.gob.ar/fiscalizacion.html',
104
+ code: datosPosgrado.especialidad.codigo,
105
+ display: datosPosgrado.especialidad.tipo
106
+ }],
107
+ text: datosPosgrado.matriculacion[cantMatriculacionesEsp - 1].matriculaNumero
108
+ } : null,
109
+ period: cantMatriculacionesEsp > 0 ? {
110
+ start: datosPosgrado.matriculacion[cantMatriculacionesEsp - 1].inicio ? datosPosgrado.matriculacion[cantMatriculacionesEsp - 1].inicio : null,
111
+ end: datosPosgrado.matriculacion[cantMatriculacionesEsp - 1].fin ? datosPosgrado.matriculacion[cantMatriculacionesEsp - 1].fin : null
112
+ } : null
113
+ };
114
+ return unaMatricula;
115
+ }) : null);
116
+ var genero = void 0;
117
+ switch (data.sexo.toLowerCase()) {
118
+ case 'femenino':
119
+ genero = 'female';
120
+ break;
121
+ case 'masculino':
122
+ genero = 'male';
123
+ break;
124
+ case 'otro':
125
+ genero = 'other';
126
+ break;
127
+ }
128
+ var profesionalFHIR = {
129
+ resourceType: 'Practitioner',
130
+ identifier: identificadores,
131
+ active: data.habilitado ? data.habilitado : null,
132
+ name: [{
133
+ resourceType: 'HumanName',
134
+ family: data.apellido.split(' '),
135
+ given: data.nombre.split(' '),
136
+ }],
137
+ gender: genero,
138
+ birthDate: data.fechaNacimiento,
139
+ };
140
+ if (data.foto) {
141
+ profesionalFHIR['photo'] = [{
142
+ data: data.foto
143
+ }];
144
+ }
145
+ if (contactos.length > 0) {
146
+ profesionalFHIR['telecom'] = contactos;
147
+ }
148
+ if (direcciones.length > 0) {
149
+ profesionalFHIR['address'] = direcciones;
150
+ }
151
+ if (matriculas.length > 0) {
152
+ profesionalFHIR['qualification'] = matriculas.concat(matriculasEspecialidad);
153
+ }
154
+ return profesionalFHIR;
155
+ }
156
+ else {
157
+ return null;
158
+ }
159
+ }
160
+ exports.encode = encode;
161
+ //# sourceMappingURL=practitioner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"practitioner.js","sourceRoot":"","sources":["../../../src/lib/practitioner.ts"],"names":[],"mappings":"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"}
package/index.ts ADDED
@@ -0,0 +1,31 @@
1
+ import * as AllergyIntolerance from './src/lib/allergyIntolerance';
2
+ import * as Bundle from './src/lib/bundle';
3
+ import * as Composition from './src/lib/composition';
4
+ import * as Condition from './src/lib/condition';
5
+ import * as Device from './src/lib/device';
6
+ import * as DocumentReference from './src/lib/document-reference';
7
+ import * as Immunization from './src/lib/immunization';
8
+ import * as Medication from './src/lib/medication';
9
+ import * as MedicationRequest from './src/lib/medicationRequest';
10
+ import * as MedicationStatement from './src/lib/medicationStatement';
11
+ import * as Organization from './src/lib/organization';
12
+ import * as Patient from './src/lib/patient';
13
+ import * as Practitioner from './src/lib/practitioner';
14
+
15
+ export { getDominio, initialize } from './src/lib/config';
16
+ export {
17
+ Patient,
18
+ Practitioner,
19
+ Organization,
20
+ Immunization,
21
+ Condition,
22
+ Composition,
23
+ Bundle,
24
+ DocumentReference,
25
+ Device,
26
+ Medication,
27
+ MedicationStatement,
28
+ MedicationRequest,
29
+ AllergyIntolerance
30
+ };
31
+
package/jest.config.js ADDED
@@ -0,0 +1,12 @@
1
+ module.exports = {
2
+ roots: ['./'],
3
+ transform: {
4
+ '^.+\\.tsx?$': 'ts-jest'
5
+ },
6
+ testRegex: '(/__tests__/.*|(\\.|/)(test|spec))\\.tsx?$',
7
+ moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx', 'json', 'node'],
8
+ testEnvironment: 'node',
9
+ moduleNameMapper: {
10
+ '@andes/unit-test': '<rootDir>/packages/unit-testing/index.ts'
11
+ }
12
+ }