{"version":3,"file":"patient-Dnp_GSXG.js","sources":["../../../frontend/src/api/patient.js"],"sourcesContent":["import Api from './index';\n\nconst SESSION_PATIENT_UUID = 'frontend-api:v2:session:patient-uuid';\nconst SESSION_PATIENT_UUID_V1 = 'frontend-api:v1:session:patient-uuid';\n\nconst PATIENT_PREGNANCY_DT_START = 'frontend-api:patient:pregnancy-dt-start';\nconst PATIENT_CHILDBIRTH_PREP_HISTORY =\n  'frontend-api:patient:get-childbirth-prep-consultations';\nconst PATIENT_FOLLOW_UP_PREGNANCY =\n  'frontend-api:patient:check-pregnancy-follow-up';\nconst PATIENT_LAST_PREGNANCY_ULTRASOUND_CONSULTATIONS =\n  'frontend-api:patient:last-pregnancy-ultrasound-consultations';\nconst PATIENT_LIST = 'frontend-api:patient:list';\nconst PATIENT_ACTION = (actionName) => `frontend-api:patient:${actionName}`;\nconst PATIENT_AGREEMENT = 'frontend-api:patient:agreement';\n\nconst Patient = {\n  getUuid: async function () {\n    const [{ patient_uuid } = {}, error] = await Api.getJsonByDjangoViewName({\n      viewName: SESSION_PATIENT_UUID,\n      params: {\n        session_id: Api.sessionId,\n      },\n    });\n\n    if (error) return [undefined, error];\n\n    return [patient_uuid, undefined];\n  },\n\n  getUuidV1: async function () {\n    const [{ patient_uuid } = {}, error] = await Api.getJsonByDjangoViewName({\n      viewName: SESSION_PATIENT_UUID_V1,\n      params: {\n        session_id: Api.sessionId,\n      },\n    });\n\n    if (error) return [undefined, error];\n\n    return [patient_uuid, undefined];\n  },\n\n  getPregnancyDtStart: async function (patientUuid = null) {\n    const [{ pregnancy_dt_start } = {}, error] =\n      await Api.getJsonByDjangoViewName({\n        viewName: PATIENT_PREGNANCY_DT_START,\n        params: {\n          patient: patientUuid,\n        },\n      });\n\n    if (error) return [undefined, error];\n\n    return [pregnancy_dt_start, undefined];\n  },\n\n  getLastPregnancyUltrasoundConsultations: function (patientUuid) {\n    return Api.getJsonByDjangoViewName({\n      viewName: PATIENT_LAST_PREGNANCY_ULTRASOUND_CONSULTATIONS,\n      params: {\n        patient: patientUuid,\n      },\n    });\n  },\n\n  getPatientList: async function (doctorSlug) {\n    const [response, error] = await Api.getJsonByDjangoViewName({\n      viewName: PATIENT_LIST,\n      params: {\n        doctor: doctorSlug,\n      },\n    });\n\n    if (response === undefined || error) return [undefined, error];\n\n    const { patients } = response;\n\n    return [patients, undefined];\n  },\n\n  executeActionOnPatientList: async function ({ actionName, patientList }) {\n    return await Api.postJsonByDjangoViewName({\n      viewName: PATIENT_ACTION(actionName),\n      data: { patientList },\n    });\n  },\n\n  getChildbirthPrepConsultations: async function (patientUuid = null) {\n    const [{ childbirth_classes } = {}, error] =\n      await Api.getJsonByDjangoViewName({\n        viewName: PATIENT_CHILDBIRTH_PREP_HISTORY,\n        params: {\n          patient: patientUuid,\n        },\n      });\n\n    if (error) return [undefined, error];\n\n    return [childbirth_classes, undefined];\n  },\n\n  hasPregnancyFollowUp: async function (patientUuid) {\n    const [pregnancy_follow_up = null, error] =\n      await Api.getJsonByDjangoViewName({\n        viewName: PATIENT_FOLLOW_UP_PREGNANCY,\n        params: {\n          patient: patientUuid,\n        },\n      });\n    if (error) return [undefined, error];\n\n    return [pregnancy_follow_up, undefined];\n  },\n\n  fetchAgreement: async function (\n    patientUuid,\n    agreementType,\n    createIfMissing = false,\n  ) {\n    return await Api.getJsonByDjangoViewName({\n      viewName: PATIENT_AGREEMENT,\n      params: { patient: patientUuid, agreement_type: agreementType },\n      queryParams: { create_if_missing: createIfMissing },\n    });\n  },\n\n  updateAgreement: async function (patientUuid, agreementType, hasAgreed) {\n    return await Api.postJsonByDjangoViewName({\n      viewName: PATIENT_AGREEMENT,\n      params: { patient: patientUuid, agreement_type: agreementType },\n      data: { hasAgreed },\n    });\n  },\n};\n\nexport default Patient;\n"],"names":["SESSION_PATIENT_UUID","SESSION_PATIENT_UUID_V1","PATIENT_PREGNANCY_DT_START","PATIENT_CHILDBIRTH_PREP_HISTORY","PATIENT_FOLLOW_UP_PREGNANCY","PATIENT_LAST_PREGNANCY_ULTRASOUND_CONSULTATIONS","PATIENT_LIST","PATIENT_ACTION","actionName","PATIENT_AGREEMENT","Patient","patient_uuid","error","Api","patientUuid","pregnancy_dt_start","doctorSlug","response","patients","patientList","childbirth_classes","pregnancy_follow_up","agreementType","createIfMissing","hasAgreed"],"mappings":"wCAEA,MAAMA,EAAuB,uCACvBC,EAA0B,uCAE1BC,EAA6B,0CAC7BC,EACJ,yDACIC,EACJ,iDACIC,EACJ,+DACIC,EAAe,4BACfC,EAAkBC,GAAe,wBAAwBA,CAAU,GACnEC,EAAoB,iCAEpBC,EAAU,CACd,QAAS,gBAAkB,CACzB,KAAM,CAAC,CAAE,aAAAC,GAAiB,CAAA,EAAIC,CAAK,EAAI,MAAMC,EAAI,wBAAwB,CACvE,SAAUb,EACV,OAAQ,CACN,WAAYa,EAAI,SACxB,CACA,CAAK,EAED,OAAID,EAAc,CAAC,OAAWA,CAAK,EAE5B,CAACD,EAAc,MAAS,CACjC,EAEA,UAAW,gBAAkB,CAC3B,KAAM,CAAC,CAAE,aAAAA,GAAiB,CAAA,EAAIC,CAAK,EAAI,MAAMC,EAAI,wBAAwB,CACvE,SAAUZ,EACV,OAAQ,CACN,WAAYY,EAAI,SACxB,CACA,CAAK,EAED,OAAID,EAAc,CAAC,OAAWA,CAAK,EAE5B,CAACD,EAAc,MAAS,CACjC,EAEA,oBAAqB,eAAgBG,EAAc,KAAM,CACvD,KAAM,CAAC,CAAE,mBAAAC,GAAuB,CAAA,EAAIH,CAAK,EACvC,MAAMC,EAAI,wBAAwB,CAChC,SAAUX,EACV,OAAQ,CACN,QAASY,CACnB,CACA,CAAO,EAEH,OAAIF,EAAc,CAAC,OAAWA,CAAK,EAE5B,CAACG,EAAoB,MAAS,CACvC,EAEA,wCAAyC,SAAUD,EAAa,CAC9D,OAAOD,EAAI,wBAAwB,CACjC,SAAUR,EACV,OAAQ,CACN,QAASS,CACjB,CACA,CAAK,CACH,EAEA,eAAgB,eAAgBE,EAAY,CAC1C,KAAM,CAACC,EAAUL,CAAK,EAAI,MAAMC,EAAI,wBAAwB,CAC1D,SAAUP,EACV,OAAQ,CACN,OAAQU,CAChB,CACA,CAAK,EAED,GAAIC,IAAa,QAAaL,EAAO,MAAO,CAAC,OAAWA,CAAK,EAE7D,KAAM,CAAE,SAAAM,CAAQ,EAAKD,EAErB,MAAO,CAACC,EAAU,MAAS,CAC7B,EAEA,2BAA4B,eAAgB,CAAE,WAAAV,EAAY,YAAAW,GAAe,CACvE,OAAO,MAAMN,EAAI,yBAAyB,CACxC,SAAUN,EAAeC,CAAU,EACnC,KAAM,CAAE,YAAAW,CAAW,CACzB,CAAK,CACH,EAEA,+BAAgC,eAAgBL,EAAc,KAAM,CAClE,KAAM,CAAC,CAAE,mBAAAM,GAAuB,CAAA,EAAIR,CAAK,EACvC,MAAMC,EAAI,wBAAwB,CAChC,SAAUV,EACV,OAAQ,CACN,QAASW,CACnB,CACA,CAAO,EAEH,OAAIF,EAAc,CAAC,OAAWA,CAAK,EAE5B,CAACQ,EAAoB,MAAS,CACvC,EAEA,qBAAsB,eAAgBN,EAAa,CACjD,KAAM,CAACO,EAAsB,KAAMT,CAAK,EACtC,MAAMC,EAAI,wBAAwB,CAChC,SAAUT,EACV,OAAQ,CACN,QAASU,CACnB,CACA,CAAO,EACH,OAAIF,EAAc,CAAC,OAAWA,CAAK,EAE5B,CAACS,EAAqB,MAAS,CACxC,EAEA,eAAgB,eACdP,EACAQ,EACAC,EAAkB,GAClB,CACA,OAAO,MAAMV,EAAI,wBAAwB,CACvC,SAAUJ,EACV,OAAQ,CAAE,QAASK,EAAa,eAAgBQ,CAAa,EAC7D,YAAa,CAAE,kBAAmBC,CAAe,CACvD,CAAK,CACH,EAEA,gBAAiB,eAAgBT,EAAaQ,EAAeE,EAAW,CACtE,OAAO,MAAMX,EAAI,yBAAyB,CACxC,SAAUJ,EACV,OAAQ,CAAE,QAASK,EAAa,eAAgBQ,CAAa,EAC7D,KAAM,CAAE,UAAAE,CAAS,CACvB,CAAK,CACH,CACF"}